Transcript 江本雅彦(NIFS)
SuperSINET を利用した ファイル転送について 核融合科学研究所 江本雅彦 Super SINET 全国の大学・研究所を結ぶ光ファイバベースの ネットワーク 基幹10Gbps Point to Point 1Gbps 核融合科学研究所と東北大、東京大学、名古屋 大学、京都大学、広島大学、九州大学等と結ぶ しかし・・・ FTP等を利用したファイルの転送が遅い ~数十Mbps程度しかでない →実測を行い、問題点と解決策を探る 測定に使用したPC 設置場所 核融合科学研究所 CPU Xeon 2GHz x 2 京都大学エネル ギー理工学研究所 Pentium 4 2GHz Memory 2GB 1GB NIC Intel Pro 1000 OS BROADCOM BCM5701 LASER5 Linux 7.2 Kernel 2.4.9 2.4.5 Turbo Linux 7 測定1(応答速度) 核融合研 京都大学 ECHO 10.5 ms ECHO TCP 核融合研 京都大学 セグメント ACK セグメント ACK 一セグメントのデータを受け取 るたびに受信側は送信側に ACKを返し、一定時間以内に ACKを受け取らなかった場合 はデータを再送する。このた め、応答時間が長いと、ACKを 受け取るまでの時間が長くな り、全体の送信頻度(速度)が 遅くなる。 UDP ACKでのパケット到達確認、輻輳のチェックを行 わない。 そのためTCPに比べ、信頼性に劣る。 しかしながら、余分なチェックを行わない分、 TCPに比べ高速。 測定結果2(UDPストリーム) 京大→核融合研 Socket Size Message (KB) Size(bytes) 64 64 Throughput (Mbps) 136 64 1024 629.26 64 1472 688.93 結果 京大→核融合研で700Mbps程度の速度が得ら れた。この速度は1Gbpsのネットワークとしては 妥当なものだと思われる。 スライディングウィンドウ 核融合研 京都大学 セグメント セグメント ACKが届く前に先 送りをする ACK ACK NetperfによるTCPストリーム測定 京大→核融合研 Route コマンドでTCPウィンドウサイズを16kBか ら256MBまで変えながら、NetperfのTCPスト リームの送信速度を測定した。 16KB 140.00 120.00 100.00 Mb p s 4KB 80.00 8KB 60.00 32KB 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 32KB 140.00 120.00 Mbps 100.00 4KB 80.00 8KB 32KB 60.00 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 64KB 140.00 120.00 100.00 Mbps 4KB 80.00 8KB 60.00 32KB 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 128KB 140.00 120.00 100.00 Mbps 4KB 80.00 8KB 60.00 32KB 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 256KB 150.00 130.00 110.00 Mbps 90.00 256K 4KB 70.00 256K 8KB 256K 32KB 50.00 30.00 10.00 -10.00 16KB 64KB 112KB ソケットバッファ 256KB 256KB 140.00 120.00 Mbps 100.00 256K 4KB 80.00 256K 8KB 256K 32KB 60.00 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 512KB 140.00 120.00 100.00 Mbps 4KB 80.00 8KB 60.00 32KB 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB Default 140.00 120.00 Mbps 100.00 4KB 8KB 32KB 80.00 60.00 40.00 20.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB Default 700.00 600.00 Mbps 500.00 4KB 8KB 32KB 400.00 300.00 200.00 100.00 0.00 512KB 1024KB ソケットバッファ 2048KB 参考(核融合研LAN) 900.00 800.00 700.00 Mbps 600.00 4KB 8KB 32KB 500.00 400.00 300.00 200.00 100.00 0.00 16KB 64KB 112KB ソケットバッファ 256KB 結果 Linuxの場合TCPウィンドウサイズを大きくとって も、デフォルト設定以上には上がらない。 しかしながら、ソケットバッファを大きく取ることで 速度の向上が見られた。 bbftp 独自プロトコル 暗号化、圧縮 特に巨大ファイル(>2GB)を送るのに最適化さ れている ビッグウィンドウ(RFC1323) 複数セッションを使って高速に転送できる 結果 速度 600 500 Mbps 400 300 Mbps 200 100 0 1 2 4 parallel 8 FTPの同時実行 プロセス1 プロセス2 プロセス3 プロセス4 FTPによる同時転送 Mbps 700 600 500 400 Mbps 300 200 100 0 1 2 4 8 プロセス数 16 20 FTPによる同時転送 Mbps 400 350 300 250 200 Mbps 150 100 50 0 1 2 4 8 16 プロセス数 20 32 64 結果 bbftpの転送では並列度を4に増やすことにより 最大500Mbpsまで高速化することができた。 ftpを複数実行させることにより、全体としての転 送速度を稼ぐことができる。ただし、デフォルトで は同時アクセス数に制限があるので、コンフィ ギュレーションを変更する必要がある。 UDP送信 Bittorrent→最終的に辻褄あわせをすればよい。 ファイルを64KB(-ヘッダ)のブロックに区切る ヘッダには番号をつけ、届いたブロックをマーク する。 マークされていないブロックは再送要求をする。 ブロックの消失率やパケットの滞留に応じてサー バ側のパケット送出間隔を調整する。 UDPによるファイル転送 送信側 再送要求 送信 送信 送信 受信側 パケット構造 シ ー ケ ン ス 番 号 送 信 時 刻 デ ー タ 応答メッセージ 送信要求(パケット番号) 送信開始要求(開始パケット番号) 送信間隔調整(50%早くする、50%遅くする等) 送信中止要求 まとめ SuperSINETではUDPで700Mbps程度の速度 が得られており、1Gbpsの帯域のネットワークで は妥当な数値だと思われる。 TCPベースのアプリケーションで速度が遅いの は原理上仕方がない (Linuxでは)TCPウィンドウサイズの変更は効果 がなかった ソケットバッファを大きく取ることで速度の向上が 可能 まとめ(続き) bbftpを利用し、複数ストリームで転送することで 速度の向上が可能 単純な方法として、FTPを同時に実行することに より、全体としてのスループットを向上させること ができる。 根本的な対策として、SuperSINETの特徴を活 かした転送プロトコルの開発が必要。