Ответ
RES (Resident Set Size) — это объем физической оперативной памяти (RAM), который в данный момент занимает процесс и его страницы, действительно находящиеся в памяти. Это ключевая метрика для понимания реального потребления RAM процессом.
Детализация для DevOps-инженера:
- RES vs VIRT:
VIRT— это вся виртуальная память, которую процесс запросил (включая загруженные библиотеки, отображенные файлы и своп).RES— только та частьVIRT, которая сейчас находится в физической RAM. - RES vs SHR:
SHR— частьRES, которая является разделяемой (например, общие библиотеки libc). Память изSHRможет использоваться несколькими процессами.RESвключает какSHR, так и уникальную для процесса память.
Почему это важно:
- Мониторинг и алертинг: Высокий
RESу критичного сервиса (например, базы данных) может указывать на нехватку памяти и необходимость масштабирования. - Расследование инцидентов: Внезапный рост
RESможет быть симптомом утечки памяти. - Планирование ресурсов: Понимание реального
RESпомогает правильно настраиватьrequestsиlimitsдля контейнеров в Kubernetes.
Как проверить через командную строку:
# Показать RES и % использования памяти для процесса с PID 1234
ps -o pid,res,%mem,cmd -p 1234
# Отслеживать изменение RES процесса в реальном времени
watch -n 1 'ps -o pid,res,%mem,cmd -p 1234'
# Найти топ-5 процессов по потреблению RAM
ps aux --sort=-rss | head -6
Например, если RES для процесса Java составляет 2.5G, это значит, что JVM в данный момент удерживает в RAM 2.5 гигабайта данных.