
Похоже, что иногда мой компьютер начинает выполнять ненужную подкачку (использование памяти составляет ~25%), и я не могу понять, почему.
Кажется, это чаще всего происходит при запуске скриптов Perl, но это не интенсивные скрипты, и я не могу найти ничего, что говорило бы о том, что Perl может видеть только определенный объем памяти. Использование подкачки сохраняется после завершения скриптов и даже после закрытия Firefox, Banshee и т. д. Иногда перезапуск X решает проблему, но в других случаях требуется полный перезапуск.
Это становится большой проблемой для меня, потому что как только что-то начинает обмениваться, все остальное, похоже, тоже начинает. Такие простые вещи, как закрытие программы или переключение точек обзора, занимают все больше и больше времени. Если не контролировать, это использование обмена в конечном итоге заставит мой компьютер бесконечно зависать, неспособный даже реагировать на нажатия клавиш!
Я использую Ubuntu 9.04, ядро 2.6.28-15, у меня 4 ГБ оперативной памяти, и обычно она загружена примерно на 25%.
Я также пытался снизить «перестановку», но безуспешно.
решение1
Я предлагаю установить swappiness на 0.
Установка значения swappiness на «меньшее число» может снизить «частоту» использования swap, но установка его на 0 заставит ядро пойти по другому пути кода, заставив все выделяемые памяти сначала использовать всю доступную память и кэш, прежде чем использовать пространство подкачки.
Вы можете установить swappiness на ноль, выполнив следующее:
echo 0 > /proc/sys/vm/swappiness