VyOS向け低レイテンシーチューニングTips

すっかり冬模様になりましたね。
雪遊びの準備が全然できてないので、早く仕事を落ち着かせたい今日この頃です。

2015年はKauliが買収されたり、ご自慢のVOYAGEオフィスから締め出されたり、その後転職といろいろありました。
来年は落ち着いた一年になることを心から願っています。

さて久々に糞エントリーを書くのとadvent calendarということもあり、ふわっとゆるい内容でいきたいと思います。

VyOS向けとありますが、VyOS自体DebianなのでLinux全般で使えるTipsです。
低遅延になって何がうれしいかというと、VoIPで音声通話がよりリアルタイムになったり、ネットゲームで有利になったり、VyOSで超高速取引をしてる個人投資家が有利になるとかいい事尽くめです(?)

本来の目的は10Gbps 64byteのショートパケットで、ワイヤレートをだすLVSを作る予定だったんですが、VOYAGEの経営陣に取り潰されたネタです。

チューニングすべき箇所はキューやバッファですが、それぞれネットワークスタックやデバイスコンポーネントの一部として構成されています。
それらのデフォルトの設定はスループット向上や、CPU負荷低減などシステムや回線の利用効率向上に一役かっています。
しかし逆に何をしてもいいから1ナノセックでも早くパケットを処理し送り出したい、そんな要求も世の中にはあります。
今回はそんな人むけです。
なおソケットなどユーザランドは考慮しません。
あくまでルータとしてNICとカーネルまでです。

リングバッファを少なくする

リングバッファはCPUがオンデマンドで処理できない時のために、バッファ領域としてごく小さいメモリ空間として存在しています。
理想はないほうがいいし、あったとしてもメモリ空間なのでレイテンシを気にする場合は効率的に使う必要があります。
リングバッファサイズを小さくすることでヘッドポインタとテールポインタを追跡する処理やガベージコレクトのロスを減らすことができます。
レイテンシを目的とするなら最小値に設定しましょう。

RSSのキューイング先(CPUコア)を固定する

CPUのキャッシュが効率的に使えます。
ntupleとFlow Directorによって、通信条件を指定してRSSのキューイング先を指定できます。

NICのInterrupt Coalescingを無効にする

過大なCPU割り込みを軽減するために、NICはパケットを受信してもすぐ割り込みを発生させません。
特定のパケット数がたまるまで待つ設定がデフォルトでされています。
オフにすればオンデマンドで割り込みが発生し遅延しません。
ただしバーストトラフィックには注意してください。
バースト分がCPUに直撃します。

EISTとC-STATEをオフにする

CPUクロックの変化がレイテンシに悪影響を与えるため、EISTと各C-STATEをすべて無効にします。

・PCIe Link State Power Managementをオフにする

CPU同様にPCI Expressも全力で稼動させます。

NICオフロードについては未調査のため今回はスルーします。
では皆様よいお年を!
(このやっつけ感)

近状とか

ご無沙汰しています。
やっと新しい職場に入ってから3ヶ月がたって、試用期間も終わったところですが、社内のみんなそんなこと信じてくれないか忘れるくらいなじんでます。

普段あまり話さない人から、最近ブログ更新ないし何してるの?って言われたので、いい機会だから近状とかざっくり。

買収直後の辞める面談の時にVGの新経営陣から話だけはされましたが、職歴が汚れるのでVGには転籍せずにKauli所属のまま8月いっぱい有給を消化して辞めました。
引継ぎもあるし年内くらいは居た方がいいかなと思っていたんですが、新経営陣が早く追い出したがってたのでさくっとほっぽりなげて辞めました。
年内でKauliがなくなるから失業したくなければVGに移れ拾ってやる、みたいな物言いだったけど、次の行き先決まってたし。

9月からうってかわって、某ITソリューションプロバイダー()のアカウントSEに転生しました。
生まれてはじめてスーツきて仕事してます。
仕事が集まってきて大変だけど、職場の雰囲気もいいし、無理難題だらけで課題も尽きないので毎日楽しく(?)仕事してます。
むしろVGの騒いでるだけの連中みたいに仕事に派手さを求めない自分にとっては、タダ酒とかゲームできるとかどうてもよくて、落ち着いてて馬鹿が視界に入らない環境のほうが重要ですね。
一度挫折を経験するまでは、とにかく今の職場でがんばろうと思います。

そんなわけで、なにかお困り事ありましたら、こんな最低な自分が直接ご提案にいくことができるようになりました。
ちょっととがったご提案を欲してるときは、自分に声かけてください。
野良不良SEがなんか考えてもっていきます。(ひやかしはやめてね!)

というわけで復帰ついでにSE●LとGI●チームに喧嘩を売るような内容になっちゃうけどVyOSのadvent calendarネタ書かせてもらおうと思います。