• ベストアンサー

vmstatで、メモリ使用率を計算する

vmstatから得られるメモリの値である swpd、free、buff、cache 以上の使用量の値から、メモリの「使用率」を計算したいのですが、可能でしょうか? CPUは、そのものずばり使用率が出てくるのですが、メモリは出てこなかったので…… 簡単な質問かもしれませんが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

何を以て使用率とするのかの定義が問題ですね。 物理メモリの話だとして、 総物理メモリ量=カーネル使用量+アプリケーション使用量の総和+カーネルがバッファとして使用(buff)+カーネルがキャッシュとして使用(cache)+余った無駄になっている量(free) 普通は、(総物理メモリ量-free)÷総物理メモリ量を使用率として使うと思います。 場合によっては、あとどれだけアプリケーションが使えるかという意味では、(カーネル使用量+アプリケーション使用量の総和)÷総物理メモリ量 で考えるケースもあるでしょう。

ikazuti
質問者

お礼

回答から色々調べましたが、結構複雑なようですね。 Freeだけが空き容量なのかと思ってました。 ご回答、有り難うございました。

関連するQ&A

  • AIXでのメモリ使用率の計算

    各OSでのvmstatコマンドの出力からメモリ使用率を計算しようとしております。 Linuxの場合の使用可能なメモリサイズは free+buff+cache で計算されると思います。 Soralis8の場合はfreeのカラムの値にファイルシステムキャッシュに使用しているメモリも含まれるらしい(「Unixパフォーマンスチューニング」オライリー)ので、使用可能なメモリサイズは free のカラムの値を見ればいいと思います。 お伺いしたいのはAIXの場合なのですが、マニュアルを読む限り、freカラムの値には、ファイルシステムキャッシュのメモリが含まれていないらしく、使用可能なメモリサイズが見積もれません。 AIXの場合、どのようにして使用可能なメモリサイズを見積もるのが宜しいでしょうか? もしご存知の方がおられましたらご教示下さい。 宜しくお願いいたします。

  • 【メモリ]】vmstat、free、topの表示

    Linux(CentOS)でサーバのメモリ状態を確認するために 以下のコマンドを実行しました。 ・vmstat ・free ・top 【vmstat】 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 140 29812 137284 242088 0 0 0 3 2 0 1 0 96 3 0 【free】 total used free shared buffers cached Mem: 515312 485500 29812 0 137284 242088 -/+ buffers/cache: 106128 409184 Swap: 1052216 140 1052076 【top】 Mem: 515312k total, 485500k used, 29812k free, 137284k buffers Swap: 1052216k total, 140k used, 1052076k free, 242088k cached 各コマンドの表示結果の関連性を教えてください。 1.vmstatコマンドでは「used」項目が表示されないため  メモリの使用量が分からない? 2.「used」項目と「free」項目を足し合わせると、実メモリサイズ(total)と一致する。  「buff(ers)」項目と「cashe(d)」項目は、実メモリの情報?仮想メモリの情報? 3.「buff(ers)」項目と「cashe(d)」とは?また違いは?  #freeコマンドでは、「cashed」項目は「Mem(実メモリ)」列に表示されているが  #topコマンドでは、「Swap(仮想メモリ)」列に表示されている。 4.「-/+ buffers/cache:」列の意味は?  「used」項目と「free」項目を足し合わせると、実メモリサイズ(total)と一致する。  #「Mem」項目の「buffers」項目と「cashed」との違いは? ご教示お願いいたします。 <環境> CentOS(5.5) カーネルバージョン:2.6.18-194.11.3.el5 実メモリ:512MB スワップ領域:1024MB procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 140 29812 137260 242080 0 0 0 3 2 0 1 0 96 3 0 top - 17:00:00 up 125 days, 16:04, 1 user, load average: 0.05, 0.05, 0.02 Tasks: 107 total, 1 running, 106 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.2%sy, 0.4%ni, 96.2%id, 3.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 515312k total, 485500k used, 29812k free, 137260k buffers Swap: 1052216k total, 140k used, 1052076k free, 242080k cached

  • vmstatコマンド cpuのidle結果の自動取得に関して

    vmstatコマンド cpuのidle結果の自動取得に関して Linuxのcrontabでシェルファイルを実行し、 その中でvmstatコマンドを実行、出てきた結果のCPU(idleの値)のみを取得したいのですが、 何か方法はありますでしょうか。 # vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 42944 21640 38644 839040 0 0 11 13 254 23 0 0 100 0 0 0 42944 21640 38644 839040 0 0 0 0 254 10 0 0 100 0 0 0 42944 21640 38644 839040 0 0 0 0 253 25 0 0 100 0 上記の例でいうと、3行出ている結果それぞれ、 行末から2個目の値(100)を取得(変数に格納など)したいと考えております。 値と値間は半角スペースで区切られ、出力する値の桁数によって半角スペースの個数が異なります。 ただし、値間に必ず1つは半角スペースは入ります。 半角正規表現を使って試みたのですが、 上述の取得したい値が取れません。 取る方法を教えていただけないでしょうか。 正規表現にこだわっているわけではないので、 方法は問いません。 (一般的にはこうやる、というものがありがたいですが・・・) よろしくお願いします。

  • vmstatのアイドル率

    vmstatのアイドル率の見方なのですが CPUの使用率として 0%か100%かどちらで推移してるのが CPUをフルに使っていることになるのでしょうか? 以下にSolarisのvmstat を添付いたします。 procs memory page disk faults cpu r b w swap free re mf pi po fr de sr f0 s0 s1 -- in sy cs us sy id 0 0 0 885888 433688 0 0 0 0 0 0 0 0 0 0 0 114 56 216 0 0 100 0 0 0 885888 433688 0 0 0 0 0 0 0 0 0 0 0 115 54 215 0 0 100 0 0 0 885904 433700 0 1 0 0 0 0 0 0 0 0 0 114 64 217 0 0 100 0 0 0 885912 433704 0 0 0 0 0 0 0 0 0 0 0 113 49 214 0 0 100 0 0 0 885912 433696 0 1 0 0 0 0 0 0 0 0 0 113 129 218 0 0 100 0 0 0 885912 433696 0 0 0 0 0 0 0 0 0 0 0 113 55 215 0 0 100 0 0 0 885912 433692 0 0 0 0 0 0 0 0 0 0 0 115 56 216 0 0 100 0 0 0 885912 433692 0 0 0 0 0 0 0 0 0 0 0 114 54 215 0 0 100 0 0 0 885912 433688 0 0 0 0 0 0 0 0 0 0 0 115 61 216 0 0 100 0 0 0 885912 433688 0 0 0 0 0 0 0 0 0 0 0 114 50 215 0 0 100 よろしくお願いいたします。

  • vmstatコマンドについて

    自宅でサーバーを立てました。 vmstatコマンドで次の結果になりました。 2文字以下のタイトルのデータが0ならベスト?と判断しているのですが、 以下の状態はどう見たらよいのでしょうか? soはスワップ状態から呼び出された容量KBを表し、0以上だとメモリ不足でスワップが発生していると理解しているのですが、どれくらいまでなら一般的に許容範囲か知りたいです。9KBなので駄目っぽいですが・・・ 残りの2文字以下(so)がどんな症状をあわらしているか(何が悪いのか)がわかりません。特にbi,boが知りたいです。 サーバー管理の詳しい方教えてください。 procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 1 0 0 100472 24684 139880 688520 1 9 10 8 6 11 12 16 1 皆さんは、ログウオッチやvmstatコマンドのほかに、サーバー異変を察知するために何かしていることはありますか?

  • メモリの使用率

    OS:windows2000で タスクマネージャを起動いたしますと メモリ使用量:100548 KB/746890 KB メモリ使用量:変動値 KB/ 固定値 KB と表示されています (1) この値は現在のメモリの使用率なのでしょうか? (2) 例えば 256MB のメモリを搭載している場合の   メモリの使用量は どの位になるのでしょうか? 以上、よろしくお願い申し上げます

  • メモリの使用率

    CPU使用率とランダムアクセスメモリの計測器のようなものをサイドバーで使用しているのですが、メモリ使用率が何もソフトを起動していない状態で60%ぐらい使用しています。この値はいかがなもんでしょうか?PCのメモリは1ギガなのですが、この値はふつうなのでしょうか?ちなみにOSはビスタでCPUはcore2duoです。 それで、この計測器以外でメモリをどのぐらい使っているかを知る方法って他にあるのでしょうか?お教えください。。

  • LINUXのメモリ

    linux redhatを使用しています。 メモリの使用量を調べたいのですが、freeコマンド topコマンド vmstatコマンドでみたのですが、値がそれぞれ違っているようなのですが、どうのように調べればようのでしょうか?

  • メモリの使用量について

    メモリの使用量の確認方法について教えてください。 freeコマンドを実行すると以下のように表示され、2GB中1.3GBを使用していることが分かります。 total used free shared buffers cached Mem: 2072828 1358364 714464 0 175372 836028 -/+ buffers/cache:346964 1725864 Swap:2096472 0 2096472 どのプロセスがメモリを消費しているか調べたいと思い、topコマンドを実行後、"M"でメモリの消費量の多い順にプロセスを並べ替えて、使用率の合計を計算してみました。 しかし、その合計値は約20%ほどです。 2GBのメモリを積んでいますので400MBほどしか使用していないことになります。 freeコマンドとtopコマンドでどうしてこんなに大きな差が出ているのでしょうか? また、どちらが正しい値なのでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

  • Linuxのcpu使用率に関して。

    Vine Linuxのcpu使用率について質問です。 gkrellmやtopでcpu使用率を監視すると cpu使用率(システム)が常に20%前後になっています。 さらに、vmstatで確認するとioのbiが13万近くに なっており、割り込みが非常に多くなっています。 同スペックの違うマシンで同様の調査をしましたが cpu使用率は何も起動しないと0%近くで vmstatのbiも100前後になっています。 (HDDのメーカー、メモリの容量が違います) 上記のような場合、考えられる問題を教えて いただけたらと思い書かせてもらいました。 また、原因を調査する方法など教えていただければ幸いです。 よろしくお願いします。