Перекрестная регистрация от CherryPy список рассылки.Самый длинный запрос в ab benchmark
Привет всем,
Я новичок в CherryPy, и я пытаюсь понять, результаты этого теста следующим тривиальным. Учитывая это «привет мир» приложение:
import cherrypy
class Hello:
@cherrypy.expose
def index(self):
return 'hello'
cherrypy.server.thread_pool = 50
cherrypy.quickstart(Hello())
Я бегу ab -c 10 -n 1000
и я получаю эти результаты:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: CherryPy/3.2.4
Server Hostname: localhost
Server Port: 8080
Document Path: /
Document Length: 5 bytes
Concurrency Level: 10
Time taken for tests: 4.494 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 143000 bytes
HTML transferred: 5000 bytes
Requests per second: 222.53 [#/sec] (mean)
Time per request: 44.938 [ms] (mean)
Time per request: 4.494 [ms] (mean, across all concurrent requests)
Transfer rate: 31.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 31.6 0 998
Processing: 2 16 183.1 5 4493
Waiting: 1 15 183.1 5 4492
Total: 2 17 185.7 5 4493
Percentage of the requests served within a certain time (ms)
50% 5
66% 7
75% 11
80% 13
90% 18
95% 21
98% 24
99% 25
100% 4493 (longest request)
Обратите внимание, что самый длинный запрос занимает более 4 секунд. Учитывая, что я установил количество потоков на 50 в приложении, и что ab использует 10 одновременных запросов, я бы ожидал, что cherrypy справится с этим легко. Что мне не хватает? Я пробовал с различными #threads и параллельными запросами с аналогичными результатами. Я использую CherryPy v.3.2.4
Спасибо за вашу помощь, Л.
Тест очень светлый в памяти, конечно, и процессоры (4) работают по 50% каждый, поэтому, не особенно интенсивно, , afaict. Меня удивляет также максимальное время соединения, 4493 мс, как если бы один из запросов остался без обработки. Более длинные тесты показывают очень похожие результаты. – lbolla
хм .. вы смотрите на использование отдельного ядра процессора ?, или просто средние из всех ядер. Иногда это может вводить в заблуждение, если машина привязана к компьютеру только с e core pegged, поэтому avg, о котором сообщает инструмент «top», заставит вас думать, что все в порядке. –
На самом деле, я использую монитор sys, который показывает графики для каждого ядра. Если это суперточно, я не знаю. Но если это было причиной, почему было бы очень мало запросов, и подавляющее большинство выполнялось в тысячи раз быстрее? – lbolla