MySQLを32bitのOSで使うときのメモリの制限
だいたいの32bitのOSでは、4GBまでがダイレクトに使えるメモリの上限量であることはご存知の方が多いと思います。
※このあたりの表現については詳しくないんで突っ込まないでください^^;
さて、MySQLを32bitのOSで使うときのメモリの制限ですが、結論から言うと「2GB」が上限です。
「え?4GBまで使えるんじゃないの?」と思った方、残念。me too, orz
MySQL側で制限されてるようなので、ソースをいじくれば解除できるのかもしれませんが、
7/23追記 32bit/Linuxのglibcの問題でした。Sol10では関係ないかも・・・調査中
参考:MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.3 InnoDB の構成
それよりは64bitのOSに乗り換えたほうがいいのではないかと、個人的には思います。
メモリ割り当ての指標に関しては、KLabさんのblogが非常に参考になります。いつもお世話になります。m(__)m
参考:5分でできる、MySQLのメモリ関係のチューニング!
利用環境によって色々とあるとは思いますが、とりあえず私の設定値。
- Linux CentOS5 32bit Mem4GB
- MyISAMとInnodbを両方とも使いますがメインはInnodb
- 他にも多少は割り当てたいので少し余らす
- MyISAMはインデックスがkey_bufferにのり、データファイルはOSのキャッシュにのるので注意
- mymemcheckがすんばらしい :-)
global_buffers key_buffer_size 67108864 64.000 [M] innodb_buffer_pool_size 805306368 768.000 [M] innodb_log_buffer_size 8388608 8.000 [M] innodb_additional_mem_pool_size 16777216 16.000 [M] net_buffer_length 16384 16.000 [K] thread_buffers sort_buffer_size 4194304 2.000 [M] myisam_sort_buffer_size 16777216 2.000 [M] read_buffer_size 2097152 2.000 [M] join_buffer_size 1048576 1024.000 [K] read_rnd_buffer_size 4194304 4.000 [M] max_connections 100