Найдите процесс, который потреблял память

Вы не сказали нам, что вы хотите сделать с пустыми тегами. Поэтому я предположу, что вы хотите преобразовать такие пары тегов в формат

Вот простой sed скрипт, который сделает именно это для примера, который вы нам предоставили:

sed -E ':a;N;$! ba;s#<([^>]+)>\n#<\1/>#g' infile > outfile

1
18.05.2017, 11:43
1 ответ

Общая память = Свободная память + Кэш/буферы + Активная + Неактивная

         = 10901516 + 126816 + 2355968 + 35103352 + 2973732
         = 51461384 KB
         = 49 GB 

Недостающая память = 96–49 ГБ = 47 ГБ Недостающая память почти равна Slab Memory (48846688 kB), я предполагаю, что какой-то модуль ядра теряет память.

Пожалуйста, распечатайте выходные данные команды /proc/slabinfo & slabtop, чтобы узнать больше, а также распечатайте выходные данные vmware-toolbox-cmd stat ball и vmware-toolbox-cmd stat memlimit, если вы используете vmware.

Редактировать

Похоже, что модуль ядра dentry потребляет 48646536 КБ, в Интернете я нашел https://serverfault.com/questions/561350/unusually-high-dentry-cache-usage , это предполагает, что проблема возникла из-за того, что виновником была библиотека NSS (Network Security Services), связанная с Libcurl

. Вам нужно только обновить nss-softokn (который имеет обязательную зависимость на nss-utils) как минимум. и чтобы получить выгоду, вам нужно установить переменная среды NSS_SDB_USE_CACHE для процесса, который с помощью libcurl. наличие этой переменной среды - это то, что позволяет пропустить дорогостоящие проверки несуществующих файлов."

Попробуйте и дайте нам знать.

0
28.01.2020, 00:55

Теги

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