rngdのrhel 7仮想マシンでスクリプトを実行するときの高いCPU使用率

rngdのrhel 7仮想マシンでスクリプトを実行するときの高いCPU使用率

私は物理サーバーを仮想マシン(rhel 7.3)に移動しており、かなり基本的なスクリプトの実行中に私がやっている作業のCPU使用率が非常に高いことを発見しました。いくつかの調査の結果、スクリプトを実行すると、rngdがCPUの約30%(4コアで30%、つまり本質的にコア全体)を消費することがわかりました。この動作を示すテストスクリプトは、次のように簡単です。

#!/bin/bash

for i in {1..10000}; do
    echo $i > /dev/null
    y=$((i+1))
    echo $y > /dev/null
    echo $y | grep 'orange' > /dev/null
    sleep 0.001
done

いくつかの調査を行った結果、vmwareは、ハードウェアベースのrngをVMに公開し、そのモジュールをロードするカーネルモジュールであるvirtio_rngを使用しているようです。 esxiボックス自体が正しく設定されていることを確認できませんが、私の質問は次のようになります。

  1. 仮想環境でvirtio_rngが正しく設定されているかどうかを確認するには?
  2. 乱数を使用しないこの単純なスクリプトがrngdにアクセスし、デフォルトでCPU全体を消費するのはなぜですか?
  3. エントロピーとエントロピーがコマンドの実行にどのような役割を果たしているのか理解できない場合があります。誰もが正しい方向に私を指すことができますか? (該当しない結果がたくさん検索されました。)

ベストアンサー1

おすすめ記事