Сервер отказывается использовать раздел подкачки

Мы используем сервер с 23 ядрами (cpuinfo показывает 22 как самое большое число процессов) и 66 ГБ ОЗУ. Команда разработчиков запускает несколько приложений, которые загружают память.

Я заметил, что: 1. Даже когда память работает очень мало (свободная память = 167 МБ), использование подкачки не используется. Хотите знать, почему сервер отказывается использовать своп. Есть идеи по этому поводу? 2. Иногда нагрузка на систему увеличивается до 70 и более, я вижу, что эти приложения интенсивно работают с вводом / выводом. Может ли это привести к таким высоким средним значениям нагрузки?

Вот вывод из VMstat

procs ----------- память ---------- --- своп-- ----- io ---- - система-- ----- процессор ------
 r  b   swpd свободный буферный кеш si, так что би бо в cs us sy id wa st
 3  0      0  28932   1049  31757    0    0     6   145    6   33  1  0 98  0  0
..
..
12  2      0    167   1876  57749    0    0   932 49604 2306 96856 26  8 58  7  0

Выход из meminfo

MemTotal: 66000044 кБ
MemFree:      11824808 кБ
Буферы: 1498068 кБ
Кэшированный: 48842440 кБ
SwapCached:          0 кБ
Активный:        5350660 кБ
Неактивно: 46810284 кБ
Высокий итог: 0 кБ
HighFree:            0 кБ
LowTotal:     66000044 кБ
LowFree:      11824808 кБ
SwapTotal:    131074324 кБ
SwapFree:     131074324 кБ
Грязный: 2641608 кБ
Обратная запись: 96 кБ
AnonPages:     1819092 кБ
Сопоставлено: 766660 КБ
Плита:          1753100 кБ
PageTables:     131908 КБ
NFS_Unstable:        0 кБ
Отказов: 0 кБ
CommitLimit:  164074344 кБ
Committed_AS:  9460100 КБ
VmallocTotal: 34359738367 кБ
VmallocUsed:    336508 кБ
VmallocChunk: 34359401823 кБ
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Огромный размер: 2048 кБ

1 ответ

Решение

Вы читаете это неправильно и почти не используете свою память.

MemTotal:     66000044 kB = 63GB available to the system
MemFree:      11824808 kB = 11GB with nothing at all used.
Buffers:       1498068 kB = 1.4GB
Cached:       48842440 kB = 46GB of data from the drive that is kept in otherwise unoccupied memory
SwapCached:          0 kB
Active:        5350660 kB = 5.1GB of memory that is actually used by applications.

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

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

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