• ベストアンサー

CPU使用率 part2です

すみません。同じような質問ですが、以下に修正しました。 (1)cronにより特定のコマンドを起動 (2)起動されたコマンドが連続100回ループ (3)1回毎のCPU使用率、メモリ使用量を取得(vmstat) (4)cron起動よりコマンド(100回)終了までの時間取得 以上のようなシェルを作成したいのですが、 何かアドバイスが欲しいのでお願いします。 OSはsoralisです。

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

  • ベストアンサー
  • 1Yen
  • ベストアンサー率28% (11/39)
回答No.3

なぜ、100回のループさせ、1回毎のCPU,メモリの使用量が必要なのかよく分かりませんが、1回あたりの実行時間が分オーダのもので無いとまともな値は出ないでしょう。 その昔SONYのBSDベースだった頃のNEWSでは、acコマンドでプロセス毎についてレポートを出すことが出来たのですが、Solarisはあまり慣れていないもので。 少なくとも、 http://docs.sun.com:80/ab2/coll.140.7/SYSADV2/@Ab2PageView/idmatch(SYSRESACCTREF-18142)?Ab2Lang=ja&Ab2Enc=euc-jp#SYSRESACCTREF-18142 を、見る限り どこかに残るように設定できそうですので、下のリンク先を参照してがんばってみてください。 http://docs.sun.com:80/ab2/coll.153.4/REFMAN1M/@Ab2PageView/1359?DwebQuery=acct&oqt=acct&Ab2Lang=ja&Ab2Enc=euc-jp ただ、これはOSすべてのプロセスの情報を集めるのでディスクの空き容量に注意してください。 # FreeBSDで、こいつが原因で何度 200M以上ある # /var をあふれさせたことか...

その他の回答 (2)

  • k-841
  • ベストアンサー率27% (129/465)
回答No.2

補足ありがとうございます。 やはり気になるのは、「コマンドが100回起動されている『間』の」ですね。sarにしろtopにしろ、(システムにとっては大変長い)秒単位の瞬間値を表示するもの(つまり観測点は離散的です)ですから。たとえば秒単位でシステムの(粗い)状態をモニタリングしたいということでしょうか?そういうことでしたら、最初に sar をバックグラウンドで立ち上げ、「コマンド」を100回実行するループを書き、終了したらsarを殺す、といった感じでいいと思います。ただし、この場合、当然他のプロセスが走っていたりするとそれも拾うし、そうでなくてもsar立ち上げのタイミングやシステムの状態によって毎回測定値は変化します。 ところで、「間のCPU使用率」を正直に解釈すると、(離散的でなく)連続的な変遷や時間積分値なんかを求めるんじゃないかと考えてしまうのですが、そのような使用方法となると、私には見当つきません。

sting
質問者

補足

すみません。sarの使用方法を理解していませんでした。 調査中なのですが、k-841さんが上記の方法をご存知であれば 教えて頂けませんか?

  • k-841
  • ベストアンサー率27% (129/465)
回答No.1

情報をもらったからといって私がお答えできるかどうかわかりませんが・・・ (1)で起動される特定のコマンドは「以上のようなシェル」なのですか?シェルの内部でとあるコマンドを100回起動する、という意味でしょうか? (3)の1回ごとのCPU使用率というのが意味がわかりません。CPU使用率はプロセス実行中にも刻一刻と変化します。メモリ使用量も然りです(こちらはたいてい減らさないような実装みたいですけど)。また、最後の(vmstat)も気になります。特定プロセスのそれではなく、システム全体のそれを知りたいのですか?

sting
質問者

補足

(1)についてはYESです。 (3)については私の誤りです。申し訳ありません。 コマンドが100回起動されている間のCPU使用率、メモリ使用量 を取得したいのです。ですのでsarかなにかになるのでしょうか?

関連するQ&A