（１１）スーパー SINET 速度測定
江本
概雅彦

核融合科学研究所

要
遠隔ステーション設置直後より、スーパーSINET によるファイルの転送が期待通り速度が出ないことが報告されていた。ここでは、その問題点を探るとともに、解決策を探した。
測定方法
核融合科学研究所と京都大学エネルギー理工学研究所双方の Linux PC を利用し、ネットワークの転送速度を測定した。使用した PC のスペックを表１に示す。
表１

測定に使用した Linux PC の仕様

設置場所
CPUMemory
NIC
OS

A

B

核融合科学研究所
Xeon 2GHz × 2
2GB
BROADCOM BCM5701
LASER5 Linux 7.2

京都大学エネルギー理工学研究所
Pentium 4 2GHz
1GBIntel Pro 1000
Turbo Linux 7

測定結果
測定１：ping による応答時間
ping コマンドにより核融合科学研究所、京都大学間の応答時間を測定する。TCP プロト
コルはパケット毎に到達の可否を確認しながら送受信するプロトコルであるので、この時間が長いと通信速度が遅くなる。ping コマンドの応答時間は次の通り。
A−−＞B

10.5(ms)B−−＞A10.5(ms)

この結果、例えば、パケット長が 1500 バイト(Ethernet の MTU)の場合、転送速度は1500 / 10.5(ms) = 14.3 KB/s = 1.14 Mbps が限界となる。
測定２：netperf による UDP ストリームの測定
netperf コマンドにより京都大学から核融合科学研究所間の UDP での転送速度を測定した（表２）。この結果、約 700Mbps のスループットが得られた。これは 1Gbps のネットワークとしては妥当な数字であると思われる。
表２

B −−＞ A UDP 転送速度測定

Socket Size (bytes)

Message Size(bytes)

65536
65536

641024Throughput (M bits/s)
136629.26

655361472688.93

測定 3： netperf による TCP ストリームの測定
TCP ではパケットの到達を確認しながら通信を行うため、応答時間が長い場合、一パケット毎到達を確認すると著しく速度が遅くなる。そのため、TCP ではスライディングウィンドウという方法をとり、パケットの確認を遅延させ、スループットを上げることができる。この試験ではウィンドウのサイズを変えることにより、TCP の速度の影響を調べた。
また、TCP の送受信にはソケット通信が行われるが、ソケットの送受信バッファのサイズを大きくすることで、一度に送るデータを大きくしオーバヘッドを小さくすることができる。今回の試験ではソケットバッファの依存度も調べた。
TCP のウィンドウサイズを変えた試験では、デフォルトのサイズが最も高速であり、これはシステム側で最適な値にオプティマイズされているものと思われる。一方、ソケットバッファのサイズ変更は大きく速度に寄与し、2MB までとることにより、600Mbps 以上の速度が得られた。ウィンドウサイズがデフォルトの値の時、ソケットサイズとスループッ
トの関係を図１に示す。
Mbps

TCPス ト リ ーム の 転 送 速 度

700600500

Throughput

メッセージサイズ
4KB
8KB
32KB

400300200100016KB

32KB

図１64K

112KB
256KB
512KＢ
ソケットサイズ（受信/送信）

1024KＢ

2048KＢTCP ストリームのスループット測定

測定 4： FTP による転送速度
上記の試験でソケットバッファを大きくすることで速度が向上することがわかった。この設定で ftp により、A の 200MB のファイルを B の RAM ディスク上にコピーし、転送速度を測定した。

ソケットサイズデフォルトの時

45.2 Mbps

システムソケットサイズ 2MB の時

47.1 Mbps

この結果、システムの最大ソケットサイズには影響を受けないことがわかった。これはソフトウェア内部でソケットサイズの設定を行っており、システム側の最大ソケットサイズを利用するためには、プログラムの変更が必要になると思われる。
測定 5：bbftp による転送速度
bbftp は巨大なファイルの高速転送を行うためのファイル転送ソフトウェアで、複数のストリームを同時に使用し、ファイルを転送することができる。この試験ではストリーム数と転送速度の影響を調べた。使用したファイルは 200MB で、ftp のテストと同様に RAMディスク上に書き込んだ。結果を表３と図２に示す。
表 3 転送方向 B−−＞A、ソケットサイズ=2MB速度(Mbps)

1227.00

2388.06

4499.638407.35Mbps

bbftpのパラレル転送

600

500400
転送速度

ストリーム数

30020010001

図２2

パラレル数

48

bbftp のパラレル数と転送速度

この結果から、ストリーム数を 4 にすることで 500Mbps 近い速度が得られた。ストリーム数を８にすると逆に速度が低下した。オーバヘッドが原因かもしれない。最適なストリーム数はファイルの大きさ等によると思われる。
測定 6： ftp の複数セッションによる転送速度
bbftp の結果から複数セッションを張ることにより、全体としての速度が上がることがわかった。さらに、ftp を同一 PC で複数実行することにより全体との速度がどのように変化するかを測定した。測定は 200MB のファイルの転送を 5 回繰り返すというプロセスを同時に複数プロセス実行し、全プロセスの実行時間から全体としての転送速度を測定した。測定結果を表４と図３に示す。ftp はバッチ的に起動し、バックグラウンドで実行させていることから、全プロセスはほぼ同時に実行されていると期待される。
結果：ftp を複数実行することで全体としての転送速度が上げられることが確認できた。
なお、inetd や ftp により、コネクション数等制限があるので、複数セッション実行できるように変更しなければならない。
ftp のプロセス数と転送速度

表４

転送速度 B−＞A (Mbps)
45.1
90.6
180.5
350.9
635.6
412.3
NANA

プロセス数
１24816203264

転送速度 A−＞B (Mbps)
24.4
48.3
92.9
155.8
265.3
287.0
311.5
335.4

FTP（複数プロセス）の転送速度

Mbps
400
350300

転送速度

25020015010050012

図３
結4816
プロセス数

203264FTP（プロセス数）転送速度論
UDP では 700Mbps 程度の速度が得られ、この値は 1Gbps のネットワークでは妥当なものと思われる。TCP を利用した FTP 等で速度が得られないのは、TCP の原理上不可避であると考えられる。TCP のウィンドウサイズを変更することで速度が上がることが期待されたが、十分な速度を得ることができなかった。しかしながら、短期的な方策として、

zbbftp でストリーム数を増やす

zftp を複数起動する等の方法で、ストリームを増やすことにより全体としての速度を上げることが可能である。
より長期的には、ネットワーク事情を考慮した転送プロトコルの開発が必要であろう。