У меня довольно странная проблема, и, учитывая, что я довольно новичок во всем этом, это может быть просто момент. Ищете предложения о том, что я могу делать неправильно -
Фон -
Я использую nginx и php-fpm для обслуживания моего приложения Zend / Yaf.
Я написал базовую страницу с использованием Zend Framework, страница использует файл макета, один запрос к БД, который кэшируется с использованием Memcached, другой контент на странице в настоящее время в значительной степени статичен.
Прочитав в Интернете кое-что о том, как Yaf (http://pecl.php.net/Yaf) быстрее Zend (все тесты были в значительной степени приложениями hello world), я решил портировать страницу на Yaf. Итак, теперь у меня есть две версии страницы, одна из которых сделана Zend и еще один в Yaf. Содержание и логика точно такие же, за исключением использования классов Zend или Yaf.
Сначала я запустил ab из локальной системы для примерно 100 одновременных подключений и 1000 запросов всего -
ab -c 100 -n 1000 yaf.local
а также
ab -c 100 -1000 zend.local
И да, результаты были в значительной степени в пользу Yaf - Yaf обслуживал одну и ту же страницу примерно через 30 мс, тогда как Zend занимал около 140 мс (в 5 раз медленнее).
Поскольку результаты были получены с локальной машины, я решил запустить те же тесты с другой машины в той же сети. У меня нет другой машины с Linux, поэтому я запустил тесты из ab на машине Win. Удивительно, но запуск тестов с другой машины приводил к тому, что Yaf работал так же медленно, как Zend, а иногда даже медленнее. Приложение Zend переместилось с 140 мс до 300 мс, а Yaf с 40 мс до 300 мс. Учитывая, что единственное, что является дополнительным, это загрузка контента, я не знаю, что могло бы добавить это дополнительное время к Yaf (в идеале оно должно составлять около 200 мс). Иногда, некоторые запросы в Yaf иногда даже превышают 3secsMy. Конфигурационные файлы nginx абсолютно одинаковы для Yaf и Zend (кроме изменения корневой папки), и в медленном журнале php-fpm также нет записей - так что я думаю проблема где-то в моей конфигурации nginx или php-fpm. Любые подсказки о том, что я могу делать неправильно?
Редактировать # 1 : Если это поможет, ниже приведены результаты ab для -c 10 -n 300 для yaf и zend из другой системы -
Server Software: nginx
Server Hostname: yaf.myserver.com
Server Port: 80
Document Path: /
Document Length: 9464 bytes
Concurrency Level: 10
Time taken for tests: 25.662 seconds
Complete requests: 300
Failed requests: 0
Write errors: 0
Total transferred: 2891700 bytes
HTML transferred: 2839200 bytes
Requests per second: 11.69 [#/sec] (mean)
Time per request: 855.402 [ms] (mean)
Time per request: 85.540 [ms] (mean, across all concurrent requests)
Transfer rate: 110.04 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 84 29.4 78 172
Processing: 172 759 98.5 764 983
Waiting: 78 453 147.2 452 842
Total: 250 843 101.7 842 1061
=======================
Zend homepage
========================
Benchmarking zend.myserver.com (be patient)
Server Software: nginx
Server Hostname: zend.myserver.com
Server Port: 80
Document Path: /
Document Length: 9507 bytes
Concurrency Level: 10
Time taken for tests: 23.852 seconds
Complete requests: 300
Failed requests: 0
Write errors: 0
Total transferred: 2904600 bytes
HTML transferred: 2852100 bytes
Requests per second: 12.58 [#/sec] (mean)
Time per request: 795.081 [ms] (mean)
Time per request: 79.508 [ms] (mean, across all concurrent requests)
Transfer rate: 118.92 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 78 30.9 78 218
Processing: 172 707 90.8 702 1045
Waiting: 125 432 143.2 437 749
Total: 250 785 94.1 780 1108
* Редактировать 2 - Локальные результаты ** *
Тестирование yaf.myserver.com (наберитесь терпения)
Server Software: nginx
Server Hostname: yaf.myserver.com
Server Port: 80
Document Path: /
Document Length: 9464 bytes
Concurrency Level: 100
Time taken for tests: 1.495 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 9639000 bytes
HTML transferred: 9464000 bytes
**Requests per second**: 669.08 [#/sec] (mean)
Time per request: 149.459 [ms] (mean)
Time per request: 1.495 [ms] (mean, across all concurrent requests)
Transfer rate: 6298.11 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.7 0 3
Processing: 8 142 24.7 148 182
Waiting: 8 141 24.5 146 182
Total: 11 143 24.1 148 182
**Zend results**
Benchmarking zend.myserver.com (be patient)
Server Software: nginx
Server Hostname: zend.myserver.com
Server Port: 80
Document Path: /
Document Length: 9507 bytes
Concurrency Level: 100
Time taken for tests: 7.729 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 9682000 bytes
HTML transferred: 9507000 bytes
**Requests per second**: 129.39 [#/sec] (mean)
Time per request: 772.886 [ms] (mean)
Time per request: 7.729 [ms] (mean, across all concurrent requests)
Transfer rate: 1223.35 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.1 0 6
Processing: 35 738 130.5 769 845
Waiting: 33 731 129.4 761 841
Total: 40 738 129.5 769 845