2008-05-21
■ Q4M - とりあえず pwrite を複数スレッドから呼ぶようにしてみた
とりあえず pwrite を複数スレッドから呼ぶようにしてみた。でもってベンチとろうとしたら perl のテストコードじゃサチってどうしようもなくなっていたので C で書いた。
$ MESSAGES=400000 CONCURRENCY=40 DBI='dbi:mysql:test;mysql_socket=/tmp/mysql51.sock' t/05-multireader.t
1..4
ok 1
ok 2
ok 3
ok 4
Multireader benchmark result:
Number of messages: 400000
Number of readers: 40
Elapsed: 20.282 seconds
Throughput: 19721.561 mess./sec.
その間の top はこんな感じ。並走度 2.5 あたりが現在の上限らしい (クライアント数を 40 から 80 に変更してもアイドルが発生する) 。次はやっぱ mmap なんでしょうなぁ。
top - 12:20:02 up 40 days, 19:49, 3 users, load average: 5.85, 2.64, 1.25 Tasks: 192 total, 4 running, 188 sleeping, 0 stopped, 0 zombie Cpu(s): 44.4%us, 32.6%sy, 0.0%ni, 20.5%id, 2.0%wa, 0.0%hi, 0.5%si, 0.0%st Mem: 32967696k total, 32433632k used, 534064k free, 458044k buffers Swap: 10485752k total, 0k used, 10485752k free, 27667516k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 17786 kazuho 18 0 369m 27m 4960 S 259 0.1 7:58.66 mysqld 21515 kazuho 15 0 19240 1504 1168 S 2 0.0 0:00.16 05-multireader- 21536 kazuho 15 0 19244 1504 1168 S 2 0.0 0:00.14 05-multireader- 21538 kazuho 15 0 19244 1508 1168 S 2 0.0 0:00.17 05-multireader- 21586 kazuho 15 0 19240 1504 1168 S 2 0.0 0:00.17 05-multireader- 21513 kazuho 15 0 19244 1504 1168 S 1 0.0 0:00.15 05-multireader- 21514 kazuho 15 0 19244 1508 1168 S 1 0.0 0:00.13 05-multireader- 21516 kazuho 15 0 19244 1508 1168 R 1 0.0 0:00.15 05-multireader- 21517 kazuho 15 0 19244 1504 1168 S 1 0.0 0:00.15 05-multireader- 21520 kazuho 15 0 19244 1508 1168 S 1 0.0 0:00.16 05-multireader- 21530 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.15 05-multireader- 21531 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.15 05-multireader- 21539 kazuho 15 0 19244 1500 1168 S 1 0.0 0:00.15 05-multireader- 21543 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.17 05-multireader- 21544 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.17 05-multireader- 21549 kazuho 15 0 19244 1504 1168 R 1 0.0 0:00.15 05-multireader- 21550 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.15 05-multireader- 21552 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.16 05-multireader- 21553 kazuho 15 0 19244 1508 1168 S 1 0.0 0:00.16 05-multireader- 21563 kazuho 15 0 19240 1500 1168 S 1 0.0 0:00.14 05-multireader- 21565 kazuho 15 0 19244 1504 1168 S 1 0.0 0:00.16 05-multireader- 21571 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.16 05-multireader- 21579 kazuho 15 0 19244 1504 1168 S 1 0.0 0:00.14 05-multireader- 21580 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.15 05-multireader- 21581 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.15 05-multireader- 21588 kazuho 15 0 19240 1504 1168 S 1 0.0 0:00.16 05-multireader- 21589 kazuho 15 0 19240 1500 1168 S 1 0.0 0:00.14 05-multireader-
13:07追記: むー、どうも pwrite の直列化が律速じゃなかったみたい。結局 --with-mt-pwrite=no してもほとんど変わらない速度が出る。ちなみに --with-sync=no して fsync やめると 30,000 transaction/sec. 近い値が出る。
トラックバック - http://d.hatena.ne.jp/kazuhooku/20080521/1211340322
リンク元
- 8 http://reader.livedoor.com/reader/
- 5 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=get_multi&num=50
- 4 http://www.google.co.jp/search?q="internal+dummy+connection"+Apache&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 3 http://labs.cybozu.co.jp/blog/kazuhoatwork/2008/05/maximum_peformance_of_mysql_an.php
- 3 http://twitter.com/home
- 3 http://www.google.co.jp/search?q=グループコミット&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP211JP249
- 3 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBF_jaJP230JP231&q=mysql+ 通信速度
- 3 http://www.google.com/reader/view/
- 2 http://59.106.108.77/kazuhooku/20080324
- 2 http://a.hatena.ne.jp/xtal_0617/
