4

実行時に一定量の CPU を消費する必要がある C コード (Linux 上) を作成しています。特定の CPU しきい値に達したときに特定のアクションをトリガーする実験を行っています。そのため、使用率が特定のしきい値に達したら、実験を完了するまで、たとえば 30 秒間その状態を維持する必要があります。top コマンドを使用して CPU 使用率を監視しています。

だから私の質問は - 1. CPU 使用率を特定の値に増やすにはどうすればよいですか (可能であれば決定論的な方法で)。2. しきい値に達したら、事前に定義した時間、そのレベルを維持する方法はありますか?

top コマンドの出力例 (9 列目は「top」プロセスで使用される CPU です) - 19304 abcde 16 0 5448 1212 808 R 0.2 0.0 0:00.06 top

上記と同様に、バイナリの使用率を示す一番上の行を見ていきます。

どんな助けでも大歓迎です。また、詳細が必要な場合はお知らせください。

ありがとう!

編集:次のコード行により、CPU使用率を非常にうまく制御できました-次の場合、2つのオプションがあります-50%以上に保ち、50%未満に保ちます-いくつかの試行錯誤の後、与えられた値に落ち着きましたスリープ値。

endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {}
if (cpu_utilization > 50)
    usleep(250000); 
else
    usleep(700000);

お役に立てれば!

4

2 に答える 2

2

cpuburnは、CPU 使用率を非常に高くして、温度を最大レベルまで上昇させることが知られています。これに関する公式 Web サイトはもうないようですが、Debian パッケージまたはgooglecodeを使用してソース コードにアクセスできます。これは asm で実装されているため、C で操作するには接着剤を作成する必要があります。

于 2012-02-08T22:00:25.063 に答える
2

私の意見では、この種のものは一定の CPU 使用率を持つべきです: md5sum < /dev/urandom

于 2012-02-10T07:23:32.667 に答える