サバフェスに参加した際の取り組みまとめ

一応、作業ログを取りつつ進めたので、一部をご紹介したいと思います。
理由は後輩と一緒に出場したからで、99%作業は私がやったのだけれど、後から説明するために作ったメモから。

構成の検討

・最初は nginx(LB+cache)x1 -> webx3 -> DBx1 を考えていた。
・次に nginx(LB+cache)+DBx1 <-> webx4 とした。
  ⇒ トラブルのせいで、比較のための性能試験をやる暇がなく、後者の案で固定した。
mysqlレプリケーションしてwebに載せる案って、今回は実現性あったのでしょうかね??

サーバ構築(詳細は割愛)

・インストール
nginx, mysql, php-fpmは最新stable versionを導入。
APCを入れました。他にも高速なキャッシュ系があったとのことで、調査不足でした。。


参考: 
http://d.hatena.ne.jp/yoshi-ken/20120205
http://b-index.jp/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-v02-centos6-4%E3%81%ABmysql5-6%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
http://cross.hvn.to/?p=1874
・new relicを導入
初めて使いましたが、大成功でした。監視を自分で入れる必要が無くなり、トランザクションの確認もできたり、すごく高機能でした。
惜しむらくは、それを使いこなすだけの技術が全く不足していたことです。

参考:
webサーバ:
http://www.slideshare.net/HiroyukiYamaoka/new-relic-night-27288003

mysql
http://qiita.com/polidog/items/548031ad12d24e7c8f55

nginxについて

・同一URLへのGET時に複数リクエストが飛ばないようにする(大事!)


参考:
http://labo.samuraistyle.org/blog/archives/tag/nginx
http://blog.serverworks.co.jp/tech/2012/09/21/nginx-03/

mysqlについて

・書き込み重視なので、InnoDBに変更


参考:
http://nippondanji.blogspot.jp/2010/03/innodb-plugin.html
http://dbstudy.info/files/20130729/mysql56_parameters_r2.pdf
http://open-groove.net/mysql/seek-mysql-memory/
mysql tunerを使い、my.cnfとか弄るときの参考にしました。

参考:
http://www.e-agency.co.jp/column/20121220.html

php-fpmについて

色々、素人ながらチューニングの真似事をやってみました。
が、恥ずかしいので出せません。


参考:
http://blog.kubox.info/2011/07/nginxphp-fpm.html

その他取り組み

・ログを見やすくする。IPを出したり、nginx(LB)で振り分け先を出したり。
・webサーバは4台あったので、my.cnfやphp-fpm.confなどは、一台からscpで全台に反映できるようなスクリプトを作った
・計5Gのディスクが使えたので、mysqlサーバでRAID5やRAID0を試して見ようとしたら、再起動で上がらなくなることが何度もあって断念。設定が悪かったのだと思いますが。。


参考:
http://www.maruko2.com/mw/CentOS%E3%81%A7%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2RAID%E3%81%AE%E6%A7%8B%E7%AF%89
http://www.idcf.jp/blog/cloud/rootdisk/
・仕方ないので、mysqlのディスク部分を起動時にRAM領域にコピーすることでRAMをディスクとしてmysqlを起動させ、暫定的に高速化した。
 ⇒ 本当は汚い手段なのでやりたくなかったのだけれど、苦肉の策でした。
負荷試験はabでやりました。ab -n 3000 -c 1000 のPOSTで10秒とか時間がかかってしまっているところは、最後まで何ともなりませんでした。残念。

感想

やっぱり最後はデスマーチでした。
でも、非常に楽しかったです。またやりたい。

読みづらい。

はてなのタグって、何でこう分かりづらいんでしょう??
月1ぐらいの更新ペースなので、直感的に使いやすいと嬉しいのに。
後でもう少し読みやすいようにしたいと思います。