Почему «Сумма RES» не равна «Используемая память + Используемая подкачка» (Ubuntu 18.04)?

Conawk:

awk -F'[:=]' '{ cmd="host "$2"| cut -d\" \" -f4"; cmd |getline $2; 
    print $1"="$2":"$3; close(cmd) }' infile

Establecemos un comando de shell host $2"| cut -d\" \" -f4en una variable llamada cmd. Luego, con cmd |getline $2la ejecución awkdel comando guarda el resultado en el valor del segundo campo a partir del resultado de cmdlo abrimos Usando getline de un Pipe , luego imprimimos las columnas, luego necesitamos cerrar el comando que abrimos, y usamosclose(cmd)aquí.

O reemplazar hostcon dig +shorthará que el comando sea corto:

awk -F'[:=]' '{ cmd="dig +short "$2; cmd |getline $2; 
    print $1"="$2":"$3; close(cmd) }' infile

1
15.07.2019, 17:16
1 ответ

Я попытаюсь ответить на свои вопросы, используя полученные знания

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?

Поскольку фактическое использование памяти действительно велико, и процессы не могут поместиться в физическую память.

1
27.01.2020, 23:41

Теги

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