У меня есть сервер приложений cherrrypy, который сидит за nginx (обратный прокси). Cherrypy запускается как процесс-демон на ядро (мой сервер - 4 ядра), а nginx (также настроенный на 4 рабочих) выполняет балансировку нагрузки для входящих запросов.
Я проверяю, как получить первую страницу моего веб-приложения, используя эй . Для значений 200 одновременных запросов и в общей сложности 10 тыс. Запросов я достигаю 400-500 оборотов в секунду. Я должен быть в состоянии справиться по крайней мере в 10 раз. Когда я смотрю на гистограмму:
Response time histogram:
0.014 [1] |
0.721 [9193] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
1.429 [693] |■■■
2.137 [13] |
2.844 [0] |
3.552 [88] |
4.259 [0] |
4.967 [0] |
5.674 [0] |
6.382 [0] |
7.089 [12] |
Очень странно, что некоторые запросы обрабатываются так долго (1,5-7 секунд), учитывая, что в обработчике URL главной страницы нет операций ввода-вывода, просто генерируем статический шаблон и отправляем его поверх.
Как я могу получить представление о том, что является моим узким местом, прежде чем я спущусь в кроличью нору преждевременной оптимизации? Вишневый? сам питон? мое оборудование?