2016-10-30 6 views
1

私は現在INSERTステートメントとUPDATEステートメントのようなリクエストに対してMySQLデータベース(innodbエンジンを実行中)を最適化しようとしています。MySQLの最適化 - innodb設定が不十分かハードウェアが不十分ですか?

私は2GBメモリ/ 2 CPUと40GBディスクを搭載した非常に基本的なサーバを使用しています。私は最適化(https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-diskio.html)とメモリ使用(https://dev.mysql.com/doc/refman/5.7/en/memory-use.html)を含む多くのMySQLドキュメントを見てきました。

私は次のように私のmy.confファイルを設定しました:されている

[mysqld] 
default-storage-engine = innodb 
innodb_buffer_pool_size = 2147483648 
innodb_buffer_pool_instances = 4 
innodb_buffer_pool_chunk_size = 1073741824 
innodb_change_buffer_max_size=30 

をプールサイズ、チャンクサイズとインスタンスの数を増やすことにもかかわらず、私はまだ重要なクエリのボトルネックを見ているとCPUの両方の100%で動作します。

これらのボトルネックを減らすためにinnodbエンジンでもっと迷惑をかけることはありますか?それとも、単により大きな仕様のハードウェアを使用しているのでしょうか?

+0

2Gバイトのメモリはそれほど多くありません(私の携帯電話はそれほど多くのRAMを持っていませんか?)。ただし、クエリの負荷を最適化する場合は、クエリの負荷を理解することが重要です。これは、ハードウェア/ソフトウェアの問題である場合とそうでない場合があります。 –

+0

確認できることは、インデックスを追加することです。 – mm759

+0

@ GordonLinoffありがとう - 私はちょうど私が小規模なサーバーからどのくらいの量をeekできるのか見てみたいと思っています。 –

答えて

1

innodbの設定が悪いことは確かです。 innodb_buffer_pool_sizeは2GBより大きく、2GiBです。誰もが提案し、文書化しているので、それを閉じるべきではありません。

は、ハードウェアが不十分で、プログラムされたSQLも悪いことがあります。

3

innodb_buffer_pool_size = 2147483648は2GBサーバーで動作します。 300Mに変更してください。

あなたは小さなマシンを持っています。他の設定を増やした場合は、変更を元に戻してください!

my.cnfを見てみましょう。 2GB(または2GiB)のRAMに収まるように縮小する設定がいくつかあります。

関連する問題