オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

10Gイーサーを実際に使ってみた

»

今日は、ある共同開発案件の動作検証で、10Gイーサーネットを使ってみました。イーサーネットでは、当初は10Mbpsから始まり、100Mbps、1Gbpsと進化してきましたが、10Gbpsはいまだになかなか身近に感じられないものです。そもそも、1Gbpsで一般的な使い方では十分高速なのと、クライアントは無線LANを使うケースが増えたという背景があると思います。インターネットアクセス回線が一般的にユーザレベルで100Mbps以下でしょうから、1Gbpsでも、ローカルネットワークでファイル共有をしたりするくらいでしか、スピードを実感する機会は少ないと思います。10Mから100Mになったときには感動するほど速いと感じたのですが、それ以上は一般的な使い方だとそれほど実感できない感じですね。

さて、そんな中、10Gなど何に使うのだ?と思うところですが、プロバイダなどの、インターネットのトラフィックが集中するところでは、10Gどころか、100Gクラスの流量が流れているのだそうです。今のところ10Gが実用できる一番太い回線ですので、それを束ねて処理する感じです。ということで、実際には我々のアクセスしている通信もそういうところを通っているのですが、ダイレクトに10Gにつないでみる機会というのはなかなか無いもので、そもそも、いまだに10Gのネットワークインターフェースやスイッチはとても高いのです。

今までも、10Gのインターフェースを持つサーバ機などは何度も触っていますが、実際に10G同士を接続して、自分一人で通信してみるのは今回が初めてでした。ネットワークインフラ屋さんから「なにを今さら」と言われそうですが、ソフト屋さんは、なかなかそういう環境を直に触る機会は無いものでして。。

I1

まずは、2つのブレードサーバを、直接接続するイメージでスループットを見てみました。10Gと言えども、実際は3Gくらいだよ、と聞いたりしたことがあったのですが、7Gくらいは出るみたいです。

さて、私が開発したプログラムを通してみたら・・・1.1Gくらいしか出ません。。うーん・・・。プロファイラでどの処理が影響大かを見てみると、TCPのチェックサム計算です。まあ、全データをなめますからねぇ。最近はTCPオフロードが当たり前になってきましたが、パケットを直接プログラムで書き換えるようなシステムなので、ドライバを細工するか、自前で何とかするしかないです。まあ、遅い原因が分かれば対策は考えられるので、何とかなるでしょう。。

いやー、ネットワークって楽しいですねぇ!

Comment(7)