Компанія OneFS: Використання пам'яті
Summary: У цій статті коротко розглядаються загальні категорії пам'яті, пояснюється, які категорії пам'яті можна вважати доступними або «вільними». Надаються рекомендації щодо того, яку кількість пам'яті можуть використовувати ті чи інші процеси та контейнери. ...
Instructions
Нестача пам'яті може призвести до перезавантаження вузлів, перезапуску процесів і проблем із продуктивністю. У цій статті коротко пояснюється, як оцінювати доступну пам'ять вузла, і наводяться посилання на деякі технічні рекомендації щодо пам'яті. У OneFS пам'ять загалом поділяється на п'ять областей або черг: Вільна, Неактивна, Дротова, Активна та Буферна
ДОСТУПНА ПАМ'ЯТЬ
Вільна пам'ять відразу доступна для використання і не виділяється.
Неактивна (неактивна) пам'ять останнім часом не використовується і доступна для виділення.
НЕДОСТУПНА ПАМ'ЯТЬ
Дротова пам'ять використовується ядром і недоступна для іншого розподілу.
Активна пам'ять використовується останнім часом і виділяється для простору користувача.
Буферна пам'ять (Buf) використовується для кешування диска.
РОЗРАХУНОК ДОСТУПНОЇ ПАМ'ЯТІ
Ці категорії пам'яті можна побачити зверху команди.
Зверніть увагу, що очікується, що ви не побачите категорію Кеш і нічого не побачите в розділі 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) відноситься до пам'яті, виділеної для цього процесу.
На сторінці довідника зверху, "РОЗМІР - це загальний розмір процесу (тексту, даних і стека)"
Розмір резидентного набору (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-КОНТЕЙНЕРА ТА ВІДКРИТИХ ФАЙЛІВ НА ВУЗОЛ
Існують деякі опубліковані максимальні значення пам'яті в залежності від версії 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