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

BieZax nginx-forum at nginx.us
Tue Jun 23 13:05:23 UTC 2015


Валентин Бартенев Wrote:
-------------------------------------------------------
> 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 mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
После того, как  кол-во ответов перестает   упираться  в   сеть,  то  обьем 
забираемого  файла  практически не    влияет  на результат, но я  на обоих 
машинах  сделал  одинаковый.  
Вот новые  тесты, уменьшил  кол-во   запросов, что практически  избавило от
ошибок

Линукс-фря 3000  соединений на поток:

Running 1m test @ http://192.168.1.1/index.html
  16 threads and 3000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   111.67ms  137.60ms   1.22s    65.17%
    Req/Sec     0.93k   437.05     2.86k    65.48%
  883290 requests in 1.00m, 1.24GB read
  Socket errors: connect 0, read 0, write 0, timeout 24550
  Non-2xx or 3xx responses: 1303
Requests/sec:  14710.81
Transfer/sec:     21.20MB

Линукс-фря 1500  на поток:
Running 1m test @ http://192.168.1.1/index.html
  16 threads and 1500 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    16.88ms   45.15ms   1.22s    94.82%
    Req/Sec     1.17k   352.80     3.07k    69.14%
  1115425 requests in 1.00m, 1.57GB read
  Socket errors: connect 0, read 0, write 0, timeout 23235
  Non-2xx or 3xx responses: 522
Requests/sec:  18580.66
Transfer/sec:     26.80MB



Фря-линукс 4000 соеднений на поток:
Running 1m test @ http://192.168.1.2/index.html
  16 threads and 4000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   202.53ms  308.46ms   1.86s    81.94%
    Req/Sec     3.08k   721.48    10.06k    84.02%
  2938683 requests in 1.00m, 3.61GB read
  Socket errors: connect 0, read 0, write 1145, timeout 10874
  Non-2xx or 3xx responses: 119
Requests/sec:  48927.38
Transfer/sec:     61.53MB

фря-линукс  3000 соединений на поток:
Running 1m test @ http://192.168.1.2/index.html
  16 threads and 3000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   208.17ms  314.20ms   1.85s    81.23%
    Req/Sec     3.11k   798.86    11.95k    88.11%
  2967047 requests in 1.00m, 3.64GB read
  Socket errors: connect 0, read 0, write 596, timeout 6941
  Non-2xx or 3xx responses: 5
Requests/sec:  49402.03
Transfer/sec:     62.13MB

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,259544,259805#msg-259805



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