もっと詳しい方のフォロー募集です アプリケーションがマルチスレッドになってもネットワーク処理が分散されなければマルチコアを活かせない典型的な例です。id:viverの古橋さんがs100kpsとしてあげていた件にも近いかも。 memcachedで現象を確認します。最近のmemcachedはマルチスレッドで動くようになっているので、まずはそれを確認します。 $ memcached-tool localhost stats|grep threads threads 4 スレッドが4つで起動しています。 負荷がそ... > このページを見る
最終更新時間:
2010年01月29日17時38分
みんなのブックマーク 人気(0) 新着
- ダメな例のチップセット(割り込みまわり?)が古いのが原因という可能性も
- top 1
- 「ネットワークの割り込み処理を複数のCPUに分散する。NICのRX/TX Multiple Queue」
- 割り込み処理のCPU分散について。
- これ非対応だと駄目らしい『マルチコアCPUの性能を活かすために考えられることは、ネットワークの割り込み処理を複数のCPUに分散することだと思うのですが、最新のNICにはRX/TX Multiple Queue~機能が備わっています。』
- アプリがマルチスレッドになってもネットワーク処理が分散されなければマルチコアを活かせない典型的な例、という話。CPU-OS-プログラムのトータルで並列処理への対応度が高くないと、必ずどこかがボトルネックに
- 「複数のCPUに分散できない処理がボトルネックになってくるので、最新のハードウェアとか対応しているカーネルを利用しよう」
- 「memcachedの通信は主にeth1で行われるのですが、このeth1に関する割り込み処理がCPU1でしか行われていません。」
- "memcachedの通信は主にeth1で行われるのですが、このeth1に関する割り込み処理がCPU1でしか行われていません。ソフトウェア割り込みはハードウェア割り込みが行われたCPUでしか行われないのもこの傾向を強めます。"
- NICの選びかたは数値だけじゃダメなんだな→「マルチコアCPUの性能を活かすために考えられることは、ネットワークの割り込み処理を複数のCPUに分散すること」
- Oracleで同じ挙動見たことあります。Dunnington 6コア×4プロセッサのサーバ / Multiqueue Networking。David S. Millerのスライド参照 http://linuxplumbersconf.org/2009/program/
-
Blog書いた
- 最新のNIC(Broadcom BCM5709)にはRX/TX Multiple Queue(正式名称がわからない。Receive Side ScalingとかScalable I/O?)機能が備わっているらしい。
- nic の割り込み処理が CPU コアを占有してしまうという…
- irqbalance がオンでこうだとすると、naoyaさんが以前書いてたのと同じで CPU 負荷が低いうちは特定の CPU に割り振ってるだけ、とかだったりして / だとしてもキューがひとつだと限界値がコアあたりの性能になるのはかわらな
-
こういうの、OpenBSDでも出来ると良いんだけどなぁ…当分むりぽ。RT @frsyuki: ぉぉBCM5709 だと分散する!ハードウェアの問題だったのかな #s100kps RT @kazeburo: Blog書いた








