• 締切済み

FreeBSDでのCPU占有率とメモリ占有率

punchan_jpの回答

回答No.2

%CPU の値は、本当にアクティブなプロセスを何も動かしてなけれ ば、合計はほぼ 0.0 になるはずです。 ただし、その一瞬でも CPU への割当てがあればカウントされます から、ps コマンド、その結果を見る more/less コマンド、その集 計をする awk/perl コマンドのせいで、はね上がることがあります。 60 というのはどのコマンドが占めていましたか?ps に -c オプショ ンをつけるか、-w オプションをつければわかりやすいと思います。 そして、CPUが1個のシステムであれば、どんなに重くなったとして も %CPUの合計が 100 を超えることはありません(psコマンドの仕 様で256分率を使っているものは別)。ですから、重さの目安とし ては使えないでしょう。 また、%MEM の方も、実メモリの使用率ですから、どんなに重くなっ ても 100 を超えません。やはりあまり目安にはならないでしょうね。 1Yenさんのいうように、まずは load average が重要です。これは 何個のプロセスが CPU の割り当てを待っているかを表す値で、こ れが大きいほどなかなか自分のプロセスにCPUがまわって来ないの で重くなるというわけです。 あとは、通常のファイルアクセスが非常に多ければ、やはり重くな りますね。 それ以外には、実メモリに入り切らないデータは仮想メモリに swap されてしまいますが、仮想メモリへのアクセスが頻発する状 況になると極端に重くなります。VSZ は、使用している総メモリ量 ですが、このうち、RSS の分だけ実メモリに入っています。%MEM はほぼこれに比例しているはずです(ただし、コード部は共有され ているので、若干異なる)。つまり、VSZとRSSの差だけ、ディスク のswap領域にデータを持っているのですが、そのプロセスがアクティ ブだと重くなる可能性が高まります。 ファイルであれスワップであれ、ディスクアクセスの頻度を見るのは iostat コマンドです。

