Почему плохая производительность Netty?

я использовал этот пример < /a> для теста производительности

кто-то говорит, что производительность netty настолько высока. Он может обрабатывать более 1 00 000 одновременных запросов в секунду (см. ссылки ниже).

http://www.jboss.org/netty/performance/20090303-mheath.html

http://www.jboss.org/netty/performance/20090607-asalihefendic.html

но когда я пытаюсь использовать этот пример, он дает мне только 107 запросов в секунду с 1000 одновременных запросов.

ab -n 10000 -c 1000 http://localhost:8080/

Server Software:
Server Hostname:        localhost

Server Port:            8080

Document Path:          /

Document Length:        230 bytes

Concurrency Level:      1000

Time taken for tests:   92.784 seconds

Complete requests:      10000

Failed requests:        0
Write errors:           0

Total transferred:      2900000 bytes

HTML transferred:       2300000 bytes

Requests per second:    107.78 [#/sec] (mean)

Time per request:       9278.431 [ms] (mean)

Time per request:       9.278 [ms] (mean, across all concurrent requests)

Transfer rate:          30.52 [Kbytes/sec] received

подскажите где проблема

Может кто-нибудь поделиться каким-нибудь веб-примером или ссылкой на тест производительности netty.


person jayesh    schedule 28.07.2011    source источник
comment
Сервер, способный обрабатывать 1 000 000 входящих запросов в секунду, — это не то же самое, что сервер, способный обрабатывать 1 000 000 входящих запросов И способный производить 1000 одновременных запросов. Вам нужно несколько компьютеров, которые не являются сервером, чтобы выполнить такой тест.   -  person Dan Grossman    schedule 28.07.2011
comment
так как я могу улучшить входящий запрос/сек. если какой-либо другой сервер доступен для обработки большего количества входящих запросов. Я также пытаюсь использовать nodejs, это дает мне 3000 запросов в секунду.   -  person jayesh    schedule 28.07.2011
comment
Вы даже не измерили, сколько входящих запросов в секунду вы можете обработать (это не то, как вы это проверяете), так как вы собираетесь улучшить то, чего не знаете?   -  person Dan Grossman    schedule 28.07.2011
comment
Пожалуйста, проигнорируйте комментарий выше. Спасибо за все ваши ответы. Резюме: я пытаюсь проверить netty с большим размером параллельного запроса и подтвердить его оптимальную производительность на экземпляре EC2.   -  person jayesh    schedule 28.07.2011
comment
Я пытался выполнить одновременный запрос 1K до общего запроса 100K и посмотреть, как он работает с приложением hello world. Я хотел собрать эту статистику и сравнить с NodeJS, поэтому я поделился несколькими ссылками выше, которые нашел в Интернете. Может ли кто-нибудь поделиться каким-либо веб-примером или ссылкой на эталон производительности netty, например zgadzaj.com/ Спасибо,   -  person jayesh    schedule 28.07.2011
comment
Вы фактически проверили, насколько хорошо вы можете запускать ab вместо того, насколько хорошо netty может обрабатывать запросы. Ваша производительность была ограничена тем, насколько быстро вы могли отправлять запросы, а не тем, сколько вы могли получить. То, что большая часть мощности вашего процессора будет генерировать запросы, также сделает результаты бесполезными для того, сколько запросов вы можете обработать, получая на том же экземпляре. Вам нужно делать запросы с другого компьютера, и вам, вероятно, понадобится несколько компьютеров, чтобы заполнить инстанс EC2 и посмотреть, какова его емкость на самом деле. Игнорируйте это, только если хотите оставаться в неведении.   -  person Dan Grossman    schedule 28.07.2011
comment
Ссылки только утверждали, что у них 100 000 открытых подключений, а не 100 000 запросов в секунду. Последнее практически невозможно. Однако 100 запросов в секунду — это слишком мало. Каково базовое число, когда параллелизм равен 1?   -  person irreputable    schedule 28.07.2011


Ответы (1)


У вас нет отброшенных запросов, и я бы провел тест с помощью Siege и сравнил его с другими аналогичными настройками. И какую систему вы используете? Возможно, вам также потребуется увеличить дескриптор файла, чтобы это работало. Также вам необходимо настроить JVM перед выполнением тестов. Что-то в этом роде:

-server -Xms2048m -Xmx2048m -XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods
person Alfred    schedule 28.07.2011