MixPHP は Swoole をベースにした高性能フレームワーク、CodeIgniter はベテランの軽量フレームワーク、Yii は非常に人気のあるフレームワークです。この記事では、主に MixPHP、Yii、CodeIgniter の同時実行ストレス テストに関する情報をサンプル コードを通じて詳しく紹介します。必要な方はぜひ参考にしてください。小 一緒に学びましょう。
前書き
Yii/CodeIgniter は Apache/PHP-FPM をベースにした伝統的なフレームワークであるため、MixPHP は Apache/PHP-FPM での実行もサポートしているため、MixPHP の通常の Swoole デプロイ方法を使用して比較するのは少し不公平です。今回テストしたMixPHPはApacheにデプロイされました。
環境
仮想マシン: 4コア、1G
ストレステストにabツールを使用、コマンド: ab -n 5000 -c 100 URL
Yii
Yiiはデバッグをオフにしてpro環境に設定します。
デフォルトのコントローラーコードは次のとおりで、Hello World を出力します。
<?php public function actionIndex() { return 'Hello World'; }
CodeIgniter
デフォルトのコントローラーコードは次のとおりで、Hello World を出力します。
<?php public function index() { echo 'Hello World'; }
MixPHP
デフォルトのコントローラーコードは以下の通りで、Hello Worldを出力します。
public function actionIndex() { return 'Hello World'; }
テストを開始
1. Yiiをテスト、QPS: 56.40
C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.b.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.b.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Apache/2.2.32 Server Hostname: www.b.com Server Port: 80 Document Path: / Document Length: 9 bytes Concurrency Level: 100 Time taken for tests: 88.659 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 1080000 bytes HTML transferred: 45000 bytes Requests per second: 56.40 [#/sec] (mean) Time per request: 1773.170 [ms] (mean) Time per request: 17.732 [ms] (mean, across all concurrent requests) Transfer rate: 11.90 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.0 1 29 Processing: 14 1765 4200.5 688 48084 Waiting: 14 1610 3741.9 682 46690 Total: 14 1766 4200.5 688 48084 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable. Percentage of the requests served within a certain time (ms) 50% 688 66% 1087 75% 1400 80% 1657 90% 3029 95% 7665 98% 14760 99% 24300 100% 48084 (longest request)
2. CodeIgniterをテスト、QPS: 144.42
C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.c.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.c.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Apache/2.2.32 Server Hostname: www.c.com Server Port: 80 Document Path: / Document Length: 8 bytes Concurrency Level: 100 Time taken for tests: 34.621 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 1075000 bytes HTML transferred: 40000 bytes Requests per second: 144.42 [#/sec] (mean) Time per request: 692.419 [ms] (mean) Time per request: 6.924 [ms] (mean, across all concurrent requests) Transfer rate: 30.32 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.7 1 22 Processing: 8 689 1014.3 480 13324 Waiting: 8 686 1012.2 478 13324 Total: 9 689 1014.3 480 13325 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable. Percentage of the requests served within a certain time (ms) 50% 480 66% 673 75% 810 80% 902 90% 1238 95% 1808 98% 3336 99% 6037 100% 13325 (longest request)
3. MixPHPをテスト、QPS: 440.48
C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.a.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.a.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Apache/2.2.32 Server Hostname: www.a.com Server Port: 80 Document Path: / Document Length: 12 bytes Concurrency Level: 100 Time taken for tests: 11.351 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 1025000 bytes HTML transferred: 60000 bytes Requests per second: 440.48 [#/sec] (mean) Time per request: 227.026 [ms] (mean) Time per request: 2.270 [ms] (mean, across all concurrent requests) Transfer rate: 88.18 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.9 1 25 Processing: 4 222 822.4 15 10376 Waiting: 4 221 822.4 14 10376 Total: 4 222 822.4 16 10376 Percentage of the requests served within a certain time (ms) 50% 16 66% 69 75% 214 80% 364 90% 561 95% 762 98% 978 99% 1829 100% 10376 (longest request)
結論
仮想マシンのファイルIOパフォーマンス残念なことに、300 の同時実行で Yii が応答しなかったため、100 の同時実行に減らす必要がありました。同じアーキテクチャのテスト結果では、MixPHP が優れていました。
https://github.com/mixstart/mixPHP
ITEM | DESC |
---|---|
Yii | 56.40 QPS |
CodeIgnit」をテストすることもできますえー | 144.42 QPS |
MixPHP | 440.48 QPS |
関連する推奨事項:
php + nginx Webサイトの同時実行ストレステストと最適化
nginx-大規模同時実行ストレステストデータ、ガイドしてください
PHPで実装サーバーの負荷を軽減するために静的ファイルを生成する方法_PHP チュートリアル
以上がMixPHP、Yii、CodeIgniter の同時実行ストレス テストの概要の共有例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。