棚からパルチャギ

日々の雑記、ニュース拾いとか

2008. 12. 14

MacBookにQ4Mをインストールしたメモ書きの補足
make test について省略したので追記。
というか長くなったので別エントリにしてみた。DBD::mysql入れるのが面倒だった。。。
$ sudo cpan cpan> install Data::Compare cpan> install DBD::mysql
DBD::mysqlのビルドは失敗するので、LeopardにMySQLとDBD::mysqlを入れる方法を参考にmakeしなおす。
$ sudo ln -s /opt/local/lib/mysql5/bin/mysql_config /usr/local/bin/mysql_config $ sudo su - # cd /var/root/.cpan # cd build/DBD-mysql-XXXXXXXX # perl Makefile.PL \ --cflags=-I/opt/local/include/mysql5/mysql \ --libs="-L/opt/local/lib -L/opt/local/lib/mysql5/mysql -lmysqlclient -L/opt/local/lib -lz -lm -L/opt/local/lib -lssl -lcrypto" # make # make install
自分の環境だけかもしれないけど、/opt/local/bin/perl と /usr/local/bin/perl がどちらも入っていて後者だと@INCが違うところを参照してしまうので、テストスクリプトのperlパスを修正する。
$ cd /usr/local/src/q4m-0.8.3 $ vi run_tests.pl - #!/usr/local/bin/perl + #!/opt/local/bin/perl
make test する。
$ DBI='dbi:mysql:database=test;host=localhost' \ DBI_USER='username' \ DBI_PASSWORD='password' \ MYSQL_UNIX_PORT=/opt/local/var/run/mysql5/mysqld.sock \ make test ... Multireader benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 25.878 seconds Throughput: 247.315 mess./sec. ... Multi-reader-writer benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 43.944 seconds Throughput: 145.641 mess./sec. ... Multi-reader-writer benchmark result under semi-starvation: Number of messages: 6400 Number of readers: 32 Elapsed: 96.602 seconds Throughput: 66.251 mess./sec. ... All tests successful. Files=17, Tests=68921, 2240 wallclock secs (20.83 usr 2.26 sys + 150.25 cusr 22.16 csys = 195.50 CPU) Result: PASS
ちなみに、上のは--with-sync=fcntlの場合のベンチマーク(Cure2Duo 2.1GHz/Mem 4GB)。
--with-sync=fsyncにした場合はこんな感じ↓
... Multireader benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 1.725 seconds Throughput: 3711.007 mess./sec. ... Multi-reader-writer benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 2.724 seconds Throughput: 2349.228 mess./sec. ... Multi-reader-writer benchmark result under semi-starvation: Number of messages: 6400 Number of readers: 32 Elapsed: 3.445 seconds Throughput: 1857.784 mess./sec. ... All tests successful. Files=17, Tests=68921, 289 wallclock secs (17.33 usr 2.06 sys + 144.66 cusr 20.77 csys = 184.82 CPU)
10倍以上速いよ!! この辺の話なのかな。
試験環境なのでデータ飛んでも困らないし、当面はfsyncのままでいいような気がする。