質問: x / intervalを計算します(負荷が高い場合、間隔は常に正確に5秒とは限りません) これを実行すると、賢明な見た目の値が得られます。たとえば、このシステムのユーザーはpython(while true: pass)でスピンし、システムは毎秒約750ミリ秒のcpu時間を示していました。システムが少しハングしたとき、1秒のインバーバルにつき1600msと報告されました。これはほぼ正しいように思えますが、これらの値が偽物である可能性があることは理解できません。特に、本当にそれらを理解していない場合、.だから私の質問はこれです:ユーザーごとにcpu負荷を測定する公正で正しい方法は何ですか?メソッドはかなり正確でなければなりません。このシステムには何百人ものユーザーがいる可能性があるため、ps auxからパーセンテージを抽出することは、特に多くのソフトウェアが生成することを好む短命のスレッドの場合、十分に正確ではありません。これは複雑かもしれませんが、それが可能であることは絶対に知っています。これが私の出発点でした: カーネルは、プロセスの作成時間と、その存続期間中に消費するcpu時間を追跡します。クロックティックごとに、カーネルは現在のプロセスがシステムモードとユーザーモードで費やした時間を一瞬で更新します。 —( linux documentation project )から 後の値は、ユーザーがcpuに費やした秒数(またはjiffies)であり、システム負荷やcpu使用率のパーセンテージではありません。プロセスの実行中にcpu時間を測定することが重要です。プロセスのなかには0.5秒しか続かないものもあれば、数か月続くものもあります。両方の種類をキャッチして、ユーザーのcpu時間をきめ細かく把握できるようにする必要があります。
回答: より明白な答えの1つは、現在あなたが現在していることを単に拡張することです。bashスクリプトとmysqlを使用してユーザーのcpu時間を追跡するためのこのモニタープロセスに出会いましたが、それはあなたが話していたよりもはるかに長い時間枠にまたがっていました。うまくいけば、これがあなたが向かう方向についてのより多くのアイデアをあなたに与えることができるでしょう。 http://www.dba-oracle.com/t_oracle_unix_linux_vmstat_capture.htm