Я попытаюсь ответить на свои вопросы, используя полученные знания
What am I getting wrong here?
Основная ошибка заключается в предположении, что использование памяти процессом отражается в столбце RES
. На самом деле это отражено в столбце USED
(= RES + SWAP)
, а top
не показывает столбец USED
в конфигурации по умолчанию (Мне любопытно, почему)-введите клавишу f
для настройки необходимых видимых столбцов, порядка и Порядок сортировки.
Еще одна серьезная ошибка — оценка использования памяти java-процессом-actual=~960MB
по сравнению с expected=~650MB
. Это означает, что все физическое адресное пространство размером 1 ГБ может быть использовано только этим процессом Java.
Why "Mem Used + Swap Used" is twice higher than "Sum of RES"?
Потому что, как я теперь вижу из top
, некоторые процессы занимают больше места в SWAP
, чем в RES
, и в моем конкретном случае это приводит к ~распределению 50/50 общего использования памяти между RES
иSWAP
Why there is so high Swap usage with swappiness=0?
Поскольку фактическое использование памяти действительно велико, и процессы не могут поместиться в физическую память.