MIRACLE
メールサービス申込 ユーザー登録 パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

プロフィール

吉岡 弘隆 - よしおか ひろたか

日本OSS推進フォーラム ステアリングコミッティ委員
OSDL Board of Directorsを歴任
カーネル読書会主宰

2000年6月、ミラクル・リナックスの創業に参加。
95年~98年、米国OracleにてOracle RDBMSの開発をおこなっていた。
98年にNetscapeのソースコード公開(Mozilla)に衝撃をうけ、オープンソースの世界に飛びこみ、ついには会社も立ち上げてしまう。
2008年6月取締役CTOを退任し一プログラマとなった。

ミラクル関連リンク

なかのひと

サイト検索

2010年8月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

« 企業発OSSのコミュニティアライアンス戦略 | メイン | YAPC::Asia 2007 »

MySQLのマルチコアスケーラビリティとLinux

スラッシュドットの情報。FreeBSDとLinuxでsysbench(MySQLを利用している)の結果が出ている。結論から言うと8コアのAMD64のマシンでスレッド数を上げていくと8スレッドまではLinuxでの性能が良かったが、それ以上になるとがたっと性能が劣化して、FreeBSDのSMPngの実装が勝つ。

下記を参照してほしい。
http://jeffr-tech.livejournal.com/6268.html

MySQL 5.0.2xではSMPスケーラビリティに問題があることは、われわれの性能評価でもあきらかになっていたが、(例:MySQLに対応した評価ツールDBT-1を利用したハードリソース変更によるパフォーマンスへの影響の考察を参照)、OSのSMPスケーラビリティ問題というよりMySQLの実装上の問題だと考えていた。

linux 2.6.18/2.6.20.1上でMySQL 5.0.27(これはスケーラビリティ上の問題が顕著)と5.0.33(スケーラビリティの問題を若干解決した)を評価したグラフを見ると、あきらかにFreeBSD-ULEの実装と比較して、linuxはスケーラビリティの問題がある。スレッド数がコア数(8)を越えたあたりから性能が急激に劣化する。

Linux Kernel Mailing Listでも早速話題になっていて、(http://www.ussg.iu.edu/hypermail/linux/kernel/0702.3/0299.htmlからのスレッドを参照)、Linuxのスケジューラの問題という認識になりつつある。

特に、SMT(IntelのHyperthread)やMC(Multicore)用のスケジューラが悪さをしていそうである。http://www.ussg.iu.edu/hypermail/linux/kernel/0702.3/1142.html

CONFIG_SCHED_SMTとCONFIG_SCHED_MCをオフにした結果が下記に出ている。
http://www.ussg.iu.edu/hypermail/linux/kernel/0702.3/1133.html

http://www.ussg.iu.edu/hypermail/linux/kernel/0702.3/1133/transactions.png

若干現象が良くなっているが抜本的な解決にはなっていない。

MySQLで発見された現象が正しく理解されれば、遠くない将来に問題は解決されるだろう。

いろいろな人がいろいろな評価をしたり、知恵を出したり、コメントしたり、バザールモデルの醍醐味である。

トラックバック

このページのトラックバックURL:
http://www.typepad.jp/t/trackback/4447/6822511

このページへのトラックバック一覧 MySQLのマルチコアスケーラビリティとLinux:

コメント

そういえば勉強会のときにOSによる影響の話をしていましたね。

スレッドライブラリの実装の影響はないんでしょうか? 何種類かあるようですが。http://lss.eternity.ne.jp/new/class.php?780

shigeonsdさん、あのときは、OSのpthread実装がしょぼいからじゃないかとか、なんだとか話していたかと思うのですが、当時のわたしの立場は2.6になって随分解決したので、MySQLがいかんという感じでした。
OSでの比較でこれだけ顕著にでるとやはりいたいですね。

fumiyasさん、コメントありがとうございます。
ライブラリの実装の差もあるかと思います。(FreeBSDは何を使っているのだろう)
今回の件に限って言うと、
http://www.ussg.iu.edu/hypermail/linux/kernel/0702.3/0751.html
でRik van Riel が指摘しているように、コア数よりスレッド数が多くなるとidleが増えるというのが問題のようです。
つーことは、コア数に依存した、innodb_thread_concurrencyを定義すればいいのかもしれないですね。

http://tweakers.net/reviews/649/9
というのをスラドで教えてもらいました。SolarisとLinuxの比較です。

http://ozlabs.org/~anton/linux/sysbench/
glibc mallocがスケールしないという話に落ち着きそうである。

Hi. This is really interesting post. Thank You! I have just subscribed to Your rss!

Best regards

コメントを投稿

会社情報 採用情報 個人情報保護方針 商標等取り扱い事項 English
Copyright(c)2000-2006 MIRACLE LINUX CORPORATION. All Rights Reserved.