Windows Server 2008 から Windows Server 2008 R2 へ ファイルをコピーすることにした。
その結果、ものすごくカーネルに負荷がかかり、Hyper-V 上で動いているVMが動けない状況に遭遇した。その現象についてまとめておく。(ただし、対策は分からない)
構成
ハードウェア構成は以下の状況で現象が起きている。

今回は、110Ge(下側のマシン)でFire File Copyを立ち上げ、110Gdのマシンのファイル群(1T相当)を全て110Ge側にコピーすることを行った。HUBはGia Hub を用いている。
また、各ファイルのサイズは1Gbyte単位で主に ISO ファイル形式である。また検証用にウイルス対策は切ってある。
現象
110Gd側のパフォーマンスモニタで以下の状況が確認された。その影響で110Gd側の他のサービスにCPUリソースが割当たらず、枯渇状態に。Hyper-V上で動作しているVMもCPUリソース飢餓状態で、とてつもないことが発生していた。
この時は、各仮想マシンはアイドル状態であり、基本的に起動しているだけであり、この負荷の多くはファイル転送が影響していると考えられる。また、110Ge側(受け側)は、上記現象はおきていない。
Fire File Copy側のファイルコピーのスレッド数をシングル設定をして再度挑戦した。しかし現象は継続して発生。さらにFie File Copy側の優先度をIDLEまで下げると、以下のような状況を繰り返すようになった。
CPU負荷が一気に下がると同時にDISK I/O 及び Network I/O が上昇した。しばらくするとまた CPU負荷が戻り、以下のような状況になる。これを繰り返していた。
CPU負荷が高いと、Networkは 200Mbps付近、CPU負荷が低いと 400MBps ? 600MBps 出ている。
以上のことを考えると、沢山の処理をするためにCPU負荷が高くなっていると考えるのは難しいと考える。これは、CPU負荷と反比例してI/Oパフォーマンスが向上しているためである。その為、CPU負荷が高いので、I/Oパフォーマンスが低下していると考える方が正しく聞こえる。
また、CPUの使用率は、クライアント側の要求発行頻度と関連があること、カーネルスレッドの負荷がかかっていることから、Network または Disk 用ドライバとの関連が高いと考えられる。
まとめ
以上のことから、ドライバの問題のように感じるが、モンテカルロ的なプロファイラや、各キューのサイズを確認することが出来ないと一概に問題を究明できない。





コメントする