MySQLチューニングメモ

MySQL5.5 で標準でロードされているlibtcmalloc_minimal.so
巷ではmallocが高速になるとよく聞くライブラリだが、必ずしも早くなるとは限らない

とあるWEBシステムで負荷試験を実施したときの結果

libtcmalloc_minimal.soロード時      600 req/sec
libtcmalloc_minimal.soロードしてないとき 1000 req/sec

なんと400req/secも性能が向上!
何となくロードせずに、キチンと負荷試験で性能比較してみましょう



※性能比較してみたところmallocするだけならtcmallocのほうが早いことが多いみたい

■シングルスレッドで1000万回ループ
mallocライブラリ mallocサイズ 時間
glibc         256k     0.500000sec
glibc         32m     0.460000sec
glibc         1g     58.240000sec
tcmalloc     256k     3.600000sec
tcmalloc     32m     0.570000sec
tcmalloc     1g     9.000000sec



■マルチスレッドで1000万回ループ
mallocライブラリ スレッド数 mallocサイズ 時間
glibc         10     256k     11.52205000sec
glibc         10     32m     230.435344000sec
glibc         10     1g     308.187514000sec
tcmalloc     10     256k     3.309323000sec
tcmalloc     10     32m     2.3805868296sec
tcmalloc     10     1g     16.4271991296sec

glibc         20     256k     13.696045000sec
glibc         20     32m     224.3522635296sec
glibc         20     1g     309.689440000sec
tcmalloc     20     256k     3.3786762296sec
tcmalloc     20     32m     1.485455000sec
tcmalloc     20     1g     17.3883842296sec