
セットアップは次のとおりです。ESXi ホスト上で実行されている Ubuntu-11.10 VM。VM には 3 つの vCPU が割り当てられています。
ダンプ (ハードディスクのバックアップ) を実行すると、すべてのプロセスが最初の vCPU に割り当てられるようです。圧縮を使用しているため、vCPU が 100% ロードされ、ダンプの速度が極端に低下します。
私は (taskset を使用して) ダンプ プロセスを他の vCPU に分散し、バックアップの速度を 3 倍に向上させました。元のアフィニティは 0 ~ 2 に設定されていましたが、設定したアフィニティを削除すると、すべて最初の vCPU に戻ります。
スケジューラがすべてのプロセスを同じ CPU に割り当てる原因がわかりません。タスク スケジューラがこのように動作する理由を誰か説明してもらえませんか?
答え1
3 つの vCPU は通常の設定ではありません。2 つまたは 4 つの vCPU でもう一度試してください。動作が変化するかどうか知りたいだけです。このようなプロセスでは、CPU アフィニティを設定する必要はありません。
基盤となる ESXi ホストはどのようなものですか? その仕様は何ですか?
実際にdump
コマンドを使用していますか、それとも別のバックアップ ユーティリティを使用していますか? そのユーティリティはシングル スレッドですか、それともマルチ スレッドですか?
編集:
これは、使用されている圧縮に関係しているのではないかと思います。自分の環境でテストして確認しています。
sudo /sbin/dump -0uanj -f - / | ssh -c blowfish [email protected] dd of=/Path/to/backup/file