Принудительная очистка системных кэшей - drop_caches
Начиная с Linux ядра 2.6.16 появилась возможность принудительной очистки системных кэшей:
Чистим pagecache:
# echo 1 > /proc/sys/vm/drop_cachesЧистим dentrie и inode кэши:
# echo 2 > /proc/sys/vm/drop_cachesЧистим pagecache, dentrie и inode кэши:
# echo 3 > /proc/sys/vm/drop_cachesПосле выполнения операции необходимо запустить команду sync
http://linux-mm.org/Drop_Caches
http://www.opennet.ru/tips/info/1455.shtml
для более ранних версий ядра смотрите этот типс.
UPD:
Нехватает ресурсов, кто будет убит?
(1 vote)
- 7739 просмотров
Страница для печати
..


Странное дело, в моей 14-ой федоре почти ничего из упомянутых в статье педалей нет (есть только drop_caches):
# uname -r ; ls /proc/sys/vm | egrep "buffermem|freepages|kswapd|pagecache" | wc -l
2.6.35.11-83.fc14.x86_64
0
Это для какого ядра писалось?
/proc/sys/vm - виртуальная память
/proc/sys/vm/buffermem
Здесь происходит управление количеством общей системной памяти (в процентах), которая будет использована как буферная память. Файл содержит три значения, которые могут быть указаны в виде списка через пробел:
1. Минимальный процент памяти, которая будет использована для буфера
2. Система будет пытаться установить это количество памяти для буфера если количество доступной памяти будет уменьшено
3. Максимальный процент памяти, которая будет использована для буферов
Default setting: 2 10 60
/proc/sys/vm/freepages
Этот файл управляет как система реагирует на различные уровни свободной памяти. Содержит три значения, которые могут быть установлены в виде списка, разделенного пробелами:
1. Если количество свободных страниц в системе достигнет этого минимального предела, только ядро будет иметь доступ к любому дополнительному количеству памяти.
2. Если количество свободных страниц в системе упадет ниже этого предела, то ядро начнет более агрессивно свопировать для освобождения памяти и поддержания системной производительности.
3. Ядро будет пытаться сохранить это количество системной памяти свободным. Падение ниже этого значения приведет к свопированию.
Default setting: 512 768 1024
/proc/sys/vm/kswapd
Этот файл управляет как ядро будет свопировать память. Он содержит три значения в виде списка, разделенные пробелами:
1. Максимальное количество страниц, которое ядро пытается освободить за один раз. Если вы хотите увеличить величину свопирования, вам нужно увеличить это значение.
2. Минимальное количество раз, которое ядро пытается освободить страницу в время своппинга.
3. Количество страниц, которое ядро может записать в один своп. Оказывает сильное влияние на производительность системы. Чем больше это значение, тем больше данных будет свопировано и тем меньше времени будет потрачено на поиск на диске. Однако, слишком большое значение окажет обратных эффект на производительность системы из-за увеличения очереди запросов.
Default setting: 512 32 8
/proc/sys/vm/pagecache
Этот файл выполняет ту же работу, что и /proc/sys/vm/buffermem, но он делает ее для карты памяти и общего кэширования файлов.
Sysctl - это интерфейс, для определения или динамического изменения параметров в BSD Unix и Linux ядрах.для управления OS имеет команду
Полезная утилита для внесения изменений в любые параметры ядра находится в директории /proc/sys. Она позволяет вам вносить изменения в работающее ядро (подобно echo и метод перенаправления, описанный выше), и имеет файл конфигурации, который выполняется при загрузке. Это позволяет чтобы внесенные изменения оставались в ядре после перезагрузки системы. Утилита называется sysctl и она полностью документирована в man sysctl(8).
Файл конфигурации для sysctl -
/etc/sysctl.conf, который может быть редактирован, синтаксис файла описан в man sysctl.conf(8). Sysctl использует файлы в /proc/sys как индивидуальные переменные, которые могут быть изменены. Например, файл в /proc/sys, который представляет максимальное количество заголовков файлов в системе, /proc/sys/fs/file-max, представлен как fs.file-max.Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a. Переменные могут также быть изменены с помощью sysctl, которая выполняет ту же работу что и echo. Эта запись объясняет это:
sysctl -w dir.file="value" или echo 'value' > /proc/sys/dir/fileНапример: Используя пример с file-max, мы можем изменить это значение на 16384, используя один из двух методов:
sysctl -w fs.file-max="16384" echo "16384" > /proc/sys/fs/file-maxНе забывайте, что sysctl не добавляет изменения в конфигурационный файл; вы должны сделать это вручную. Если вы хотите, чтобы ваши изменения остались в системе и после перезагрузки, вы должны настроить этот файл.
/etc/sysctl:
Обратите внимание на расстановку пробело в команде и в конфигурационном файле.
Внимание: Не все дистрибутивы обеспечивают поддержку sysctl. Если это относится к вашей системе, то вы можете использовать echo и метод перенаправления, как описано выше и добавить эти команды в загрузочный скрипт, чтобы они выполнялись каждый раз при загрузке системы
Команду sync надо выполнить перед операцией, а не после (согласно Вами приведенной ссылке).
Как раз именно _после_, потому что если выполнить _до_ то сбросятся незаконченные операции записи, и судя по тому что написано на http://linux-mm.org/Drop_Caches её вообще можно не выполнять.
Отправить комментарий