Re: Вопрос по производительности.

Валентин Бартенев vbart at nginx.com
Mon Jun 22 12:53:43 UTC 2015


On Monday 22 June 2015 08:25:33 BieZax wrote:
> Валентин Бартенев Wrote:
> -------------------------------------------------------
> > On Thursday 18 June 2015 12:05:45 BieZax wrote:
> > > Валентин Бартенев Wrote:
> > > -------------------------------------------------------
> > > > On Thursday 18 June 2015 05:35:25 BieZax wrote:
> > > > > Валентин Бартенев Wrote:
> > > > > -------------------------------------------------------
> > > > > > On Wednesday 17 June 2015 10:59:59 BieZax wrote:
> > > > > > > Поэксперементировал  еще  немного, но  пока не получается понять,
> > > > > > > где затык.  Конфиг   nginx:
> > > > > > [..]
> > > > > > > 
> > > > > > > Сократил  размер файла  до 1  Кб 
> > > > > > > LA ~5  при  16  ядрах
> > > > > > > IO   в порядке,   загрузка сети  около 130 мегабит/c
> > > > > > > 
> > > > > > 
> > > > > > А на клиенте?  Упираться вполне может клиент, таким образом вы будете
> > > > > > тестировать не производительность nginx, а производительность клиента.
> > > > > > 
> > > > > > --
> > > > > > Валентин Бартенев
> > > > > > _______________________________________________
> > > > > > nginx-ru mailing list
> > > > > > nginx-ru at nginx.org
> > > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> > > > > 
> > > > > Без   внутреннего   перенаправления пролетает  30000rps, с перенаправлением
> > > > >  ~13 тыс.  Логично предположить ,что   клиент  тут не при делах. 
> > > > >  Из интересного:    кол-во  подключений  всегда  около  30к, может во 
> > > > > фряхе(9.3) какой-то лимит  по соединениям, о котором я не знаю? На линуксе 
> > > > >   проблема не  повторяется.
> > > > > 
> > > > 
> > > > Из этого нельзя такого предположить.  Это может просто говорить отом,
> > > > что клиент находится в зависимости от задержек при обработке ответов и не
> > > > пытается нагружать сервер максимальным количеством запросов.
> > > > 
> > > > Так, для сравнения, у меня только 4 ядра и далеко не серверных, на 1кб
> > > > файле:
> > > > 
> > > > Running 5m test @ http://127.0.0.1:8888/1k.html
> > > >   4 threads and 10000 connections
> > > >   Thread Stats   Avg      Stdev     Max   +/- Stdev
> > > >     Latency   782.79ms    1.07s    4.95s    81.36%
> > > >     Req/Sec    86.61k    19.39k  223.51k    80.68%
> > > >   103239033 requests in 5.00m, 121.34GB read
> > > > Requests/sec: 344017.77
> > > > Transfer/sec:    414.02MB
> > > > 
> > > > Как видите, с вашими 30000rps на 16 ядрах едва ли вы можете упираться
> > > > в nginx.
> > > > 
> > > > Это либо сеть, либо клиент, либо что-то еще в системе.
> > > > 
> > > > --
> > > > Валентин Бартенев
> > > > _______________________________________________
> > > > nginx-ru mailing list
> > > > nginx-ru at nginx.org
> > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> > > 
> > > То, что  нжинкс не причем, это  понятно, т.к.  на линуксе  с тем  же
> > > конфигом все  замечательно работает.
> > >  Потестил  еще wrk, вот результат :(
> > > 
> > > Без перенаправления
> > > Running 5m test @ http://192.168.1.1/index.html
> > >   16 threads and 30000 connections
> > >   Thread Stats   Avg      Stdev     Max   +/- Stdev
> > >     Latency   739.14ms  334.20ms   2.00s    81.32%
> > >     Req/Sec     1.79k   365.07    16.54k    79.40%
> > >   8476672 requests in 5.00m, 16.70GB read
> > >   Socket errors: connect 1771, read 2975, write 636, timeout 423212
> > > Requests/sec:  28246.05
> > > Transfer/sec:     56.98MB
> > > 
> > > С  перенаправлением:
> > > Running 5m test @ http://192.168.1.1/index.html
> > >   16 threads and 30000 connections
> > >   Thread Stats   Avg      Stdev     Max   +/- Stdev
> > >     Latency   146.66ms  238.77ms   2.00s    90.72%
> > >     Req/Sec   598.93    169.07     3.39k    71.40%
> > >   2845012 requests in 5.00m, 3.39GB read
> > >   Socket errors: connect 1197, read 1546, write 6297, timeout 1435215
> > >   Non-2xx or 3xx responses: 2845012
> > > Requests/sec:   9480.29
> > > Transfer/sec:     11.56MB
> > > 
> > 
> > 
> > Обратите внимание на количество ошибок, о которых сообщает wrk в ваших
> > результатах.
> > 
> > Явно что-то не так с настройками.  А во втором случае еще и "Non-2xx
> > or 3xx responses".
> > 
> > --
> > Валентин Бартенев
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 
> Потестировал  с линукса на  фрю   и  с фри на  линукс (железо идентичное), 
> с  еренаправлением внутри:
> 
> Фря-линукс :
>  wrk  -d 1m  -t 16 -c 30000 http://192.168.1.2/index.html
> Running 1m test @ http://192.168.1.2/index.html
>   16 threads and 30000 connections
>   Thread Stats   Avg      Stdev     Max   +/- Stdev
>     Latency   310.94ms  416.12ms   2.00s    84.95%
>     Req/Sec     1.80k     1.12k   10.38k    67.54%
>   1713774 requests in 1.00m, 2.07GB read
>   Socket errors: connect 0, read 755, write 30669, timeout 191934
>   Non-2xx or 3xx responses: 37920
> Requests/sec:  28519.58
> Transfer/sec:     35.28MB
> При этом нагрузка на сервер весьма  ощутимая  по  процу.
> 
> с линукса на фрю:
> ./wrk  -d 1m  -t 16 -c 30000 http://192.168.1.1/index.html
> Running 1m test @ http://192.168.1.1/index.html
>   16 threads and 30000 connections
>   Thread Stats   Avg      Stdev     Max   +/- Stdev
>     Latency   167.12ms  314.70ms   2.00s    88.50%
>     Req/Sec     1.18k   517.39    11.84k    81.42%
>   1097293 requests in 1.00m, 2.10GB read
>   Socket errors: connect 1188, read 5508, write 3308, timeout 338681
>   Non-2xx or 3xx responses: 103609
> Requests/sec:  18257.50
> Transfer/sec:     35.74MB
> Затык не понятно где. 
> 
> Non-2xx or 3xx responses: 103609 -  bad  gw  при   запрросе  через
> 127.0.0.1.
> Бэклог  пустой.
> 
> 
> Есть идеи  почему  фря так сильно  проигрывает при прочих равных ?
> 

Пока не донастраиваете обе системы до того, чтобы не было ошибок - нельзя
утверждать, что что-то чему-то проигрывает.

У вас еще размеры ответов похоже разные.  В первом случае:
1713774 requests in 1.00m, 2.07GB read

Во втором:
1097293 requests in 1.00m, 2.10GB read

Как так получилось, что запросов в полтора раза меньше, а прочитано было
даже больше?

Transfer/sec примерно одинаковый.

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru