1

Linux マシンでパフォーマンス統計を取得するアプリケーションを作成する必要があります。残念ながら、この環境は非常にメモリに制約があるため、標準のコマンド ライン ツールを使用することは実際にはオプションではありません。かなり頻繁にそれらをポーリングする必要があるからです。

理想的には、カーネル自体からパフォーマンス データを直接取得し、アプリケーションの RAM 要件を可能な限り削減するために使用するのと同じバッファーとデータを使用することです。私のアプリを Linux カーネルに密接に結びつけることは、Linux を本番環境でしか使用したことがないため、実際には問題ではありません。

ここ 1 日か 2 日、カーネル ソースを調べてみましたが、多少迷っていることは認めざるを得ません。CPU パフォーマンス情報 / I/O パフォーマンス情報 / ネットワーク パフォーマンス情報と帯域幅使用情報にアクセスするための適切な場所を誰か教えてもらえますか?

4

1 に答える 1

5

/proc/stat、/proc/diskstats、/proc/net/* など、/proc の下にいくつかのファイルがあると思います。

CPU パフォーマンス情報については、/proc/stat を使用して、ファイル形式が Linux カーネル ソース コード ツリーのファイル ./fs/proc/stat.c で定義されています。

ディスク アクセス情報については、/proc/diskstats を使用して、ファイル形式は Linux カーネル ソース コード ツリーのファイル ./block/genhd.c で定義され、関数は diskstats_show() です。

ネットワーク関連の統計については、/proc/net/ の下のファイルを参照できます。しかし、ディレクトリ /proc/net の下のファイルに基づいて帯域幅の使用量を計算する方法がわかりません。

于 2013-07-30T07:18:11.267 に答える