OneFS:メモリー使用率
Summary: この記事では、一般的なメモリー カテゴリーについて簡単に説明し、どのメモリー カテゴリーが使用可能または「空き」と見なすことができるかについて説明します。 特定のプロセスとコンテナーが使用できるメモリの数に関するガイドラインが提供されています。
Instructions
メモリーが不足すると、ノードの再起動、プロセスの再起動、パフォーマンスの問題が発生する可能性があります。この記事では、ノードで使用可能なメモリーを評価する方法について簡単に説明し、いくつかのテクニカル メモリー ガイドラインを参照します。OneFSでは、メモリーは大きく5つの領域またはキューに分類されます。Free、Inactive、Wired、Active、Buffer
AVAILABLE MEMORY
空きメモリはすぐに使用可能になり、割り当てられません
非アクティブ(Inact)メモリーが最近使用されておらず、割り当て可能です。
使用できないメモリー
有線メモリーはカーネルによって使用されており、他の割り当てには使用できません。
アクティブ メモリーは最近使用され、ユーザー領域に割り当てられています。
バッファー(Buf)メモリーはディスク キャッシュに使用されます。
使用可能なメモリーを計算しています
これらのメモリー カテゴリーは、コマンドtopで確認できます
[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.
プロセス固有のメモリー使用率
仮想サイズまたはvsz(SIZE)は 、このプロセスに割り当てられたメモリを指します。
topのマニュアルページより、「SIZEはプロセス(テキスト、データ、スタック)の合計サイズです」
RES(常駐セットサイズ) とは、このプロセスで使用されている物理メモリの量を指します
topのマニュアルページより、「RESは現在の常駐メモリ量(SIZEもRESもキロバイトで与えられる)」とあります。top 仮想メモリーを最も多く使用している6つのプロセスを示すコマンド:
# 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のバージョンに応じて、公開されているメモリーの最大値がいくつかあります。ノードあたりのオープン ファイル数や、LWコンテナ内のSMBとNFSなどの項目について説明します
『OneFS技術仕様ガイド』を参照してください。
- LWコンテナ: ページ 9~23
OneFSでは、3つの lwio プロセス コンテナは、SMB、NFS、Swiftプロセスごとに1つのコンテナが存在します。SMBコンテナは、RAM全体の最大20%にすることができますが、最小で1 GB、最大で32 GBです。NFSコンテナは、合計RAMの最大25%にすることができますが、少なくとも1 GBから最大8 GBです。Swiftコンテナは512 MBです。
- 開いているファイルの制限: ページ 12
ノードあたりに開いているファイルの最大数は、 vnodes そのノードで、次の式で表されます。 kern.maxfiles = kern.maxvnodes * 0.9 入出力デーモン(lwio)は、ノードが開くことができるファイルの数に追加の制約を課す可能性があります。プロトコル デーモンは通常、カーネルがプロセスごとのメモリ消費量に制限を設けるため、このような制約を課します。
最大値に対するメモリー使用率の確認
のメモリーの表示 lsass 使用するプロセス psが使用するJava Runtime Environmentへのパスを定義します。
# 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