OneFS. Использование памяти
Summary: В этой статье кратко рассматриваются общие категории памяти, объясняется, какие категории памяти можно считать доступными или «свободными». Приведены рекомендации по тому, какой объем памяти могут использоваться определенными процессами и контейнерами. ...
Instructions
Нехватка памяти может привести к перезагрузке узлов, перезапуску процессов и снижению производительности. В этой статье кратко объясняется, как оценить доступность памяти узла, и приводятся некоторые технические рекомендации по работе с памятью. В OneFS память в целом подразделяется на пять областей или очередей: Свободный, неактивный, проводной, активный и буферный
ДОСТУПНАЯ ПАМЯТЬ
Свободная память сразу доступна для использования и не выделяется.
Неактивная (Inact) память в последнее время не использовалась и доступна для выделения.
НЕДОСТУПНАЯ ПАМЯТЬ
Проводная память используется ядром и недоступна для другого распределения.
Активная память использовалась недавно и выделена для пользовательского пространства.
Буферная память (Buf) используется для кэширования дисков.
ВЫЧИСЛЕНИЕ ДОСТУПНОЙ ПАМЯТИ
Эти категории памяти можно просмотреть в верхней части команды.
Обратите внимание, что ожидается отсутствие категории «Cache » и ничего в разделе «Swap»:
# top last pid: 98143; load averages: 0.00, 0.02, 0.00 up 48+04:45:17 16:01:09 643 processes: 1 running, 642 sleeping CPU: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle Mem: 512M Active, 28G Inact, 11G Wired, 12G Buf, 7530M Free Swap:
Если вы просматриваете выходные данные из vmstat -H, вы увидите доступные страницы памяти (AVM) и свободную память (FRE) в байтах.
# vmstat -H procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad4 ad7 in sy cs us sy id 0 14 0 9333548 7713640 863 0 0 0 564 15 0 0 428 903 200 0 0 100
Преобразование страниц AVM в байты показывает доступную память (неактивную + свободную):9333548 x 4096 = 38230212608 bytes
Convert to GB 38230212608/(1024^3)= 35.6 GB Available Memory
Если вы добавите значения Inact и Free из top В данном примере выходные данные следующие:28GB + 7.35GB = 35.35GB
Обратите внимание, что верхний вывод уже был округлен, поэтому он может не совпадать со значением из vmstat.
ИСПОЛЬЗОВАНИЕ ПАМЯТИ В ЗАВИСИМОСТИ ОТ
ПРОЦЕССАVirtual Size или vsz (SIZE) — это память, выделенная для этого процесса.
На справочной странице top: «SIZE — это общий размер процесса (текста, данных и стека)»Резидентный
размер набора (RES) относится к объему физической памяти, используемой этим процессом.
На справочной странице top: "RES - это текущий объем резидентной памяти (и SIZE, и RES указаны в килобайтах)"top команда, показывающая шесть процессов, использующих наибольшее количество виртуальной памяти:
# top -o size -n 6 last pid: 26745; load averages: 0.15, 0.20, 0.17 up 3+19:06:14 20:03:26 103 processes: 1 running, 102 sleeping Mem: 152M Active, 23G Inact, 14G Wired, 12G Buf, 10G Free Swap:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 10244 root 15 60 r112 592M 310M kqread 3 6:35 0.00% nfs 2698 root 11 20 0 585M 125M select 7 34:41 0.00% isi_celog_monitor 2544 root 26 60 r112 506M 70184K kqread 4 0:05 0.00% isi_papi_d 3217 root 2 26 0 439M 48336K kqread 3 0:13 0.00% isi_celog_capture 2676 root 2 52 0 399M 41540K kqread 2 1:46 0.00% isi_celog_capture 26740 root 2 20 0 399M 40168K kqread 6 0:00 0.00% isi_celog_capture
МАКСИМАЛЬНЫЕ ЗНАЧЕНИЯ ПОТРЕБЛЕНИЯ ПАМЯТИ LW-CONTAINER И КОЛИЧЕСТВА ОТКРЫТЫХ ФАЙЛОВ НА УЗЕЛ
В зависимости от версии OneFS существует несколько опубликованных максимальных значений памяти. Описываются такие элементы, как количество открытых файлов на узел, а также SMB и NFS в LW-контейнере.
См. руководство по техническим характеристикам OneFS
- LW-контейнер: Страница 9~23
В OneFS три lwio Контейнеров процессов существует по одному контейнеру для каждого процесса SMB, NFS и Swift. Контейнер SMB может занимать до 20% от общего объема ОЗУ, но не менее 1 Гбайт и не более 32 Гбайт. Контейнер NFS может занимать до 25% от общего объема ОЗУ, но не менее 1 Гбайт и не более 8 Гбайт. Размер контейнера Swift составляет 512 МБ.
- Лимит открытых файлов: Страница 12
Максимальное количество открытых файлов на узел составляет 90% от максимального количества vnodes на этом узле, как выражено в следующей формуле: kern.maxfiles = kern.maxvnodes * 0.9 Демоны протокола OneFS, такие как управляющая программа ввода-вывода (lwio) может накладывать дополнительные ограничения на количество файлов, которые могут быть открыты на узле. Демоны протокола обычно накладывают такие ограничения, потому что ядро накладывает ограничения на потребление памяти каждым процессом.
ПРОВЕРКА ИСПОЛЬЗОВАНИЯ ПАМЯТИ ПО СРАВНЕНИЮ С МАКСИМАЛЬНЫМИ ЗНАЧЕНИЯМИ
Просмотр памяти lsass Процесс, использующий ps.
# ps auwx | egrep "USER|lsass" | grep -v grep USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 14689 0.0 0.3 162112 20404 ?? I 20Feb17 0:33.30 lw-container lsass (lsass)
Проверка с помощью top :
top -n 100 | egrep "SIZE|lsass" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14689 root 26 20 0 158M 20764K ucond 2 0:00 0.00% lsass