AWS Summit Tokyo 2016メモ【The State of The Art - AWS / EC2 Networking (同時通訳)】
AWS Summit Tokyo 2016に参加した。
下記セッションに参加したので、参加メモを書いておく。
※正確な情報・見解は後日公開される(であろう)登壇者のスライドや公式資料等を参照のこと。
www.awssummit.tokyo
The State of The Art - AWS / EC2 Networking (同時通訳)]
Kevin Miller (Director, Software Development, EC2 Networking, Amazon Web Services, Inc.)
【概要】
EC2における、LinuxカーネルレベルでのTCPネットワークパラメータチューニングの話。
AWS,EC2に拘った内容というよりは、Linux全般でのTCPチューニングの話だった。
とにかく話が早くあっという間に終わった。
【内容】
①TCPの性能
・TCPはSSH、HTTP等のベースプロトコルであり、送信側と受信側それぞれが互いに接続しあう。
・TCPの特徴として、異なる大きさの送信/受信ウィンドウを持つ。
・輻輳制御ウィンドウ:送信側が制御する。輻輳制御アルゴリズムで制御する。
・パケットの損失(パケットロス)がスループットに与える影響について触れていた。
TCPの統計値取得 :netstat -s | grep retransit
ソケットレベルの診断:ss -ite
・パケットの再送状況をリアルタイムに取得できるコマンドがgithub上にあるとのこと。詳しくは下記を参照。
github.com
・Linuxの輻輳制御アルゴリズム
1.BIC (Linux2.6.6~2.6.18)
2.CUBIC(Linux2.6.19以降)
→TCP Renoに代わるアルゴリズム。
・再送タイマー
パケットロスした、とみなす時間の設定。
短すぎると:過剰反応してしまい、パフォーマンスが落ちる。
長すぎると:パケットロスの検知が遅れ、パフォーマンスが落ちる。
デフォルトは200ミリ秒。
・ip route list
AWSの場合、サブネット内の他のインスタンスへルーティングしている場合があるので、そこの再送時間の設定を変える。(例えば10ミリ秒にする等)
・ネットワークパスのチューニング
パス上のルータにネットワークバッファがある。
→NWへの負荷が高まると、再送が多くなり、結果としてタイムアウトを引き起こす原因となる。
・ネットワークバッファのアクティブキュー管理
→tc qdisc list
・fq_codel
→チューニングが不要な、qdiscのアルゴリズム。
・EC2拡張NW機能
EC2で提供するAmazonLinux,Windows(WindowsServer?)に組み込まれたドライバにて利用することができる。詳しくは下記を参照。
www.youtube.com
・MTU
Maximum Transmission Unit (MTU)は、ネットワークにおいて1回の転送(1フレーム)で送信できるデータの最大値を示す伝送単位のこと。
Maximum Transmission Unit - Wikipedia
多くのドライバは1500バイトを設定することができる。しかし上記の「EC2拡張NW機能」のドライバを使うと9000バイトまで設定することができる。よってオーバヘッドを減らすことができる。
→MTUの設定値は「ip route list」から確認することができる。
②応用
実際に上記で取り上げた要素を使って、測定を行った結果を紹介していた。