• ベストアンサー

UNIX環境でのCプログラム上でCPU使用率を取得する方法の質問

CPU使用率を取得し、そのデータを送信するプログラムを作成したいのですが、プログラム上でCPU使用率を取得する方法がわかりません。 申し訳ありませんが、どなたか教えていただけないでしょうか?

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

  • ベストアンサー
  • yoneda_16
  • ベストアンサー率47% (166/350)
回答No.2

どうしても、自分でプログラムを書かないといけない事情があるのでしたらともかく、vmstatやMRTGを使うのが常道だと思います。 @IT:メモリやCPUなどの利用状況を調べるには http://www.atmarkit.co.jp/flinux/rensai/linuxtips/088vmstat.html @IT:MRTGによるサーバ監視システムの構築 http://www.atmarkit.co.jp/flinux/rensai/root08/root08a.html

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mcq
  • ベストアンサー率48% (45/93)
回答No.1

Linuxの場合は"/proc/stat"から情報が取得できるようです。 http://www.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html "/proc/stat"から得られるのは累積CPU時間なので、2回取って差を求めないといけないようです。 http://search.luky.org/linux-users.7/msg05909.html ただ、「UNIX環境」とのことですが他のOSでは仕様が違うようで、Solarisの環境では"/proc/stat"が見つかりませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CPU使用率、メモリ使用率の取得

    solaris上でコマンドを起動するごとにCPU使用率、メモリ使用率を取得しテキストファイルかなにかにはきだされるようなシェルを作りたいのですが、何か良い方法はありませんか?ちなみにコマンドはcronで起動させ連続100回ほどコマンドを起動するような仕組みにしたいと思っています。 贅沢を言うならCPU使用率、メモリ使用率がエクセルファイルにはきだせ、グラフか何かであらわせないものかと思っているのですが・・・ムリですか?

  • Windows NT4.0 と 2000 のCPU使用率取得方法

    NT4.0と2000のCPUの使用率を取得したいのですがどのようにすれば 取得できるのでしょうか?  自分なりにいろいろ調べたら、HKEY_PERFORMANCE_DATAから 取得できるそうなのですが、レジストリを見てもみつかりません。。 また、隠しAPIの NTQuerySystemInformation を用いれば楽に取得できるそうなのですが、これ↑知ってたら教えて いただけないでしょうか。  恐縮ですが、初心者ですので詳しく教えていただけないでしょうか? どうかお願い致します。

  • VBでCPUの使用率を取得できますか?

    タイトルのとおりの質問なのですが、 VBのコンポーネントにCPUの使用率や メモリの使用率などを取得できるようなモノはありますでしょうか? また、VBのコンポーネントでは可能で無くても 他の方法なら出来ると言うのでも教えてもらえたら幸いです。 知っている方がいらっしゃったら、どうかお願いします。

  • プログラムにエラーは無いが,CPU使用率が0になりプログラムが進行しません。

    自分でFORTRANを用いて作成したプログラムを,CPUが Intel(R) Core(TM2) Quad CPU Q9650 @3.00GHz 2.99GHz 2.96GB RAM 物理アドレス拡張 のPCを使って実行しようとしています。 しかし,そのプログラム1つなら正常に実行されるのですが,2つ同時に実行すると,エラーメッセージは出ないのにCPU使用率が0%になり,実質計算が止まってしまう状態になります. 一つの計算の場合,CPU使用率は25%です. 今まで経験無いことなのでどうすればいいのか分からず困っています. 分かる方がいらっしゃいましたらお願いします.

  • CPU使用率を制限したい

    WindowsXP(HomeEdition)上で動作するperlプログラムを作成して実行するとCPU使用率が95-100%程度となりめいいっぱいCPUを消費してしまいます。このプログラムを長時間動作させたい(8hくらい)ので動作マシンからの出火なども心配です。100%の場合、50%程度で動かす場合と違ってperlプログラムの実行時の原因不明の動作不良も起こります。 そこでCPU使用率を50%程度に制限してperlプログラムを動作させたいのですがそのようなことはできますでしょうか。 どうぞよろしくお願いします。

  • CPU使用率がすぐに100%になってしまう

    PCが定期的に重くなってしまい困っております。 使用OSはwindows2000です。 症状としては、まず起動後2、3分程度重くなり一時的にCPU使用率は落ち着きます。 そしてPC使用中も約10~20分おきにCPU使用率が100%になり重くなってしまいます。 Process Explorerで見るところCPU使用率を100%に引き上げてしまうアプリケーションはservices.exeです。 Ad-Aware、Spybot、Symantec Security Checkなどを試してみたのですが、再起動などを繰り返した結果PC内のファイルデータなどを一部失ってしまいました。 以前は無かった症状なので非常にじれったい感じで困っております。 何か対処法等ありましたらアドバイス宜しくお願い致します。 (当方、PC初心者なので書き込みに不備がありましたら申し訳ありません)

  • CPU使用率100%で考えられる影響は?

    いつもお世話になります。 VisualBasicを使用してプログラムを作成しています。 プログラムを永久ループにしている為CPU使用率が100%となっていたので、WinAPI関数のSleepを追加したら使用率が1%以下になりました。 (そんなに重いアプリではありません) ふと思ったのですが、CPU使用率100%のまま使い続けると、どういった影響が考えられるのでしょうか?例えばHDクラッシュとかフリーズするとかが考えられるのでしょうか?(他のアプリケーションの動作が遅くなるというのは考えられますね・・・) 特に影響無しであれば、気にしないのですが。 以上、宜しくお願いします。 VB6.0(SP6),WinXP,TOSHIBA-dynabook,Celeron1.3G

  • CPU使用率取得方法について

    プロセス毎のCPU使用率を測定したいと思っています。 /proc/PID/statと/proc/statの両方のファイルの値で 算出可能でしょうか? 自分で考えたのは以下のような算出方法です。 ----------------------------------------- プロセスの実行時間(stime+utime) / システムのCP実行時間(user+sys+idel)をあるモニタ間隔で取得し、その差分から算出。 ----------------------------------------- topコマンドの中身も見てみましたが、プロセス毎の 算出方法は解りませんでした。 算出方法等お解りの方がいらっしゃいましたら、ご教授下さい。 ※ topコマンドからの直接の取得というのは今回は避けたいです。 ( 結果は同じだとしても。。)

  • MRTG CPU使用率の取得

    MRTGを使って、CPUの使用率を取得したいのですが、うまく行きません。 ルータでは取得しグラフ化しているのですが、自身のマシンを取得できません。 自身は取得できないものなのでしょうか? mrtg.confやsnmp.confを変更したり、コミュニティ名やOIDも確認しました。

  • CPU使用率

    PCが超不安定になってしまったため、デフラグしたのですが改善しません。ディスクのクリーンアップをしようとすると、「作成される空き領域を・・・」の状態で「古いファイルの圧縮」のままCPUの使用率が100%になって先に進みません。また、ブラウザを起動するだけでCPU使用率が100%になってしまいます。OSはwindows2000です。困ってます。