2009年4月16日木曜日

memo - MySQL で tcmalloc つかう

ネタとして古いのは否めない。
ちょうど一年前に関連するもの書いていたんだけど。

LD_PRELOAD でなくてビルド時にリンクさせる。

x86_64 な GNU/Linux でのみ試した。

- libunwind
http://ftp.twaren.net/Unix/NonGNU/libunwind/

- google-perftools
http://code.google.com/p/google-perftools/downloads/list

いずれも ./configure ; make ; make install なりなんなりで入れとく
必要なら ldconfig

(かったるいので、その後 libunwind, google-perftools 共に RPM つくった)

- MySQL
configure 時に
--with-mysqld-ldflags="-ltcmalloc" つける
個人的には --with-mysqld-ldflags="-ltcmalloc -lstatic" かな

いれたあとは ldd で見たり mysqld 起動して lsof してみたりする

ベンチをとるならやっぱり sysbench で。
「とりあえずこうやっとけ」という項目は気がむいたらまとめる。

追記:
なんか、「ruby tcmalloc」で見に来るひとがときどきいるみたいなので追記。
Ruby Enterprise Edition
は、ビルド時に(可能なら)tcmalloc を使うようにしてくれるっぽいよ。
tar玉展開して、 installer.rb をみればそれっぽいのがみてとれるよ。
source/distro 以下には google-perftools がある。
なので powered by tcmalloc な ruby を使うなら、これがいいんじゃないかな。

0 件のコメント:

コメントを投稿