SlideShare a Scribd company logo
PHP実環境ベンチ2016春
2016/4/14
PHP7 Casual Talks #2 「速さ」
hanhan1978
@hanhan1978
• Web Application Engineer
• dev-north.yokohama 管理人
• ohako.inc 所属
本日のテーマ
BenchMarking
とにかくPHPのWebアプリに
負荷をかけまくる
そして、最適なミドルウェア
構成や設定を探す
こんなWebアプリ(Laravel)
DBから7件のデー
タを取得
ページ内に12枚の画像データを表
示
特徴
• 普通のWebアプリ
• 余計な処理は一切無し (CPU負荷極小)
• DBのデータはメモリに乗る (データ量極小)
インフラは?
• Vagrant with VirtualBox
• CPU x2
• Memory 2GB
どんな負荷をかける?
• 大量並列アクセス
• ISU○ON対策
負荷テストツール
siege
• cオプションで並列数を調整
• Keep-AliveはOFF (デフォルト)
• 5xx系のエラーを出すまで並列数を上げていく
ミドルウェア構成
構成① Nginx + FastCGI
PHP7-FPMNginx
FastCGI
静的ファイルはNginxが処理
構成② Apache + FastCGI
PHP7-FPM
FastCGI
Apache
mpm_event
静的ファイルはApacheが処理
構成③ Apache + mod_php
mod_php7
prefork
Apache
構成④ Nginx + mod_php
mod_php7Nginx
proxy
静的ファイルはNginxが処理
Apache
OSやミドルウェアの設定
• ファイルディスクリプタ 増し増し
• Socketのreuseやtimeout設定
• nginxは2core 2048で待受
• Fastcgi, MySQLはUnix Domain Socketで通信
ベンチマークを実行する
突然ですが、クイズです。
Q1. もっとも大量の並列負荷
に耐えた構成はどれでしょう
?
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php
concurrency
正解は・・・
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php
750
1050
1040
1060
No.1
concurrency
ThroughPutは?
同時接続数700で比較
Q2. 一番ThroughPutが高いの
は?
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php
trans/sec
正解は・・・
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php
304.75
281.69
240.05
195.26
No.1
trans/sec
なんかおかしい・・・
あやしげな情報を見つける
http://stackoverflow.com/questions/8772015/502-gateway-errors-under-high-load-nginx-php-fpm
300+の同時接続を行うと、新しいリクエストがブロックされてnginx
が502エラーを出す・・・。ネットワークソケットが良い。
TCP Socketに変えてみた
listen = 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
php-fpm
Nginx
Q1’ もっとも大量の並列負荷
に耐えた構成はどれでしょう
?
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php
concurrency
正解は・・・
① Nginx FastCGI
② Apache FastCGI
③ Apache mod_php
④ Nginx mod_php 1060
1050
1040
1200
No.1
concurrency
何故?
• Unix Domain Socketに詳しい人教えて
• 世界はUnix Domain Socketのがパフォーマンス
が良いという情報であふれている。
それはさておき
せっかくPHP7の勉強会なので
Q3 ①の構成でPHPを5.6にし
てみた。性能はどうなった?
PHP5.6-FPMNginx
FastCGI
1. 多くなった
2. 少なくなった
同時接続数
正解は・・・
1. 多くなった
2. 少なくなった
同時接続数
1150
1. 良くなった
2. 悪くなった
trans/sec
正解は・・・
1. 良くなった
2. 悪くなった
trans/sec
283.60
まとめ
• ベンチマークは難しい
• 極限の世界では何が起こるか分からない
• PHP7はちょっと速いらしいよ
• ミドルウェアの設定とか
• チューニングの内容とか
• 細かい不明点とか
-> ブログにまとめておきます。
http://blog.hanhans.net
推測するな!
計測せよ!
END
PHP7実環境ベンチ2016春

More Related Content

PPTX
Re: WebServer BenchMarking
PDF
apachehereというPHPのBuiltin Serverっぽいやつをつくった
PDF
恋に落ちるデプロイツール
PDF
PHPとJavaScriptの噺
PDF
Phpでアプリケーションサーバー
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PDF
PHPという概念が存在しない退屈な世界
PDF
PHP 5.4のビルトインウェブサーバー
Re: WebServer BenchMarking
apachehereというPHPのBuiltin Serverっぽいやつをつくった
恋に落ちるデプロイツール
PHPとJavaScriptの噺
Phpでアプリケーションサーバー
PHP x AWS でスケーラブルなシステムをつくろう
PHPという概念が存在しない退屈な世界
PHP 5.4のビルトインウェブサーバー

What's hot (20)

