Высокое использование памяти процесса (VmRSS) на Rocky 8 по сравнению с Centos 7.7 практически для всего
Мы переносим некоторые серверы с Centos 7.7ish на Rocky Linux 8 и обнаруживаем, что почти каждый процесс использует на 20–50 % больше памяти, что приводит к зависанию компьютеров.
Например, sh на Centos:
# sh -c 'egrep "VmRSS|VmSwap" /proc/$$/status'
VmRSS: 664 kB
VmSwap: 0 kB
против Рокки:
# sh -c 'egrep "VmRSS|VmSwap" /proc/$$/status'
VmRSS: 1136 kB
VmSwap: 0 kB
Это всего лишь простой пример; Процессы httpd, nginx, postgres значительно увеличиваются, хотя точная сумма варьируется от 20% до 50% на одинаковом оборудовании.
Есть ли у кого-нибудь предложения о том, на что обратить внимание, чтобы отладить это? Какие настройки /proc, на которые мы могли бы обратить внимание?
Отчет о ядрах:centos: 3.10.0-1160.62.1.el7.x86_64 Rocky: 4.18.0-348.12.2.el8_5.x86_64
редактировать
Мы обновили ядро Centos 7, чтобы оно соответствовало версии Rocky 8, а затем и превосходило ее. Использование памяти Centos 7 не выросло до уровня Rocky 8 (оно немного увеличилось, может быть, на 3%, как я и ожидал, просто из-за раздувания ядра). Итак, мы предполагаем, что это не проблема ядра, а что-то в библиотеках (поскольку проблема настолько широко распространена в разных процессах).
getconf PAGESIZE возвращает 4096 для обеих ОС
/proc/meminfo (обратите внимание, что на этой машине есть swap, которого нет на наших производственных машинах)
MemTotal: 3826180 kB
MemFree: 1292540 kB
MemAvailable: 2010048 kB
Buffers: 100 kB
Cached: 1071740 kB
SwapCached: 76916 kB
Active: 1028020 kB
Inactive: 1219360 kB
Active(anon): 266816 kB
Inactive(anon): 1097744 kB
Active(file): 761204 kB
Inactive(file): 121616 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1679356 kB
SwapFree: 983108 kB
Dirty: 52 kB
Writeback: 0 kB
AnonPages: 1104196 kB
Mapped: 132244 kB
Shmem: 193280 kB
KReclaimable: 78224 kB
Slab: 130756 kB
SReclaimable: 78224 kB
SUnreclaim: 52532 kB
KernelStack: 5728 kB
PageTables: 31140 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3592444 kB
Committed_AS: 3708844 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 1776 kB
HardwareCorrupted: 0 kB
AnonHugePages: 724992 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 370560 kB
DirectMap2M: 3823616 kB
1 ответ
ты можешь попробовать побегать
Вы также можете проверить файлы конфигурации httpd, nginx и postgres, чтобы узнать, не изменились ли значения по умолчанию. Также проверьте наличие дополнительных пакетов, которые могли быть установлены в Rocky Linux 8 и которые используют больше памяти. Например, при использовании Apache/Nginx обязательно проверьте количество рабочих процессов/потоков, чтобы оно соответствовало доступным аппаратным ресурсам. Слишком большое количество рабочих может вызвать проблемы с использованием памяти.
если ничего не помогает, вы можете попробовать профилировать использование памяти указанными процессами, используя что-то вроде инструмента Valgrind «Massif» для профилирования использования памяти кучи. Но это совсем другая банка с червями.