Мудрый процесс отслеживания памяти в Ubuntu
У меня есть приложение рельсы 3 с 100-200 ежедневно уникальных посетителей. Общий объем используемой памяти на сервере (Ubuntu) составляет около 1,5-2 ГБ. Я хочу знать, сколько памяти используется каждым процессом. Каковы лучшие инструменты для отслеживания памяти, используемой различными процессами?
2 ответа
Вы могли бы просто запустить top
и нажмите M, чтобы отсортировать процессы по использованию памяти.
Вы могли бы бежать ps vax | sort -k8n
показать процессы, отсортированные по резидентному стеку (ps v
переключается на представление, ориентированное на память).
Вы можете включить snmp и настроить mrtg для периодического опроса системы, генерируя график того, сколько памяти используется процессами, которые вас интересуют.
Вы можете смириться с тем, что Ruby, несмотря на все его преимущества, ужасен в управлении памятью в длительных процессах.:)
Вы можете объединить более сложную командную строку ps (посмотрите страницу руководства и прочитайте о опции -o) и rrdtool
с помощью сценария оболочки для создания исторической статистики о процессах, которые вас интересуют.
И т.п.
Управление памятью очень сложно, но вы можете использовать top
, htop
или, как предполагает Дэннисауэр, что-то вроде ps vax | sort -k8n
, Если вы хотите получить обзор / сводку, то free -m
это мило.
Но процессы обычно используют меньше памяти, чем используют. Например, если у вас есть десять процессов, каждый из которых использует 10 МБ, это не означает, что эти процессы будут использовать 100 МБ. Причина этого в том, что Linux распознает идентичные части памяти между процессами, поэтому вам не нужно иметь много одинаковых копий. Другими словами, ваша система всегда может использовать больше памяти, чем у вас. Так что вам действительно нужно разделить потребление памяти и использование памяти.
Это не всегда легко.