linuxメモリ/cpu利用率引き出しvmstatコマンドfreeコマンド
8118 ワード
1.メモリ使用率=メモリ使用量/総メモリmemrate=memused/memtotal freeコマンドでシステムメモリの使用量を取得します.freeコマンドの元のアドレス:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 詳しく説明してイメージして、私はここで簡単な整理しかしていません.
次はfreeの実行結果で、全部で4行あります.説明の便宜上、列番号を付けました.これによりfreeの出力を2次元配列FO(Free Output)と見なすことができる.例:
freeの出力は全部で4行あり,第4の動作交換領域の情報は,それぞれ交換の総量(total),使用量(used),どれだけ空き交換領域(free)であるかが明らかであり,これはあまり多くは言わない.1行目の出力はオペレーティングシステム(OS)から見たものです.つまり、OSの観点から見ると、コンピュータには次のようなものがあります.
24677460 KB(デフォルトではfreeの単位はKB)物理メモリ、すなわちFO[2][1].これらの物理メモリには23276064 KB(すなわちFO[2][2])が使用されている.さらに1401396 KB(すなわちFO[2][3])で利用可能である.
ここで最初の式が得られます.
FO[2][4]は、いくつかのプロセスによって共有されるメモリを表し、現在deprecatedされており、その値は常に0である(もちろん、一部のシステムでは0ではない可能性もあり、主にfreeコマンドがどのように実現されるかに依存する).
FO[2][5]は、OS bufferが住んでいるメモリを表す.FO[2][6]は、OS cacheによるメモリを表す.bufferとcacheの2つの言葉はよく混用されることがあります.しかし、いくつかの比較的低いレベルのソフトウェアでは、この2つの言葉を区別し、外国人の洋文を見ています.
すなわちbufferはdisk(ブロックデバイス)に出力するデータを格納するためのものであり、cacheはdiskから読み出したデータを格納するものである.両者は、IO性能を向上させるため、OSによって管理される.ここでは2つの式を使用します.
では、メモリ占有率を算出するために用いられる占有メモリは、実はF 0である[3][2].すなわち、メモリの総占有-buffer/cache(システムによって迅速に回収できるメモリ)の総メモリがF 0である[2][1]memrate=F 0[3][2]/F 0[2][1]コマンドライン:memused=free-k|tail-2|head-1|awk'{print$3}'memtotal=free-k|tail-3|head-1|awk'{print$2}
2.cpu使用率を取得vmstatコマンドでcpu使用率vmstatコマンドの元のアドレスを取得できます.http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html
一般的なvmstatツールの使用は、2つの数値パラメータで行われます.1つ目のパラメータは、サンプリングの間隔数、単位は秒、2つ目のパラメータは、サンプリングの回数などです.
cpurateを計算するときは、何度も取得することをお勧めします.特に、スクリプトでcpyrateを取得する場合は、一般的に1回だけ取得するのは正確ではありません.スクリプトで2回以上取得し、最初のデータを排除することをお勧めします.次のようになります.
次はfreeの実行結果で、全部で4行あります.説明の便宜上、列番号を付けました.これによりfreeの出力を2次元配列FO(Free Output)と見なすことができる.例:
FO[2][1] = 24677460
FO[3][2] = 10321516
1 2 3 4 5 6
1 total used free shared buffers cached
2 Mem: 24677460 23276064 1401396 0 870540 12084008
3 -/+ buffers/cache: 10321516 14355944
4 Swap: 25151484 224188 24927296
freeの出力は全部で4行あり,第4の動作交換領域の情報は,それぞれ交換の総量(total),使用量(used),どれだけ空き交換領域(free)であるかが明らかであり,これはあまり多くは言わない.1行目の出力はオペレーティングシステム(OS)から見たものです.つまり、OSの観点から見ると、コンピュータには次のようなものがあります.
24677460 KB(デフォルトではfreeの単位はKB)物理メモリ、すなわちFO[2][1].これらの物理メモリには23276064 KB(すなわちFO[2][2])が使用されている.さらに1401396 KB(すなわちFO[2][3])で利用可能である.
ここで最初の式が得られます.
FO[2][1] = FO[2][2] + FO[2][3]
FO[2][4]は、いくつかのプロセスによって共有されるメモリを表し、現在deprecatedされており、その値は常に0である(もちろん、一部のシステムでは0ではない可能性もあり、主にfreeコマンドがどのように実現されるかに依存する).
FO[2][5]は、OS bufferが住んでいるメモリを表す.FO[2][6]は、OS cacheによるメモリを表す.bufferとcacheの2つの言葉はよく混用されることがあります.しかし、いくつかの比較的低いレベルのソフトウェアでは、この2つの言葉を区別し、外国人の洋文を見ています.
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
すなわちbufferはdisk(ブロックデバイス)に出力するデータを格納するためのものであり、cacheはdiskから読み出したデータを格納するものである.両者は、IO性能を向上させるため、OSによって管理される.ここでは2つの式を使用します.
FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]
では、メモリ占有率を算出するために用いられる占有メモリは、実はF 0である[3][2].すなわち、メモリの総占有-buffer/cache(システムによって迅速に回収できるメモリ)の総メモリがF 0である[2][1]memrate=F 0[3][2]/F 0[2][1]コマンドライン:memused=free-k|tail-2|head-1|awk'{print$3}'memtotal=free-k|tail-3|head-1|awk'{print$2}
2.cpu使用率を取得vmstatコマンドでcpu使用率vmstatコマンドの元のアドレスを取得できます.http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html
一般的なvmstatツールの使用は、2つの数値パラメータで行われます.1つ目のパラメータは、サンプリングの間隔数、単位は秒、2つ目のパラメータは、サンプリングの回数などです.
root@ubuntu:~# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0
id CPU, ,id + us + sy = 100, id CPU ,us
CPU ,sy CPU 。
cpurateを計算するときは、何度も取得することをお勧めします.特に、スクリプトでcpyrateを取得する場合は、一般的に1回だけ取得するのは正確ではありません.スクリプトで2回以上取得し、最初のデータを排除することをお勧めします.次のようになります.
id=vmstat 1 2|tail -1 | awk '{print $15}'
cpurate = 1-id%