Блог Александра Башкирова

ИТ и бизнес, компьютеры и ПО, фото, программирование и просто мысли…
Этот сайт в основном посвящен тому, что мне интересно вне работы. Ведется в порядке хобби.
Все изложенное на сайте - мое частное оценочное мнение и не может быть истолковано иначе.
Со всеми вытекающими из этого последствиями.

Своп в Linux

Просмотров: 3827Комментарии: 4
Linux

Очередной пост для памяти :)

В 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 в принципе на десктопе вещь нужная, помогает не расслабляться.

По крайней мере я про него, как ты про своп - раз его включили, значит, это кому-то зачем-то надо.

Но буду иметь в виду, что есть такой "волшебный ключик".

Оставьте комментарий!


Комментарий будет опубликован после проверки

     

  

(обязательно)