2012-04-17 8 views
1

613MBのメモリを持つAmazon EC2マイクロインスタンスでmysqlを設定しようとしています。このインスタンスはmysqlの実行にのみ使用されるので、できるだけ多くのメモリを使いたいと思っています。我々は別のホスト上で実行されている同じDBの別のインスタンスを持っているので、結果を簡単に比較できます。EC2インスタンスのMysql:最初のクエリの後の結果が遅い

元のデータベースで平凡なクエリを実行するのに要した時間は3秒未満でした。 EC2の変更前は46秒かかりましたが、設定を変更しても同じクエリでは4秒しかかかりませんでした。しかし、もう一度同じクエリを実行すると、それは永遠にかかるようです。

これは私が私のMySQLのmy.cnfに使用する設定です:

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

innodb_buffer_pool_size = 128M 
query_cache_size = 128M 
query_cache_limit = 8M 
key_buffer_size = 128M 

table_open_cache = 2048 
table_definition_cache = 2048 
read_buffer_size = 64M 
join_buffer_size = 64M 
sort_buffer_size = 64M 
myisam_sort_buffer_size = 64M 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

は、私はそれがすべてのInnoDBを使用しなければならないためのMyISAM paramは、カントー含まれるべきとは思わないが、私はちょうどそれを与えました必要に応じて余分なメモリを追加する必要があります。

初回実行時の速度が遅かった場合は遅くなりますが、その後は速くなりますが、これはちょっと不合理なようです。

どんなアイデアでも大歓迎です。

答えて

1

EC2マイクロは、一般的にひどい性能を有する。あなたはLinode/Rackspaceを同じ価格で入手することができます。

+0

私はEC2マイクロがそれほど素晴らしいわけではないことを知っていますが、私の上司が提供するものと一緒に作業しなければなりません;-) とにかく、最初の時間が早くなり、データベースで変更されたもので2回目を実行します。クエリキャッシュを使用すると、クエリキャッシュを高速化できるはずです。 – Andy

0

Amazon Microインスタンスは、「余分なサイクルが利用可能になると、短時間でCPU容量を短期間で増加させる可能性があります。

これは、X単位の計算が割り当てられていることを意味しますが、他のMicroインスタンスが割り当てを使用していない場合にX + Nにジャンプして、インスタンスが自動的にそれを掃除します。

これは、パフォーマンスの変動が見られる理由です。

関連する問題