関連するQ&A

  • ユーザごとにCPUの占有率を制限

    題名の通りですが、たとえば、ユーザが利用できるCPUの利用率を最大50%までしか使えないようにしたい場合、どのようにすればよいですか? というのも、CPUの負荷下におけるプロセスの速度評価を行うために、無限ループをするプロセスを別に走らせて行っていたのですが、この負荷下で、評価したいプロセスを200回以上連続実行すると、200回全体の合計実行時間に、負荷がかかったような形跡がほとんどなくなってしまうという謎の現象が起こってしまったからです。 なので、ユーザが利用できるCPU占有率を一定にできないのかなと思い、質問してみました。 ulimitではできなさそうですよね。

  • FreeBSD4.11 で core2duo の2つのCPUは使えるのでしょうか?

    FreeBSD 4.11 は core2duo E6300 の 2つのCPUは使えるの でしょうか? topコマンドで CPU の表示を確認しますと最大で 50% の ようです。これは片方だけしか認識できていないということ であってますでしょうか。もしくは表示上の問題で実際は 100%のCPUを使用しているのでしょうか。 SMPを組み込んでみましたが 2CPUの topコマンドの表示には ならないようです。(カーネルのSMPの箇所のコメントを外して コンパイルしたのみです。)

  • CPU 使用率について(ps,top,sar)

     "ps -aux"コマンドを利用したスクリプトを作成し、CPU 使用率を定期的に監視するようにしています。 先日、このスクリプトで CPU 使用率 99% を示す異常がありましたが、同じタイミングで top や sar を 試したところ、CPU 使用率は 1% もありませんでした。 異常があった時の ps -aux の取得結果は以下の通りです。 USER   PID %CPU %MEM VSZ RSS TTY STAT START  TIME COMMAND root    7 99.9  0.0  0  0  ?  SW Jul23 272:54 [kscand/Normal] ※等幅フォントだと見易いです kscand で CPU を 99.9% 消費しているように見えるのですが、top や sar コマンドの CPU 使用率は いずれも 1% 未満でした。またサーバの動作自体は軽快で、とても CPU を使い切っているようには 思えませんでした。 この事から ps コマンドの異常か何かだと思うのですが、ps と top や sar で取得する CPU 使用率の値に どの様な違いがあるのでしょうか。また、取得する値についてそれぞれ信頼性はあるのでしょうか。 ご存知の方いらっしゃいましたらご教示の程お願いします。 ■バージョン OS:Redhat Linux 9 (Shrike) procps version 2.0.11 sysstat version 4.0.7

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

    メモリの使用量の確認方法について教えてください。 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コマンドでどうしてこんなに大きな差が出ているのでしょうか? また、どちらが正しい値なのでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

  • psコマンドについて

    CentOS6で、ps auxを実行した時、わからないことが3点あります。 PSコマンドにてssshの結果を取得しました 【結果】 USER  PID %CPU %MEM VSZ   RSS  TTY  STAT  START  TIME  COMMAND root   1010   0.0   0.0 1612  1172   ?  Ss    16:16    0:00  /usr/sbin/sshd 【質問】 1点目:STATに表示される、「Ss」について  二つSが付く、「Ss」の意味はどういうことなのでしょうか? 2点目:STATに表示される、「W」について  色々調べてみると、「スワップアウトしたプロセス」ということがわかるのですが  「スワップアウトしたプロセスとはどういうことなのでしょうか?」  データみたいにHDDに退避されたプロセス?ということなのでしょうか?  よって、処理速度が遅くなったりする? 3点目:TTYの「?」について  制御端末がない場合のプロセスが、 ?でが出力される。  ということはわかったのですが、このsshdは自動起動設定にしているため  「?」になったのでしょうか? ご教授お願いします。

  • cygwin(psコマンド)についての質問です

    cygwin(psコマンド)についての質問です ----- いつもお世話になっています。 cygwin/Linux勉強中です。 cygwinからwindows上のプロセスを見て、cpu負荷が高いものをkillしようと思っているのですが、以下のコマンドをたたいてもcpuの使用率が表示されません。 ps aux -W manコマンドで確認したところ、psのオプションにはauxについての説明がありませんでしたので使用できないのでしょうか? もしくは、オプションが間違っているのでしょうか? 低レベルな質問で申し訳ありませんが、ご教示の程、よろしくお願いいたします ------ cygwin version:1.7.5-1

  • プロセスが使用するCPU使用率を下げる設定は?

    非常に負荷の高いプログラムを実行している時に、CPU使用率が100%になり、高負荷になることが気になっていまして、CPU使用率やマシン負荷が軽減できないか、方法などを模索しています。 少し処理時間が掛かっても良いので、負荷を減らし時間で解決できればと考えています。 niceコマンド、priocntlコマンド(root権限で実行)で、プロセスの優先度の設定をしつつ、プロセスの実行ができることは分かったのですが、topコマンドでCPU使用率のところを見ると、0% idle状態なのはnice/prioctl未使用時とくらべ、変化はなく、効果の具合がよく分かりませんでした。 また、priocntlはroot権限で実行しないといけないようで、一般ユーザでの実行を考えているので、これもNGかなと思っています。 なにか解決策はありませんでしょうか?ご存じの方がいらっしゃいましたら、教えて頂けませんか。 よろしくお願いします。

  • CPU率が低いのにLoad Averageが高い

    某プロバイダのVPSにてサイトを運用しています。 OSはFreeBSD 4.7です。 最近、突然サイトが重くなることがあり、topで状態を確認しますと、 一番CPU使用率が高いプロセスがmysqldで、5%前後にもかかわらず、 Load Averageが2~4、ひどいときは5を超える時があります。 この状態は短いときは15分程度、長いときは2時間ほど続きますが、 何もしなくても勝手に収束します。 topには表示されないプロセスがCPUを占有しているのでしょうか? VPSだと、同じサーバを共用しているユーザの負荷を影響したりするのでしょうか? この質問はプロバイダの技術担当にしてみましたが明確な解答をいただけませんでした。 負荷の原因となっているプロセスを特定したいのですが、 他に方法がありましたら教えていただけると助かります。

  • linuxでプロセスが動いているCPUナンバーを知りたい

    linuxでプロセスが動いているCPUナンバーを知りたい 件名の通り、linuxでプロセスが動いているCPUナンバーを知りたいとおもっています。 psコマンドですと、プロセスID等はでますが、 デュアルコア、クワッドコアのどのcoreでプロセスが動いているのかを確認したいので すが、表示できません。 なにか方法がありますでしょうか? CPU(core)ナンバーとプロセスIDが結びつけば問題ありません。 mpstat -P 0 は使用率しかでなく、プロセスが見えませんでした。 よろしくお願い致します。

  • プロセス監視(psコマンド)について

    初歩的な質問ですいません。 プロセスを確認するためにpsコマンドを利用しています。psコマンドで自分以外のプロセスのみを表示させたいと感じています。オプションをつけて、自分が実行しているプロセス以外を表示させることはできないのでしょうか。 また、参考URL等ありましたら教えていただけましたら幸いです。