Apache CloudStack Advent Calendar 2015の12月9日の分を担当します。
80人くらいが同時にインスタンスを建てようとすると、APIがロック?と言うか、
画面更新などはできるが実行結果が帰ってこない状態(極端に遅いだけ?)になりました。
解決方法がよく分からず、#CloudStack のハッシュタグを付けてツイートしたら解決方法を教えてくださったので、
メモ程度ですが、残しときます。
※時間がなく、今この値で動かないからこんぐらいにしとけば動くだろう っと言う適当さです。
環境
CentOS 6.6
CloudStack 4.4.4
java version “1.7.0_85”
mysql Ver 14.14
とのことなので、Performance Test Execution for 4.2 – Apache Cloudstack – Apache Software Foundationを見ながらチューニング
とりあえず、MySQLから
MySQLTunerを使い基本的なチューニング
query_cache_size (>= 8M)
join_buffer_size (> 128.0K, or always use indexes with joins)
thread_cache_size (start at 4)
table_open_cache (> 64)
innodb_buffer_pool_size (>= 506M) if possible.
innodb_log_buffer_size (>= 1M)
MySQLTunerの結果を見つつwikiに乗ってるmy.cnfをにらめっこしつつ設定を変えてく
一部抜粋
innodb_buffer_pool_size = 1024M
innodb_log_buffer_size = 4M
key_buffer_size = 512M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
slow_query_log_file = /var/lib/mysql/slow-queries.log
long_query_time = 5
max_heap_table_size = 2048M
query_cache_size = 0
thread_cache_size = 4
あとはtomcatのチューニング
どこ変更したか覚えてないので何となくで書きます…
/etc/cloudstack/management/tomcat6.conf
JAVA_OPTS の -Xms2g -Xmx4g とか -XX:PermSize=1024m -XX:MaxPermSize=1024m とか追加した気がします
/etc/cloudstack/management/server-nonssl.xml のなかのmaxThreadsとか変更しました
【java チューニング】とか【tomcat チューニング】でググッて出てきたのを変更しました
設定変更後
service cloudstack-management restart
でcloudstackを再起動させて起動確認
結果
一斉にインスタンスを作ると【インスタンスの作成エラー】的なエラーが出るものの、インスタンス一覧の画面に戻るときちんと作成されてました。
一斉にインスタンスが作れるのを確認できたのでおkとしました。
時間がなく「今この値で動かないからこんぐらいにしとけば動くだろう」って言う感じのチューニングでしたが、
次はちゃんとログなどにらめっこしつつ論理的にチューニングしていきたいです。(小並感