Назад | Перейти на главную страницу

Сумма памяти нескольких процессов в верхней части больше 100%

Я пытаюсь вычислить объем памяти, используемый AMP в стековой машине LAMP.

top -bn1 | grep -E '(mysql|httpd|php)' | awk '{mem += $(NF-2)} END {print mem}'

Но сумма, сгенерированная с помощью приведенной выше команды, превышает 100%, но я ожидал что-то ниже 100%, поскольку использование памяти отдельными процессами уже представлено в% от top.

Пожалуйста, помогите мне понять, сообщал ли top нельзя использовать этот способ для расчета использования памяти?

Поле% MEM - это количество страниц физической памяти, используемых процессом, умноженное на 100, деленное на общее количество страниц физической памяти. Нет причин, по которым его сумма должна составлять 100 - рассмотрим десять процессов, которые используют одну и ту же страницу физической памяти.

У вас также может быть версия с ошибками top который вычисляет% MEM как VSZ / mem вместо RSS / mem. Найдите случай, когда они дают разные результаты, и убедитесь, что верхним значением является RSS / mem.

Использовать top -v чтобы узнать, установлена ​​ли у вас версия Top для BusyBox. Это имеет тенденцию быть более ошибочным, чем версия procps.