Высокое использование памяти процесса (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» для профилирования использования памяти кучи. Но это совсем другая банка с червями.

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