0

Linuxの最初の行のように、すべてのBSDにCPU統計(カーネル、アイドル、ユーザーなどで費やされた時間)を取得する共通の方法があり/proc/statsますか?

負荷がかかっているシステムを検出しようとしていますが、アクティブなとき(特定のしきい値を超えているとき)は計算を実行しません。私はWindows/Linuxでそれを行う方法を理解しました。

どういうわけかsysctlを使う必要があると思います。私はこれを見つけました:

http://osdir.com/ml/darwin-kernel/2009-06/msg00036.html

これはクロスプラットフォームですか?私は特にこれらのBSDをターゲットにしようとしています:

  • Mac OS 10.6+
  • FreeBSD 8+
  • OpenBSD5+

私はBSDにほんの少ししか精通していないので(私は10代の頃にFreeBSDで少し遊んだ)、どんな助けもいただければ幸いです。

4

1 に答える 1

1

いいえ、それらはそれほど移植性がありません。けれど

      sysctl vm.loadavg 
      vm.loadavg: { 0.98 1.39 1.50 }

上記のセットでたまたま機能し、ある程度同等です。

シンプルでありながら幅広いものが必要な場合は、コマンドの稼働時間の解析(舞台裏ではプラットフォーム間で微妙に異なるsysctlに依存している)を検討し、負荷数を抽出します。

      uptime
      11:38AM  up 18 days, 15:50, 2 users, load averages: 0.04, 0.01, 0.00

これはかなりクロスプラットフォームであり、セマンティクスは非常に似ています。

それでも不十分な場合は、システムがホストリソースMIBを公開するSNMPエージェントを実行していることを確認してください。これにより、プラットフォームに依存しない簡単な負荷の取得方法が得られます。コードからこれを本当に実行したい場合は、多くのプラットフォームで/ procとsysctlのさまざまなフレーバーがあるため、net-snmpからこのコードを取得することを検討してください。

于 2012-07-25T09:39:30.690 に答える