MySQLのメモリ使用量を最適化するにはどうすればよいですか?


9

私のセットアップ(

次の仕様のAmazon High CPUエクストララージEC2インスタンスでLinuxを実行しています。

  • 7 GBのメモリ
  • 20 EC2コンピューティングユニット(それぞれ2.5 EC2コンピューティングユニットを備えた8つの仮想コア)
  • 1690 GBのローカルインスタンスストレージ
  • 64ビットプラットフォーム

MyISAMストレージエンジンで2つの大きなMySQLデータベースを実行しています。1つは2 GB、もう1つは500 MBです。MySQLがクエリ速度を最大化するためにできる限り多くのRAMを使用していることを確認したいのですが。私のようなMySQLのメモリ設定オプションの束があります知っているkey_buffer_sizeMyISAM_sort_buffer_size,私は、これらの最適化に慣れていないんです。

質問

  1. MySQLがLinuxシステムで現在使用しているメモリを確認するにはどうすればよいですか?
  2. MySQLのメモリ使用量を最大化/最適化するにはどうすればよいですか?
  3. クエリとスキーマが最適化されている場合、他にどのような変更を検討する必要がありますか?

htopプログラムで確認できます。
neworld 2011

メモリ使用量を最大化しても、データベース全体がメモリに入るわけではありません。RAMベースのファイルシステムが必要です...

4
RAMベースのファイルシステムは安全ではありません。サーバーがクラッシュするとすべてのデータが失われます
neworld

回答:


7

これは難しいトピックです。ここで答えることはできません。これについての本全体が書かれています。innodb_buffer_pool_sizeを十分に大きくすることをお勧めします。myisamテーブルを使用している場合は、key_buffer_sizeを確認してください。また、table_cacheとmax_connectionsも考慮する必要があります。

ここにあなたを助けることができる何かがあります:

http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/ http://www.mysqlperformanceblog.com/2007/11/01/innodb- performance-optimization-basics / http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/

編集:

@ drew010が言ったように、DBの使用方法を考慮することが重要です。大量の読み取りDBのチューニングは、大量の書き込みとは大きく異なります。また、他の戦略を検討することもできます。Memcached、nosqlデータベースなどのように。


2
同意された、それらはあまりにも相対的に言えばかなり小さなデータベースです。大量のデータベース読み取りアクセスを想定している場合は、アプリケーションがデータベースからの値を格納してデータベースへのヒットを減らすために使用できるmemcachedなどのキャッシュシステムを検討することができます。主に挿入を行う場合は、ディスクが非常に重要な要素になります。問題はある程度、ユースケースが何であるかに依存します。データがあまり変化していない場合、mysqlクエリキャッシュは、クエリの高速化にも役立ちます。また、インデックス/主キーが適切であることを確認してください。
drew010 2011

+1あなたは正しい兄弟です。彼は基本的なチューニングを求めていたはずですが、DBの使い方などを考える上で重要です。繰り返しますが、ここでは議論できません。
santiago.basulto 2011

1

MySQLが必要なすべてのメモリを使用することを確認する必要がある場合は、InnoDBに切り替える必要があります。MySQLのFULLTEXT検索機能を使用しない限り、深刻な問題は発生しません。

MyISAMの場合、内部MySQLキーバッファーやシステムキャッシュなど、いくつかのキャッシュが使用されます。最高のパフォーマンスが必要な場合は、どちらかのキャッシュのためのスペースを残す必要がありますが、特にデータベースが書き込みが多い場合は、MyISAMをお勧めしません。MyISAMは書き込み時にテーブル全体をロックしますが、InnoDBは影響を受ける行のみをロックします。

データベースをすべてメモリに配置したとしても、インデックスの不足やその他の理由により、クエリの実行が遅くなる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.