BLOG | システム監視・サーバ監視・障害監視・ネットワーク監視・システム運用・MySQL・Web地図を提供

BLOG エントリ一覧

主キーを検索条件とした一致検索のベンチマーク結果です。
READ PK POINT :主キーで一件検索
READ PK POINT

秒間25,000クエリ以上!」の検索性能を実現しています。また、同時実行数が増えてもほぼ性能劣化しておらず、コア数である2tread 同時実行までは性能がスケールしています。若干InnoDBのほうがMyISAMより性能が上回っていますが、InnoDBのクラスターIndex(クラスターIndexについては後述)の効果と想定されます。
※現時点では2コアサーバでしか検証できていませんが今後、よりコア数の多いサーバで検証していく予定です。

MySQL パフォーマンス検証として、弊社検証環境でベンチマークをとってみました。5.0系と5.1系、MyISAM、InnoDBをそれぞれ計測しています。 とりあえず今回は環境紹介で、各ベンチマーク結果は次回より。


■ベンチマーク環境

【サーバ環境】

  • Server  : DELL PowerEdge860 (1U)
  • CPU    : Intel(R) Xeon(R) CPU 3050 @ 2.13GHz 2cores
  • MEM    : 4G
  • DISK   : SEAGATE Model: ST373455SS (SAS,15000rpm,キャッシュ16M)
    ※ローカルディスク、NO RAIDで利用
  • OS   : CentOS5.2 x86_64 (Red Hat Enterprise Linux 互換OS)
  • カーネル : 2.6.18-92.el5 #1 SMP Tue Jun 10 18:51:06 EDT 2008
  • FileSystem : ext3 (LVM )

【テーブル定義】
CREATE TABLE IF NOT EXISTS normal(`id` int(10) unsigned NOT NULL auto_increment,`name` varchar(64) NOT NULL default ”,`email` varchar(64) NOT NULL default ”,`password` varchar(64) NOT NULL default ”,`dob` date default NULL,`address` varchar(128) NOT NULL default ”,`city` varchar(64) NOT NULL default ”,`state_id` tinyint(3) unsigned NOT NULL default ‘0′,`zip` varchar(8) NOT NULL default ”,`country_id` smallint(5) unsigned NOT NULL default ‘0′,PRIMARY KEY (`id`),UNIQUE KEY `email` (`email`),KEY `country_id` (`country_id`,`state_id`,`city`)) ENGINE=innoDB; もしくは MyISAM;

※ENGINE(ストレージエンジン)はInnoDBとMyISAMの2種類で計測

 

【MySQL バージョン】

 MySQL Enterprise Server 5.0.79 SP1 x86_64-glibc23
 MySQL Enterprise Server 5.1.30 x86_64-glibc23

上記 2バージョンで計測

 

【MySQL 初期化パラメータ】 ※一部抜粋
skip-locking
key_buffer = 1250M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 64
query_cache_size = 128M
query_cache_type = 0 (OFF)
thread_concurrency = 4
max_connections=1500
net_read_timeout=30
net_write_timeout=30
back_log=128
innodb_buffer_pool_size = 1250M
innodb_additional_mem_pool_size = 50M
innodb_log_buffer_size = 4M
innodb_thread_concurrency=8
sync_binlog=1

【計測方法】

  • 100万件が登録されたテーブルに対して、1分間のアイドリング検索を実施後、1分間×3回のクエリ数計測を実施し、その平均値を取得した。
  • 同時実行数(Concurrent Threads)別に計測を実施。複数同時実行の値は、それぞれThreadで実行したクエリの合計値となる。
  • ベンチマークプログラムはPHP製。MySQLクライアントは、PHPのmysqliエクステンションを利用。
  • 純粋なクエリ実行数の計測であり、DBサーバへの接続コストは含まれていない。

弊社では、JP1で障害監視を行うことも多いのですが、JP1から出力するテキストデータはコンピュータには優しくても人間に優しくないフォーマットなので、変換ツールを作ろうかと考えています。


しかし、その前にJP1に出てくる標準のリソースIDが、いったい何を示しているのか分からないといけません。

そこで、「付録C.1 JP1/PFM/SSOで収集できるリソース」からリソースIDと何のリソースかを紐づけるとyamlファイルを作ってみました。



何をしているか分かる人だけ自己責任で使ってください。(ファイルは、SJISです)

JP1のリソースIDファイル


そういや、「redmineを動かそう」が、その2で止まってますね。そのうち書きますので、そちらもよろしく!



前回は、「明日は、mod_railsことpassengerをインストールしてみます。」とか書いたのですが、mod_railsを入れるためには、gemが入っていないといけませんでした。

今日は、まず、それをインストールしたいと思います。

前回同様fedora developからsrc.rpmを取ってきましょう。


$ cd src/ruby/
$ wget http://ftp.iij.ad.jp/pub/linux/fedora/development/source/
SRPMS/rubygems-1.2.0-2.fc10.src.rpm

rpmbuildでリビルドします。

$ rpmbuild --rebuild ./rubygems-1.2.0-2.fc10.src.rpm

/usr/src/redhat/noarch/辺りにrpmファイルができているはずです。

$ ls /usr/src/redhat/RPMS/noarch/
rubygems-1.2.0-2.noarch.rpm

OKそうですのでインストールしましょう。

su - rpm -ivh /usr/src/redhat/RPMS/noarch/rubygems-1.2.0-2.noarch.rpm

入ったかどうか確認しましょう。gemコマンドを使ってみると分かります。

$ gem list
*** LOCAL GEMS ***

では、本題のmod_railsをインストールしましょう。
# gem install passenger
Building native extensions. This could take a while...
Successfully installed passenger-2.0.3
1 gem installed
Installing ri documentation for passenger-2.0.3...
Installing RDoc documentation for passenger-2.0.3...
# gem list

*** LOCAL GEMS ***

passenger (2.0.3)

今日はここまでとします。
次回は、mod_railsをビルドします。

課題管理ツールって必要だと思います。
開発で使っているそうなので、インフラでも入れてみようと思います。

必要なもの
・ruby
・MySQL
・gem
・rails
・その他

インストールする環境
・CentOS 4.6

ま、とりあえずrubyから入れてみましょう。CentOSにデフォルトで入っているrubyは古いので入れ直しましょう。
rpmで管理できると便利ですね。ソースで管理すると面倒なので。

適当なrpmがありませんね。fedoraのdevelopmentから取ってきましょう。

http://ftp.iij.ad.jp/pub/linux/fedora/development/source/SRPMS/ruby-1.8.6.287-1.fc10.src.rpm

にしましょう。

wgetでダウンロードして、以下のコマンドでrpmバイナリファイルを作ります。
rpmbuild –rebuild ruby-1.8.6.287-1.fc10.src.rpm
エラー: Failed build dependencies:
libX11-devel is needed by ruby-1.8.6.287-1.i386
おお、CentOSには、libX11はありませんね。このrubyからはX(Tkなど)を使わないことにしてdepから削除しましょう。

コンパイルできたようです。
rpm -ivh /usr/src/redhat/RPMS/i386/ruby-*
でインストールします。

$ ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-linux]
$ irb
irb(main):001:0> print 1+1
2=> nil

問題ないようですね。

今日はここまで。

明日は、mod_railsことpassengerをインストールしてみます。