alexx11Хороший вопрос.
o7412369815963 О! респект и уважуха что разобрался, а теперь ответь на вопрос пожалуйста, если не sleep а поиск из массива вставить, ну как из предыдущего примера, то второй клиент зависнет или нет?
Время одного построения страницы.
processes=1 threads=5, $ ab -n 10 http://localhost/
Time taken for tests: 62.128 seconds
Time per request: 6212.754 [ms] (mean)
Терь тестируем:
processes=1 threads=5, $ ab -n 5 -c 5 http://localhost/, одновременно 5 запросов
Concurrency Level: 5
Time taken for tests: 31.933 seconds
Complete requests: 5
Failed requests: 3
(Connect: 0, Receive: 0, Length: 3, Exceptions: 0)
Write errors: 0
Total transferred: 1103 bytes
HTML transferred: 153 bytes
Requests per second: 0.16 [#/sec] (mean)
Time per request: 31932.981 [ms] (mean)
Time per request: 6386.596 [ms] (mean, across all concurrent requests)
Transfer rate: 0.03 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 4 3.0 6 6
Processing: 25680 30679 2794.1 31927 31932
Waiting: 6368 21794 9707.2 25678 31927
Total: 25681 30682 2796.0 31933 31933
processes=5 threads=1, $ ab -n 5 -c 5 http://localhost/, выделим 5 процессов для wsgi
Concurrency Level: 5
Time taken for tests: 13.177 seconds
Complete requests: 5
Failed requests: 1
(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Write errors: 0
Total transferred: 1104 bytes
HTML transferred: 154 bytes
Requests per second: 0.38 [#/sec] (mean)
Time per request: 13177.003 [ms] (mean)
Time per request: 2635.401 [ms] (mean, across all concurrent requests)
Transfer rate: 0.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 8 11.6 8 25
Processing: 11740 12729 571.6 12962 13160
Waiting: 11740 12724 569.3 12953 13152
Total: 11741 12737 575.8 12962 13177
Concurrency Level: 2
Time taken for tests: 5.734 seconds
Complete requests: 2
Failed requests: 1
(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Write errors: 0
Total transferred: 441 bytes
HTML transferred: 61 bytes
Requests per second: 0.35 [#/sec] (mean)
Time per request: 5734.235 [ms] (mean)
Time per request: 2867.117 [ms] (mean, across all concurrent requests)
Transfer rate: 0.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 4866 5300 614.0 5734 5734
Waiting: 4866 5300 614.1 5734 5734
Total: 4866 5300 614.1 5734 5734
Теперь посмотрим как mod_wsgi раздает задачи, сначала по потокам или по процессам.
processes=5 threads=5, $ ab -n 5 -c 5 http://localhost/
Concurrency Level: 5
Time taken for tests: 13.482 seconds
Complete requests: 5
Failed requests: 0
Write errors: 0
Total transferred: 1105 bytes
HTML transferred: 155 bytes
Requests per second: 0.37 [#/sec] (mean)
Time per request: 13481.948 [ms] (mean)
Time per request: 2696.390 [ms] (mean, across all concurrent requests)
Transfer rate: 0.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 12058 12598 596.2 12682 13481
Waiting: 12058 12595 591.6 12682 13469
Total: 12059 12598 596.3 12682 13482
ну и в заключение сделаем смешанную нагрузку
processes=5 threads=5, $ ab -n 10 -c 10 http://localhost/ , теоретический должно быть примерно 13 сек * 2 слоя = 26 сек, (2 слоя т.е. 5 потоков начнут работать, 5 повиснут из-за gil. один слой из 5 запросов выполняется примерно 13сек), смотрим…
Concurrency Level: 10
Time taken for tests: 27.046 seconds
Complete requests: 10
Failed requests: 1
(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Write errors: 0
Total transferred: 2209 bytes
HTML transferred: 309 bytes
Requests per second: 0.37 [#/sec] (mean)
Time per request: 27045.770 [ms] (mean)
Time per request: 2704.577 [ms] (mean, across all concurrent requests)
Transfer rate: 0.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 14 11.1 12 28
Processing: 12530 22150 5626.7 25048 27043
Waiting: 12017 18411 5398.7 19916 27017
Total: 12559 22164 5626.2 25060 27045