KEY
恐るべきApache, Web勉強会@福岡
PPTX
誰にでもできるパフォーマンスチューニング
PDF
itamaeで一撃サーバーProvisioning
ODP
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
PPTX
Varnish
PPTX
Web 01
ODP
Xamppでお手軽cms開発環境を手に入れる
PDF
Webフレームワークを作ってる話 #osakapy
PDF
NorikraのJVMチューンで苦労している話
PDF
WordPressでの制作説明
PDF
Railsの運用について
PPTX
Ansibleハンズオン勉強会
PDF
Casper js エスキュービズム勉強会0718
PDF
PHP 5.5ネーティブキャッシュの話
PDF
本番環境で使いたいPHP
PPTX
Apacheチューニング
PPTX
第1回concrete5初心者向け勉強会 環境構築
KEY
APACHE HTTP SERVER
PDF
第二回 クラウドサーバー管理者若葉の会
KEY
Clojureの発表など
恐るべきApache, Web勉強会@福岡
誰にでもできるパフォーマンスチューニング
itamaeで一撃サーバーProvisioning
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Varnish
Web 01
Xamppでお手軽cms開発環境を手に入れる
Webフレームワークを作ってる話 #osakapy
NorikraのJVMチューンで苦労している話
WordPressでの制作説明
Railsの運用について
Ansibleハンズオン勉強会
Casper js エスキュービズム勉強会0718
PHP 5.5ネーティブキャッシュの話
本番環境で使いたいPHP
Apacheチューニング
第1回concrete5初心者向け勉強会 環境構築
APACHE HTTP SERVER
第二回 クラウドサーバー管理者若葉の会
Clojureの発表など
Ad

Viewers also liked (20)

PDF
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PDF
realpathキャッシュと OPcacheの面倒すぎる関係
PPTX
PHPのキャッシュを使いこなせ!
PDF
behatエクステンションの作り方
PDF
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
PDF
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
PDF
Running php on nginx
PDF
mod_php vs. FastCGI 原理与比较
PDF
From LAMP to LNNP
PDF
Word press on conoha このべん #3
PDF
Nginx + PHP
PPTX
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
PPTX
High performance PHP: Scaling and getting the most out of your infrastructure
PPTX
Behat Driven Development
PPTX
Techtalk2015 MOD_PHP vs PHP-FPM
PDF
PHP Files: An Introduction
PPTX
第2回勉強会資料 柏木
PDF
mod_php vs FastCGI vs FPM vs CLI
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
PDF
Nginx pres
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
realpathキャッシュと OPcacheの面倒すぎる関係
PHPのキャッシュを使いこなせ!
behatエクステンションの作り方
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Running php on nginx
mod_php vs. FastCGI 原理与比较
From LAMP to LNNP
Word press on conoha このべん #3
Nginx + PHP
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
High performance PHP: Scaling and getting the most out of your infrastructure
Behat Driven Development
Techtalk2015 MOD_PHP vs PHP-FPM
PHP Files: An Introduction
第2回勉強会資料 柏木
mod_php vs FastCGI vs FPM vs CLI
PHP7ではなくHack/HHVMを選ぶ理由
Nginx pres
Ad

Similar to PHP7実環境ベンチ2016春 (20)

PDF
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
PDF
データベース勉強会 In 広島 mongodb
PDF
[A32] NonStop SQL インターナル: レガシーにして最新テクノロジーが明かされる by Toshimitsu Hara
PDF
Sfes
PPTX
Challenge PWA!! WordCamp Tokyo 2018
PDF
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
ZIP
快適に料理を楽しむための監視のおはなし
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
PDF
bottleで始めるWEBアプリの最初の一歩
PDF
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
PDF
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
PPTX
Coherenceを利用するときに気をつけること #OracleCoherence
PDF
KDL主催セミナー 20120215
PPTX
オフラインファーストの思想と実践
PPTX
たのしいNode.js
PDF
PHPの今とこれから2007
PDF
PDF
Effective web performance tuning for smartphone
PDF
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
データベース勉強会 In 広島 mongodb
[A32] NonStop SQL インターナル: レガシーにして最新テクノロジーが明かされる by Toshimitsu Hara
Sfes
Challenge PWA!! WordCamp Tokyo 2018
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
快適に料理を楽しむための監視のおはなし
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
bottleで始めるWEBアプリの最初の一歩
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
20120407 ASP.NET+C#で開発する大規模ソーシャルゲーム
Coherenceを利用するときに気をつけること #OracleCoherence
KDL主催セミナー 20120215
オフラインファーストの思想と実践
たのしいNode.js
PHPの今とこれから2007
Effective web performance tuning for smartphone
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...

PHP7実環境ベンチ2016春