本を読む

読書やコンピュータなどに関するメモ

第98回カーネル読書会を聞いてきた

 Linuxのカーネルよりの勉強会である「カーネル読書会」に参加してきました。今回のお題は「はてなでのハード性能の引出し方」です。自分には理解しきれていませんが、とても興味深く話を聴けました。以下、メモのまとめです。

田中慎司(id:stanaka)さんの発表

 …といいつつ、YAPC::Asiaとのはしごで、最初の30分ぐらいを聴きそびれました。聴いた部分からのメモです。

 サーバーとしては、安価なハードを使うポリシーで、自作PCサーバーとソフトで賄う方針だそうです。いわく、Googleのサーバーの方針に似てるんじゃないかとのこと。コスト面ももちろんあるわけですが、それとともに、ソフトやインフラ、パーツの進化に追従するというのも理由として大きいようです。ちなみに、PixivやCerevoをまじえて自作サーバーカンファレンスをやりたいと語ってました。

 最近では特に、仮想化を前提とした構成を選んでいて、多コアCPU、大量のメモリ(ECCなし)、RAIDなどの管理機能は最小限、RAIDなしまたはソフトウェアRAIDという方向とのことでした。OSはCentOS 5だそうです。

 これらのサーバーマシンは、消費電力とパフォーマンスの比が悪くなったら引退させていて、それがだいたい2年ぐらいだそうです。引退マシンのパーツは秋葉原で売りさばいている(さすがにHDDなどは除いて)というトリビアも話されました。

 メモリ容量はデータ量に合わせて用意するという話もありました。DBは極力メモリに乗せて、I/Oを最小限に抑えるとのこと。たとえば、最近はてなブックマークのDBが16GBのメモリではおさまらなくなってI/O readが増加したので、32GBに増設したところメモリにおさまるようになった、という事例も話されました。

 I/Oがらみでは、最近SSDを導入していい感じという話でした。オンメモリDBとの性能比較データを示しながら、データ量が増えてもI/O waitが悪化しないので、構成によってはハードコストをおさえられると考えているそうです。具体的には、検索ロボットのDBスレーブで使っている(マスターはHDD)とのこと。安物のSSDは半年で壊れたので、インテルのSSDにして満足しているけど、不安点としては、経験がなくて障害パターンが不明なことだそうです。

 ネットワークについても紹介されました。半年前は1サブネットのシンプルな構成にしていたが、L2スイッチのARPテーブルがあふれたのをきっかけに、3層構成にしたそうです。ただし、ルーターとして、これも自作PCサーバーでやっているそうです。WebやDBのサーバーよりちょっといいマザーボードで、ECCメモリを使い、NIC 2つで、IPMIポートつきだそうです。

muranet(id:halfrack)さんの発表

 田中さんのルーター話を受けて、ルーターマシンの限界性能評価実験について解説されました。2009年7月にはてなに就職したそうで(その前はアルバイト)、家にハーフラックがあるそうです。FreeBSDが好きと自己紹介していました(笑)

 カーネル読書会らしく、カーネルやデバイスに踏み込んだ話でした。会場には、Linuxカーネルのネットワークスタックのメンテナーさんなどもいて、議論が交わされました。

 背景としては、インバウンドが頭打ちになってるようだったので、限界性能を測ったということです。この頃のルーターは、サーバーマシンにNICを追加しただけのハードで、XenのDom-Uで動いていたそうで、Xenの件はmuranetさんも「聞いてぎょっとした」とのことでした。

 測定方法は、MTUを152に変更し、netperfを4つ(コア数ぶん)走らせ、ethtoolとsarで観測したとのこと。その結果、だいたい片道200kbpsぐらいが限界、Xenを使っているとその半分、という数字になったというのを、グラフで見せました。

 このあたり、OSのパラメータを変えてもあまり影響がなくて、NICを変えるとがらっと変わったそうです。ルーターがボトルネックになっているときは、CPUが100%にならない場合もあり、NICのほうでサチってたりするそうです。また、TCPの輻輳制御がかかるためパケットロスはほとんどなかったそうです。

 このとき、sarでみるとCPU0だけ割り込みが高かったりして、デバイスから割り込みがかかるとCPU0に行ってしまうという話がありました。これに対し、CentOSならirqbalanceがデフォルトで動いているのでは、という質問があり、実はirqbalanceを止めているという回答がありました。そこから発展し、WIDEで通信速度の世界記録を出したときにはむしろIRQ固定にしたというエピソードも紹介されて、もうちょっとがんばれる気がするというコメントがありました(いや、世界記録と比較されても…)。

 また、同じマシンでiptablesなパケットフィルタリングも動かしているとのことで、それが重い可能性もあるんじゃないかという意見もありました。しまいには、oprofileでデータを採ってカーネルメンテナーさんに送りつけるのはどうかという話にも発展しました。

 そのほか、測定するときに意外とクライアントがボトルネックになりやすい(ルーターはL3までの処理だがクライアントはL4まで)とか、netperfでパケットを小さくするのに苦労したとか、ethtoolの表示が信用できないような気がするとかいったTipsなども紹介されました。

感想

 はてなのインフラについては、いままでもいろいろなところで公表されているのですが、実は日々進化しているということで、チャレンジの様子を面白く聴けました。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/662-310bf1a0

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad