Метод определения характеристик потребления памяти применим при планировании мощностей, сравнительном анализе и моделировании рабочих нагрузок. Относится к анализу наблюдения.
Он заключается в ответах на вопросы о том, кто, как и каким образом создает нагрузку на память:
- Потребление физической и виртуальной памяти в масштабе всей системы
- Степень насыщения системы. Наличие подкачки и сообщений OOM Killer
- Потребление памяти для кэшей ядра и файловой системы
- Потребление физической и виртуальной памяти каждым процессом
- Использование средств управления ресурсами памяти, если есть
Возможно рассмотрение дополнительных вопросов:
- Какие процессы активно используют подкачку
- Какие процессы ранее использовали подкачку
- Какая доля кэша файловой системы активна/неактивна
- Для каких целей используется память процесса
- Могут ли процессы или ядро иметь утечки памяти
- Каково соотношение операций чтения/записи с локальной и удаленной памятью
Время на реализацию:
- Вручную: быстро. Снятие производится с помощью нескольких утилит.
- Автоматизация: требуется больше времени на настройку скриптов, но метод все равно остается простым и быстрым, так как количество утилит и снимаемых показателей ограничено.
Накладные расходы:
- Основные расходы связаны со сбором и хранением данных.
- Затраты ресурсов из-за утилит минимальны. Подходят инструменты, работающие со счетчиками ядра.
vmstat 1 - наличие и активность подкачки
si,so- могут характеризовать подкачку
sar -B/sar -W - степень насыщения, анализ периодов сканирования страниц
pgpgin/s,pgpgout/s- количество загруженных и выгруженных страницpswpin/s,pswpout/s- количество операций подкачки и выгрузки в своп в секунду
dmesg - ошибки OOM Killer (сообщения "out of memory")
top/htop - потребление памяти всей системы и каждого процесса
RES- физическая память, используемая процессомVIRT- виртуальная память, используемая процессом%MEM- процент физической памяти, используемой процессом. Рассчитывается от доступной памяти
sar -r - исторические данные по использованию (кэш, буферы, свободная память)
kbmemfree- свободная физическая памятьkbmemused- использованная физическая память%memused- процент использования физической памятиkbbuffers- память, используемая в качестве буферов ядраkbcached- память, используемая в качестве кэша страниц
free -h - использование памяти
total- общий объем физической памятиused- память, занятая процессамиfree- свободная памятьbuff/cache- память, используемая для буферов и кэша