Хабраэффект на сервере

sitsalavat sitsalavat   10.02.2012 08:38   269  
Кто-нибудь сможет прокомментировать этот отчет?

Единственное, что я понимаю, что из 10 000 запросов - 2151 не получилось обработать.

[admin@host ~]$ ab -c100 -n10000 http://sitename.ru/

Benchmarking sitename.ru (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software: nginx/0.7.67
Server Hostname: sitename.ru
Server Port: 80

Document Path: /
Document Length: 32045 bytes

Concurrency Level: 100
Time taken for tests: 486.242 seconds
Complete requests: 10000
Failed requests: 2151
(Connect: 0, Receive: 0, Length: 2151, Exceptions: 0)
Write errors: 0
Non-2xx responses: 11
Total transferred: 325937799 bytes
HTML transferred: 320364725 bytes
Requests per second: 20.57 [#/sec] (mean)
Time per request: 4862.422 [ms] (mean)
Time per request: 48.624 [ms] (mean, across all concurrent requests)
Transfer rate: 654.61 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 71 102 225.6 85 3098
Processing: 442 4639 8621.0 2461 92056
Waiting: 200 4108 8458.8 2011 92056
Total: 519 4742 8633.7 2548 92146

Percentage of the requests served within a certain time (ms)
50% 2548
66% 3086
75% 4241
80% 4786
90% 7129
95% 13698
98% 24105
99% 50819
100% 92146 (longest request)

Ответы на вопрос (6) Написать ответ
UnFeeLing UnFeeLing   10.02.2012 12:58
nginx нигде не выстраивает независимые запросы в очередь. Но и не пытается выполнять pipelined* запросы параллельно. Так что если запросы посылаются в одном соединении - то будет наблюдаться как раз подобная картина.

*http://ru.wikipedia.org/wiki/HTTP_pipelining
0
sitsalavat sitsalavat   10.02.2012 13:43
то есть в этом случае лучше использовать siege? хочу узнать максимальное количество пользователей, которое сможет выдержать сервер.
0
UnFeeLing UnFeeLing   10.02.2012 14:14
Все легко посчитать от количества ОЗУ вашего сервера

Итак при 128 Мб мы обработаем запросы только от 6 клиентов ( 128 - 70 ~ 60/10 = 6 ). Седьмой уже не будет обрабатываться.
На 256 - уже 18 клиентов одновременно.
На 512 - уже 44 клиентов одновременно.
Для 1024 считайте сами.

+ - учитывать фактор вашего интернет канала сервера

Вообще для нагружаемых проектов используется технология memcached, то есть лучше все кешировать на самом сервере

* Кешируя страницы на отдающем сервере, Вы освобождаете ощутимое количество ресурсов на бекендах
* В случае медленных страниц, значительно уменьшается время ожидания страниц Вашего сайта (ускоряется его работа)

Решать Вам что, да как, либо оптимизатору и администратору вашего сервера ;)

Надеюсь ответ был полезным
0
Решение
sitsalavat sitsalavat   10.02.2012 14:28
Ага, спасибо. В целом вроде как понятно, но есть некоторые нюансы.
Кеширующий и бекенды - в моем случае один сервер.
Кеш уже есть, акселератор стоит, мемкеш тоже.
0
UnFeeLing UnFeeLing   10.02.2012 14:35
тогда дело только в проверке как все настроено ;) эксперименты и практика вот что главное
0
kirinzi kirinzi   10.02.2012 14:50
Вы проверьте, что страницы у вас возвращаются одинаковые.
Часто бывает, что в коде, например, ставят время исполнения скрипта. А там, например, 0.123 или 0.13 секунд. И длина страницы получается 12345 и 12344 байта. Вторую ab посчитает фейлом.
0

Войдите, чтобы написать ответ
Вход Регистрация

Поможем не рискуя купить или продать сайт!