|
||||||||||||
| 1 2 3 4 次のページ | ||||||||||||
| VirtualMachineからのネットワークの性能 | ||||||||||||
|
第1回〜第3回では、どちらかというとドメインU単体での使用を想定して検証を行ってきました。しかし、よほどのことがない限りは、スタンドアロンでVM(VirtualMachine)を使うということはあまりないでしょう。そこで第4回では、VMから見たネットワークの性能を測定します。 |
||||||||||||
| 環境の作り方 | ||||||||||||
|
今回の環境もまた、XenでドメインUが動作している環境が必要になります。基本はドメインUが動作している環境なので、今回も前回までの環境をそのまま使います。前回までのドメインU環境は、普通にネットワークが利用できるので、そのまま使って差し支えありません。 なおI/Oは、/dev/nullに向けて発生させます。こうすることで、物理的なI/Oは発生せず、純粋にネットワーク単体の性能に近い結果を得ることが可能になります。 また物理的な構成ですが、Xenが動作しているコンピュータと、それ以外のコンピュータを100MbaseTで接続した構成になります。本来ならば、異なるVMからネットワークを経由して、それぞれ異なるコンピュータにアクセスさせるのがよいのですが、トータルのバンド幅が100Mbpsなので、最大でも100Mbps以上はだせません。このため物理的なコンピュータは、Xenを動かすマシンと取得データを置くマシンの2台になります。 なお、sample.file(10MBのファイル)の中身は何であってもよいのですが、以下のようにして作成しました。 sample.fileの作り方
$ dd if=/dev/null of=sample.file bs=1024k count=10
|
||||||||||||
| 性能の測定の仕方〜wgetコマンドを使う〜 | ||||||||||||
|
先にも記述しましたが、/dev/nullに対するI/Oを実施することで、ディスクI/Oなどの物理的な性能を気にすることなく、ネットワーク関連の部分についての性能を測定できるようになります。 性能測定方法は、wgetコマンドにおけるデータ転送速度をチェックするということで実施します。 |
||||||||||||
| 測定用コマンドの選定〜wgetコマンドを使うまでの道のり | ||||||||||||
|
今回の性能測定にあたり、wgetコマンドとDebian GNU/Linux 3.1(sarge)のftpコマンドの2つを比較しましたが、wgetで充分と判断しました。これは、OSの種類が異なってもwgetコマンドの出力は同様であったためです。 ftpコマンドは、Linuxディストリビューションによって異なる動作を示したため、今回は用いません。ftpコマンドで取れる情報は、CentOSとDebianでは以下のようになります。 CentOS4.4のftpコマンドではdebugモードにおいても詳細な性能値が得られない
ftp> debug
Debian GNU/Linux 3.0や3.1のFTPコマンドではdebugモードにおいて詳細な性能値が取れる
ftp> debug
wgetコマンドの場合
[wakatono@jannedaarc ~]$ wget http://www.example.com/~wakatono/sample.file -O /dev/null
本来であれば、ディストリビューションも同様にすべきですが、根本的にほとんど何も動作していない状況であり、かつカーネルもドメイン0用とドメインU用で異なることがある以外は同じものであるため、環境が測定結果に与えるインパクトは小さいだろうと判断し、今回の環境は混合環境にしました。 |
||||||||||||
| 出力ファイルの指定〜wgetコマンドで、ローカルのファイルを/dev/nullに指定 | ||||||||||||
|
wgetコマンドの書式を以下のようにします。「remote_file_url」のところには、取得するファイルに対応したURLを指定します。 wgetコマンドの書式
wget remote_file_url -O /dev/null
ここでlocal_fileに/dev/nullを指定することで、ローカルファイルに対する書き込み速度を気にする必要がなくなります。 なお、incomingだけでなくoutgoingについても測定できるという点ではftpコマンドの方がよいのですが、FTPクライアントのputコマンドで、次のようにremote_fileにてFTPサーバ上のファイルを指定可能(当然省略は可能)でも、/dev/nullを指定した場合でも、「通常ファイルではない」とのエラーが出力されるため、wgetの方が簡易であると判断しました。 ftpコマンドでremote_fileを指定
ftp> put local_file remote_file
ftpコマンドで/dev/nullを指定とエラー
ftp> put sample.file /dev/null
|
||||||||||||
| 取得ファイルは事前に何度か取得しておき、当該ファイルを(サーバ側の)バッファキャッシュに格納するようにしておく | ||||||||||||
|
VM側で物理I/Oが発生しなくても、通信する相手で物理I/Oが発生すると、トータルの性能が下がります。このため、物理I/Oを発生させないために、ある程度予備的なI/Oを発生させ、ファイルアクセス時に物理的なディスクアクセスが起きにくいよいにします。 |
||||||||||||
|
1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||

