QNX 6.4.1を使用すると、プロセスに関する情報を表示するpidin times
というコマンドがあります。それはPID情報を意味すると思います。特に、プロセスが開始されてから使用されたCPUの量を確認できます。
システムが約10時間実行された後、/usr/sbin/random
でほぼ2分のプロセッサ使用率を示しているシステムがあります。私のコードでは/usr/sbin/random
を何も呼び出さないので、それは多くのように思えます。
現在、ネットワークアクティビティ(UDPとTCP)がたくさんあるので、ネットワークドライバーがパケットの衝突のために動的な衝突のバックオフ時間を取得するためにrandom
を呼び出しているのではないかと思います。
この理論は正しいでしょうか? (さて、それはどれほどもっともらしいですか?)そうでない場合、私がチェックすべき他の何かがありますか?現在、このシステムには昨日存在しなかった遅延の問題があり、何が起こっているのかを知りたいと思います。この特定の手がかりは、問題を特定するのに役立つ場合があります。
更新
nicinfo
を使用してさらに調査したところ、パケットの衝突はまったくありませんでした。それで、私の動的衝突バックオフ時間理論があります。他のアイデアはありますか?
別の更新
これは私の問題に対する答えを見つけるのに役立ちましたが(SSHDはもちろんランダムを使用していました!!)、注意してください。 SSHを使用する場合、ログオンするにはrandom
が機能している必要があります。何らかの理由で、スクリプト内のrandom.old
の呼び出しが機能せず、組み込みシステムをブリックしました。ので注意してください。
クレイジーなトラブルシューティングのアイデア:ハニーポット/貧乏人のプロセスアカウンティングを作成します。
/usr/bin/random
のバックアップを作成します
cp -p /usr/bin/random /usr/bin/random.bak
touch /tmp/who_is_calling_random.log ; chmod 622 /tmp/who_is_calling_random.log
/usr/bin/random
をこのシェルスクリプトに置き換えます(必要に応じて/ tmpとは異なるパスを使用できますが、誰でも書き込み可能であることを確認してください)。
#!/bin/sh
echo "`date` $USER $$ $@" >> /tmp/who_is_calling_random.log
/usr/bin/random.bak "$@"
chmod 755 /usr/bin/random
システムを再起動します。
ハニーポットログに何が集まるかを確認します。これは、ランダムプログラムの使用の背後にいる人/もののログである必要があります。
tail -f /tmp/who_is_calling_random.log
手順1で作成したバックアップからrandom
を復元します。
再起動システム。