Какая программа потратила всю память в Linux
Иногда программы работают не так, как хотелось бы: часто происходят утечки памяти, а некоторые программы плохо оптимизированы. В результате съедается доступный объем ОЗУ, Linux начинает вытеснять данные в своп и вся система притормаживает. А юзер и в ус не дует и начинает по форумам охаивать Linux. Как правильно вычислить главных расточителей памяти в Linux?
И ключевое слово тут — «правильно». Практика показывает, что новое поколение линуксоидов эпохи Минта вообще ни в чем не разбирается. Да, программа top показывает все необходимые данные, но какой пионер в курсе, что такое VSZ, что такое RSS, и что такое MEM? А это всё важные характеристики потребления памяти. Как правильно отсортировать процессы по объему потребления реальной, физической памяти? А очень просто:
ps aux --sort -rss | head
Будут показаны 9 самых прожорливых процессов. Смотреть надо на колонку RSS. Это не подписка на новости, как думают фанаты Минта, а Resident Set Size — объем оперативной памяти, выделенный процессу. Это и есть фактическое потребление RAM. В качестве бонуса будет указано имя пользователя, запустившего процесс и идентификатор процесса. Если ситуация с потреблением памяти выйдет из-под контроля и система приготовится умереть, то у вас будет время объеденить идентификатор процесса с командой kill -9
и решить проблему.
Комментарии
mir-inoy
29 марта, 2017 - 12:52
Красиво сказал
Чингачгук
25 апреля, 2017 - 17:47
Интересно, когда-нибудь в Линуксе можно будет нормально посмотреть такую инфу, а не набирая командные последовательности?
pomodor
25 апреля, 2017 - 18:12
Мы нормально и смотрим. Иди рекламируй свой Вантуз куда-нибудь в другое место. ;)
Комментировать