Мудрый процесс отслеживания памяти в 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 распознает идентичные части памяти между процессами, поэтому вам не нужно иметь много одинаковых копий. Другими словами, ваша система всегда может использовать больше памяти, чем у вас. Так что вам действительно нужно разделить потребление памяти и использование памяти.

Это не всегда легко.

Другие вопросы по тегам