Очередной пост для памяти :)
В Linux (как и в любой другой "взрослой" ОС) есть такая замечательная штука, как файл подкачи. В который скидываются страницы с памяти, которые наименее часто используются. И своп имеет тенденцию наполняться: за 56 дней uptime на домашней машине своп вырос до 900 Мб (под него у меня отдано 2 Гб, и 2 Гб основной памяти). Перегружать не хотелось: лень. Полез смотреть, что можно сделать. Итак, краткий конспект
1) Посмотреть размер свопа:
cat /proc/swaps (ну или swapon -s)
2) Очистить своп
Напрямую в linux очистить своп нельзя. Но можно пойти на военную хитрость: выключить его и включить по новой:
sudo swapoff -a && sudo swapon -a
В общем, ничего сложного. Иногда так делать - и будет компик жить и жить без перезагрузки=)
Комментариев: 4 RSS
1 Стас 18-12-2013 10:31
Ну, во-первых ничего плохого в том что своп используется нет :)
Это значит что 900Мб не читались давно никем и могли быть безболезненно paged out. Ядро посчитало что эффективнее использовать эту память как кеш (скорее всего).
Чтобы посмотреть кто конкретно использует своп, есть скрипт опубликованный на stackoverflow:
http://stackoverflow.com/questions/479953/how-to-find-out-which-processes-are-swapping-in-linux/7180078#7180078
Может быть какой-нибудь процесс жрёт память как не в себя и его надо прибить.
Кроме того, можно настроить насколько агрессивно используется своп: http://en.wikipedia.org/wiki/Swappiness - но опять же - если что-то свопится (кстати, строго говоря, пейджится: http://stackoverflow.com/questions/4415254/difference-swapping-and-paging) , значит "так надо"
Сорри что ворчу тут по-стариковски :)
2 Alexander Bashkirov 18-12-2013 11:15
Видишь ли, у меня примерно все понятно: память жрет firefox :)
Своп забивается медленно.
Перегружаться неохота. Да, 900Мб не страшно, но через еще 50 дней было бы еще 900Мб, потом пришел бы добрый OOKiller - и положил бы мне пару нужных процесов... Лучше я ручками, тем более, что делов-то на 5 минут.
За скрипт отдельное большое спасибо, нашел по его выводу для себя пару интеересных моментов - но в общем логичных (у меня апач постоянно пашет, но используется не всегда - вот и валяется в свопе, ну и еще пара-тройка приложений аналогично).
3 Стас 19-12-2013 02:38
Кстати, oom killer можно вырубить или сделать менее агрессивным - на серверах это всё время приходится делать чтоб сюрпризов не было:
http://stackoverflow.com/questions/15237067/how-do-i-configure-oom-killer
http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
4 Alexander Bashkirov 20-12-2013 09:11
Ну, у меня и не сервер. =)
OOMKiller в принципе на десктопе вещь нужная, помогает не расслабляться.
По крайней мере я про него, как ты про своп - раз его включили, значит, это кому-то зачем-то надо.
Но буду иметь в виду, что есть такой "волшебный ключик".