/usr/bin/random は CPU を多用します。

/usr/bin/random は CPU を多用します。

pidin timesQNX 6.4.1には、プロセスに関する情報を表示するためのコマンドがあります。私はこれがPID情報を意味すると思います。これに加えて、プロセスの開始後に使用したCPUの量も確認できます。

/usr/sbin/random私のシステムは、約10時間実行してから約2分間プロセッサ使用率を示しました。私のコード呼び出しには何もないので、これはたくさんあるようです/usr/sbin/random

しかし、今では多くのネットワークアクティビティ(UDPとTCP)があり、ネットワークドライバがパケットクラッシュrandomのために動的クラッシュバックオフ時間を取得するために呼び出すかどうか疑問に思います。

この理論が正しいと思いますか? (はい、どのくらい信頼できますか?)そうでない場合は、さらに確認する必要がありますか?昨日はなかった待ち時間の問題が現在システムに発生しており、何が起こっているのか知りたいです。この特定の手がかりは、問題を特定するのに役立ちます。


修正する

さらなる調査nicinfoは、パケットの競合がまったくないことを示しました。これにより、動的衝突バックオフ時間の理論を終了します。別のアイデアがありますか?


別のアップデート

これは私の質問に対する答えを見つけるのに役立ちますが(SSHDはもちろんランダムさを使用します!)注意してください。 SSHを使用している場合は、randomログイン操作を行う必要があります。何らかの理由で私のスクリプトの呼び出しはrandom.old機能せず、私の組み込みシステムはほとんどレンガで覆われています。だから注意してください。

答え1

クレイジートラブルシューティングのアイデア:ハニーポット/貧しい人々のプロセス会計を作成します。

  1. バックアップする/usr/bin/random

    cp -p /usr/bin/random /usr/bin/random.bak
    
  2. touch /tmp/who_is_calling_random.log ; chmod 622 /tmp/who_is_calling_random.log

  3. このシェルスクリプトに置き換えます/usr/bin/random(必要に応じて/ tmpとは異なるパスを使用できますが、グローバルに書き込み可能であることを確認してください)。

    #!/bin/sh
    echo "`date` $USER $$ $@" >> /tmp/who_is_calling_random.log
    /usr/bin/random.bak "$@"
    
  4. chmod 755 /usr/bin/random

  5. システムを再起動します。

  6. ハニーポットログに収集された内容を確認してください。これは、ランダム割り当てプログラムの背後にある人/物の記録でなければなりません。

    tail -f /tmp/who_is_calling_random.log
    
  7. random手順1で作成したバックアップから復元します。

  8. システムを再起動します。

関連情報