Мудрый процесс отслеживания памяти в Ubuntu

У меня есть приложение rails 3 с 100-200 ежедневными уникальными посетителями. Общий объем используемой памяти на сервере (Ubuntu) составляет около 1,5-2 ГБ. Я хочу знать, сколько памяти используется каждым процессом. Каковы лучшие инструменты для отслеживания памяти, используемой различными процессами?

6
задан 12 October 2011 в 10:24

2 ответа

Вы можете просто запустить top и нажать M , чтобы отсортировать процессы по использованию памяти.

Вы можете запустить ps vax | sort -k8n, чтобы показать процессы, отсортированные по резидентному стеку (ps v переключается на представление, ориентированное на память).

Вы можете включить snmp и настроить mrtg для периодического опроса системы, генерируя график того, сколько памяти используется процессами, которые вас интересуют.

Вы можете смириться с тем, что Ruby, несмотря на все его преимущества, ужасно управляет памятью в длительных процессах. :)

Вы можете объединить более сложную командную строку ps (посмотрите страницу руководства и прочитать о параметре -o) и rrdtool со сценарием оболочки для генерации статистической статистики на процессы, которые вам небезразличны.

И т.д.

0
ответ дан 12 October 2011 в 10:24

Управление памятью очень сложно, но вы можете использовать top, htop или, как предполагает Дэннисауэр, что-то вроде ps vax | sort -k8n. Если вы хотите получить обзор / сводку, то free -m это хорошо.

Но процессы обычно потребляют меньше памяти, чем используют. Например, если у вас есть десять процессов, каждый из которых использует 10 МБ, это не означает, что эти процессы будут использовать 100 МБ. Причина этого в том, что Linux распознает идентичные части памяти между процессами, поэтому вам не нужно иметь много одинаковых копий. Другими словами, ваша система всегда может использовать больше памяти, чем у вас. Так что вам действительно нужно разделить потребление памяти и использование памяти.

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

0
ответ дан 12 October 2011 в 10:24

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

Похожие вопросы: