過日、PHP7に関わることなら何でもいいというイベントが開催されていたので、参加&登壇してきました。
1サーバにWEB+DB突っ込んで並列実行のアクセスをかけまくって、どんな構成が一番パフォーマンス出るんだ?
という検証の報告です。
当日発表のスライドはこちら。
細かい設定内容とかには触れられなかったので、ココであげときます。
使った環境
- Ubuntu 14.04LTS
- CPU 2 Processer
- Memory 2048MB
※VirtualBox上にVagrantを使って構築。
OSの設定
/etc/security/limits.conf
1 | * hard nofile 65535 |
/etc/sysctl.conf
1 | net.ipv4.tcp_max_tw_buckets = 2000000 |
Nginxの設定
/etc/nginx/nginx.conf
1 | worker_processes 1 => 2; |
php-fpmの設定
/etc/php/7.0/fpm/pool.d/www.conf
1 | pm.max_children = 100 |
※初期値のx20
メモ
php-fpmとnginx間の接続をTCP Socketに変更した構成が、最もパフォーマンスが出ました。
php-fpmの設定値は、どの構成でも色々といじって見ましたが、あまり効果無し。
今後は、php-fpmとnginxの構成に焦点を絞って、さらならベンチマークを行う予定です。
どこかで機会があればまた発表します。
(終わりはあるのか・・・汗)
宿題事項
- CPU・Memoryがまた若干余っている。(負荷をかけきれてない)
- Unix Domain Socketを使ったFastCGI接続した際に、高負荷時でエラーが出るのは何故?