MySQLの必要なメモリ量は?
MySQLが必要とするメモリ量は?だいたいどれくらいなのでしょうか?
今回は、簡単な計算式から、それを探ってみたいと思います。
MySQLが必要とするメモリ量の計算式のいろいろ
その計算式は、いろいろなところから、大きく2つあるようです。(いずれもそれほど大きく違いはありませんが。)
必要なメモリ量(4.1のリファレンスによる)=
innodb_buffer_pool_size + key_buffer_size +max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
必要メモリ量=グローバルバッファのサイズ+(各スレッドのバッファサイズの合計 × 最大接続数(max_connections))
各スレッドのバッファサイズの合計とは、以下の値の合計値です。
- sort_buffer_size
- myisam_sort_buffer_size
- read_buffer_size
- join_buffer_size
- read_rnd_buffer_size
グローバルバッファのサイズは、以下の値の合計値です。
- key_buffer_size
- innodb_buffer_pool_size
- innodb_log_buffer_size
- innodb_additional_mem_pool_size
- net_buffer_length
※実践ハイパフォーマンスMySQL による
MySQLが必要とするメモリ量を計算してみる
後者のバッファのサイズを使った計算式を用いて、簡単に計算してみましょう。
まずは、必要な情報を取り出します。
コマンドラインからmysqlでデータを抽出しましょう。
> mysql -uroot -p
> password:
...
mysql> show variables;
+-----------------------------------+-------------+
| Variable_name | Value |
+-----------------------------------+-------------+
| : | : |
| innodb_additional_mem_pool_size | 1048576 |
| : | : |
| innodb_buffer_pool_size | 8388608 |
| : | : |
| innodb_log_buffer_size | 1048576 |
| : | : |
| join_buffer_size | 131072 |
| key_buffer_size | 16777216 |
| : | : |
| max_connections | 100 |
| : | : |
| myisam_sort_buffer_size | 8388608 |
| : | : |
| net_buffer_length | 8192 |
| : | : |
| read_buffer_size | 262144 |
| : | : |
| read_rnd_buffer_size | 524288 |
| : | : |
| sort_buffer_size | 524288 |
| : | : |
+-----------------------------------+-------------+
240 rows in set (0.02 sec)
mysql>
|
こんな感じで情報が拾いだせます。(上記の出力は、mysqlをインストールしただけのデフォルトの値です。)
さあ、後者の計算式にそれぞれあてはめて計算してみましょう。
各スレッドのバッファ = 524288 + 8388608 + 262144 + 131072 + 524288 = 9830400
グローバルバッファ = 16777216 + 8388608 + 1048576 + 1048576 + 8192 = 27271168
最大接続数 = 100
必要メモリ量
=グローバルバッファのサイズ+(各スレッドのバッファサイズの合計 × 最大接続数(max_connections))
= 27271168 + (9830400 * 100) = 1,010,311,168
つまり、mysqlは、何もチューニングしない状態では、
約1GB
必要なんですね。
ほとんどのレンタルサーバーでは、mysqlサーバーとapache(web)サーバーとは別にされています。
そのため、あまり意識する必要はないでしょうが、VPSやサーバー丸ごとレンタルをお考えの場合や自宅サーバーなどをお考えの方は、ご参考ください。
また、格安のさくらのVPS を使っておられる方、MySQLのチューニングやってますか?
最安の1Gプランでは、チューニングしないと メモリがキツイかもです。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事
2012年5月2日, 1:37 AM
[...] http://rental.off-soft.net/323.html ということで1GBくらい、という計算になっているようです。 [...]
2012年6月20日, 8:16 PM
[...] MySQLの必要なメモリ量は? | phpとmysql が使えるおすすめ格安レンタルサーバー比較 http://rental.off-soft.net/323.html [...]