Автор (https://github.com/jakubkulhan/node-spray-bench) почему-то решил сравнивать некластеризованный Node.js и Spray.io. Естественно, что Node.js сильно проигрывал. Пришлось исправить ошибку и кластеризовать ноду (https://github.com/olegsmith/node-spray-bench). Ну и в догонку добавить Erlang, чтобы были представлены все ключевые виртуальные машины.
Тесты на моем макбуке Mid 2011 показали:
1) Erlang и кластерный Node.js показывают числа одного порядка.
2) Spray.io при увеличенной конкурентности будет побыстрее Erlang и кластерного Node.js раза в полтора-два.
3) у Spray.io ниже средняя латентность, но сильно хуже стандартное отклонение
PS: Автор переименовал репо https://github.com/jakubkulhan/hit-server-bench и добавил http-kit на clojure, который показал неожиданно высокую производительность и маленькое стандартное отклонение латентности. Будем смотреть.
Node
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 116.22us 77.97us 5.97ms 99.52%
Req/Sec 7.95k 546.35 8.67k 75.03%
74852 requests in 10.00s, 10.42MB read
Requests/sec: 7487.30
Transfer/sec: 1.04MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 521.68us 1.39ms 44.86ms 99.24%
Req/Sec 10.26k 1.97k 14.44k 68.55%
192574 requests in 10.00s, 26.81MB read
Requests/sec: 19258.40
Transfer/sec: 2.68MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.06ms 3.31ms 37.70ms 89.96%
Req/Sec 2.41k 1.32k 7.00k 51.13%
193808 requests in 10.00s, 26.99MB read
Requests/sec: 19378.43
Transfer/sec: 2.70MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.60ms 4.97ms 36.03ms 64.39%
Req/Sec 1.10k 661.64 5.18k 72.07%
183343 requests in 10.00s, 25.53MB read
Requests/sec: 18328.81
Transfer/sec: 2.55MB
Spray.io
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 125.49us 33.17us 2.54ms 98.52%
Req/Sec 7.24k 507.78 8.11k 75.55%
68564 requests in 10.00s, 9.35MB read
Requests/sec: 6856.59
Transfer/sec: 0.94MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.59ms 12.91ms 140.62ms 98.93%
Req/Sec 13.30k 3.26k 25.67k 87.42%
235621 requests in 10.00s, 32.13MB read
Requests/sec: 23562.77
Transfer/sec: 3.21MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.73ms 35.13ms 155.83ms 93.35%
Req/Sec 3.77k 1.48k 20.44k 88.13%
347999 requests in 10.00s, 47.46MB read
Requests/sec: 34804.40
Transfer/sec: 4.75MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.87ms 8.87ms 78.06ms 97.79%
Req/Sec 1.99k 490.15 15.78k 88.91%
372251 requests in 10.00s, 50.77MB read
Requests/sec: 37237.53
Transfer/sec: 5.08MB
Erlang
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 140.07us 33.36us 1.26ms 97.17%
Req/Sec 6.75k 517.40 8.11k 73.23%
63944 requests in 10.00s, 7.50MB read
Requests/sec: 6394.53
Transfer/sec: 768.09KB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 618.15us 295.73us 7.04ms 77.63%
Req/Sec 8.18k 839.32 10.78k 74.76%
155008 requests in 10.00s, 18.18MB read
Requests/sec: 15501.56
Transfer/sec: 1.82MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.27ms 2.05ms 18.03ms 69.48%
Req/Sec 1.62k 298.53 3.50k 73.85%
154527 requests in 10.00s, 18.13MB read
Requests/sec: 15454.23
Transfer/sec: 1.81MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.97ms 4.64ms 40.03ms 68.73%
Req/Sec 763.11 163.90 1.50k 70.78%
147900 requests in 10.00s, 17.35MB read
Requests/sec: 14792.68
Transfer/sec: 1.74MB
понедельник, февраля 17, 2014
суббота, февраля 08, 2014
Ссылки 2014-02
http://benninger.ca/posts/akkascala-deploying-an-actor-remotely/
AKKA+SCALA: DEPLOYING AN ACTOR REMOTELY
http://benninger.ca/posts/creating-an-akka-actor-from-a-dynamically-loaded-jar-file-in-scala/
CREATING AN AKKA ACTOR FROM A DYNAMICALLY LOADED JAR FILE IN SCALA
http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/
ASK, TELL AND PER-REQUEST ACTORS
http://tuxdna.wordpress.com/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/
A simple Scala parser to parse 44GB Wikipedia XML Dump
http://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/
SERVER-SIDE CLUSTERING OF GEO-POINTS ON A MAP USING ELASTICSEARCH
https://github.com/triforkams/geohash-facet
Geohash Facet Plugin for elasticsearch
https://groups.google.com/forum/#!msg/akka-user/8fZ75MlVEYc/YaZGsysG8mcJ
В Akka начались подвижки в направлении Rx
http://danielwestheide.com/blog/2013/01/23/the-neophytes-guide-to-scala-part-10-staying-dry-with-higher-order-functions.html
Staying DRY With Higher-order Functions
AKKA+SCALA: DEPLOYING AN ACTOR REMOTELY
http://benninger.ca/posts/creating-an-akka-actor-from-a-dynamically-loaded-jar-file-in-scala/
CREATING AN AKKA ACTOR FROM A DYNAMICALLY LOADED JAR FILE IN SCALA
http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/
ASK, TELL AND PER-REQUEST ACTORS
http://tuxdna.wordpress.com/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/
A simple Scala parser to parse 44GB Wikipedia XML Dump
http://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/
SERVER-SIDE CLUSTERING OF GEO-POINTS ON A MAP USING ELASTICSEARCH
https://github.com/triforkams/geohash-facet
Geohash Facet Plugin for elasticsearch
https://groups.google.com/forum/#!msg/akka-user/8fZ75MlVEYc/YaZGsysG8mcJ
В Akka начались подвижки в направлении Rx
http://danielwestheide.com/blog/2013/01/23/the-neophytes-guide-to-scala-part-10-staying-dry-with-higher-order-functions.html
Staying DRY With Higher-order Functions
Подписаться на:
Сообщения (Atom)
Мой список блогов
-
-
Notes on LLMapгод назад
-
Строительноегод назад
-
Будем честными ...год назад
-
Highscalability is Up For Sale2 года назад
-
-
-
-
-
Go Composition vs Inheritance6 лет назад
-
Welcome, Prashanth!6 лет назад
-
Top Developer Collaboration Tools6 лет назад
-
Транспортный микс7 лет назад
-
-
Исповедь скрам тестера7 лет назад
-
-
Running JRuby on the Graal JIT7 лет назад
-
-
-
Скрепкус гигантус8 лет назад
-
Мои твиты8 лет назад
-
-
-
6990 рублей9 лет назад
-
-
Смирение и американские боеголовки9 лет назад
-
-
-
-
-
-
Measuring Activity Startup Time10 лет назад
-
-
-
-
-
Рассказ жителя Мариуполя из первых рук12 лет назад
-
-
Grails - Convention over Configuration12 лет назад
-
$ (dollar) prefix for angularJS12 лет назад
-
-
-
-
Блог закрыт!12 лет назад
-
-
Websphere portal. Create pages programmatically13 лет назад
-
-
-
Tweetbot для Mac13 лет назад
-
Scala-IO Core: Unmanaged Resources13 лет назад
-
Использование шрифтов в JasperReports13 лет назад
-
Аудит менеджмента качества13 лет назад
-
-
Windows 8 Camp14 лет назад
-
-
-
Переезд14 лет назад
-
CSP15 лет назад
-
-
Графоманам15 лет назад
-
ListView Multiple Selection 215 лет назад
-
-
-
UnitOfWork & IdentityMap17 лет назад
-
-
-
-
-
-
-
-
-