インストール
CPANから必要なモジュールをインストールします。
# cpan install Readonly
# cpan install UNIVERSAL::require
モジュールが不足していると、実行時に次のようなエラーメッセージが出力されます。
$ bin/mymemcheck /etc/my.cnf
Can't locate Readonly.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at bin/mymemcheck line 7.
BEGIN failed--compilation aborted at bin/mymemcheck line 7.
mymemcheck自体はPerlのスクリプトです。適当なディレクトリに置いて実行します。
$ cd ~/bin
$ wget http://log.blog.klab.org/support/20061226/mymemcheck.gz
$ gunzip mymemcheck.gz
実行
引数にmy.cnfへのパスを渡します。
$ mymemcheck /etc/my.cnf
my.cnfの設定項目が不足していると、次のようなエラーメッセージが出力されます。
$ mymemcheck /etc/my.cnf
[ABORT] missing variables:
sort_buffer_size
net_buffer_length
key_buffer_size
innodb_additional_mem_pool_size
innodb_log_files_in_group
my.cnfに問題がなければ、実行結果は3つのチェック内容に分かれて表示されます。それぞれがタイトル
・システム変数と式
・結果
から成ります。
最低限必要な物理メモリの大きさ
[ minimal memory ]
...
min_memory_needed = global_buffers + (thread_buffers * max_connections)
= 12968804352 + 5505024 * 2000
= 23978852352 (22.332 [G])
[ 32bit Linux x86 limitation ]
...
2G > 20.309 [G] ... LIMIT OVER!!
innodb_log_file_sizeの最大サイズ
[ maximum size of innodb_log_file_size ]
...
innodb_log_file_size < MAX_innodb_log_file_size
134217728 < 6442450944
128.000 [M] < 6.000 [G] ... safe