LINUX.ORG.RU

Где настройки filesystem cache?


0

1

Дано:
ядро 2.6.15
1700 athlon-xp
память - 1 гиг
винт - 120 гиг, udma5
CONFIG_PREEMPT=y
CONFIG_HZ=1000


При копировании больших файлов (4-5 гиг) память системы забиватеся под завязку файловым кэшем (cache filesystem), или, к примеру, при создании образа dvd, свободная память так же резко уменьшается. Работать становится не возможно.
В процессе копирования:

vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 348 97348 708 750232 0 0 3272 3157 1222 1685 7 4 76 13
11


обратить внимание - кэш 750232 МБ (75%).

Перебрал все ioshed (noop, anticipatory, deadline, cfq), они по разному нагружают систему, но проблему не решают (память забита, проц загружен ядром на 100%). Переключение между задачами ужасно медлеено..
Перебрал различные параметры в /proc/sys/vm/, разобрался только с параметрами буферов (dirty_background_ratio, dirty_expire_centisecs, dirty_ratio, dirty_writeback_centisecs), теперь знаю, как управлять демоном pdflush и настраивать управление буферами. С помошью min_free_kbytes увеличил обьем минимальной свободной памяти (зачем?)

Но как управлять параметрами файлового кеша, я не нашел. В /proc/sys/vm/ есть еще параметр vfs_cache_pressure, его описание не очень то и понятно, и его изменения его значения не повлияли на размер кэша системы.

Вопрос:
Как можно настроить работу файлового кеша?
И как сделать чтобы при копировании "больших файлов" (образ dvd, к примеру) cache filesystem не рос, и память не забивалась?
Где "внятно" описана работа кэша?
Что можете сказать про патчи ядра от Con Kolivas?

ps: пусть кеш забиватся когда работаешь с маленькими файлами, хоть под завязку..

anonymous

> И как сделать чтобы при копировании "больших файлов" (образ dvd, к примеру) cache filesystem не рос, и память не забивалась?

1) Размер файлового кэша нельзя уменьшить. Под него всё равно будет выделятся вся свободная память.

2) Как выключть кэш написано здесь:

http://www.ussg.iu.edu/hypermail/linux/kernel/0604.3/1129.html

Без правки исходников cdrecord/growisofs не обойтись. O_DIRECT поддерживают далеко не все файловые системы.

3) Загрузка ЦП в 100% - это ошибка программы (top, iostat, procifo -не важно). Время IO Wait - это НЕ загрузка CPU - его всегда вычитать надо. Пример, вы копируете файл с винта на винт и у вас IO WAIT 90%. Реальная загрузка CPU в этом случае - 10%.

birdie ★★★★★
()
Ответ на: комментарий от birdie

я пропатчил ядро ck-патчем. полет норманый. и радует однозначно...

в /proc/sys/vm появились новые ключи. сильно не экспериментировал с ними... но эти на работу с памятью должны влиять..

/proc/sys/vm/mapped /proc/sys/vm/swap_prefetch /proc/sys/vm/hardmaplimit

а /proc/sys/vm/swappiness убрался.

так же добавилсь несколько ключей в /proc/sys/vm/kernel

добавились 2 планировшика задач.

вот теперь, вот не знаю грешить, кри копировании больших файлов, система ведет себя адекватся, ну и пусть забиватся кэш, зато работать можно. и проц не нагружается. У меня видно по температуре CPU, когда нагружается проц когда нет.

>1) Размер файлового кэша нельзя уменьшить. Под него всё равно будет выделятся вся свободная память.

приятно, знать... :-)

anonymous
()
Ответ на: комментарий от birdie

sk-sources: проц-сред:%user %nice %sys %iowait %idle 18,11 0,01 25,24 8,87 47,78

gentoo-sources: проц-сред:%user %nice %sys %iowait %idle 7,56 0,03 11,83 62,16 18,43

получается в gentoo-sources больше значение %iowait больше при копировании большего файла..

в вот само время в ck-sources само копирование медлеенее, файл копируется дольше. за то работать во время копирования можно...

вот такие дела..

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.