Архитектурная, mpm не решает до конца проблемы С10K. У apache все же легаси. NginX изначально был event-driven и асинхронным. Так же у апача нет нормальных stream (upstream'ов — в терминах NginX).
угу из-за протокола, там все всегда в result возвращается(пока никто по другому не хотел), и с id для мультепликсирования.
telegram, могу ссылку скинуть в личку.
надо на epoll попробовать это все с kqueue, завтра вчером с epoll, сегодня нет возможности, протестирую скину все результаты и trace будем считать accept и т.д.
А вообще гоу к нам в чат :)
Согласен — насчет ядер.
Да надо несколько tarantool запускать, из либо sharding(https://github.com/tarantool/shard) в tarantoolы ходить, или делать хитрый балансинг на уровне nginx upstreams (писать на lua/ngscript).
Репликация скорей всего не подойдет, мы же не про put(const, const) говорим?:)
tarantool http не оптимизирован под большие нагрузки, для этого есть nginx upstream http://github.com/tarantool/nginx_upstream_module
Надо собрать nginx с этим модулем, взять master пока, тег не добавил.
Немного под хачил lua, чтобы через nginx можно было ходить
https://gist.github.com/dedok/bd6b32914dbbedf3d9a78bd50ad83f48
nginx.conf — он с новыми фичами
https://gist.github.com/dedok/d84b82b2863b778f47ca05c17cbf3b25
Ну и разбалансировать либо на 1-н, как ты сделал, но выставить go runtime.GOMAXPROCS(1)
Либо балансировать на некое кол-во cpu.
С nginx CPU подлетит, но, как правило, у всех стоит nginx перед backend'ом.
Так что его в потребителях можно учесть :)
Думаю, так будет немного по научному.
Кстати спасибо автору, благодаря статье, первый раз по трогал go, очень понравилось.
Чтобы не напрягать сеть можно посылать 'комманды' (в тарантуле правда нет такого термина) пачками по N, если у вас клиент асинхронный и вам не нужен пока результат выполнения 'пачки' то, минимум горлышков в execution на клиенте будет.
Ничего такого не хотел, просто предлагаю тебе провести исследование, если у тебя будет желание, мне бы было интересно его прочесть.
Мой пойнт в том что нападать и нагнетать негатив не конструктивно, конструктивно если ты найдешь какие-то недостатки и покажешь их нам, но сравнивать так легко с Mozilla не могу я (и другие тоже) и не понимаю что ты этим хочешь сказать и как это поможет нам…
telegram, могу ссылку скинуть в личку.
А вообще гоу к нам в чат :)
wrk -t 10 -c 100 -d 5 --latency http://127.0.0.1:8081/go
Running 5s test @ http://127.0.0.1:8081/go
10 threads and 100 connections
Thread Stats Avg Stdev Max ± Stdev
Latency 23.76ms 21.26ms 165.45ms 94.74%
Req/Sec 477.19 106.88 594.00 87.35%
Latency Distribution
50% 19.23ms
75% 19.93ms
90% 21.46ms
99% 153.41ms
16361 requests in 5.10s, 2.59MB read
Requests/sec: 3206.89 (максимум ~5к было — скачет CPU — вырубать все лень, мак домашний!)
Transfer/sec: 519.87KB
Пусканул tarantool (tnt_pass)
Running 5s test @ http://127.0.0.1:8081/tnt
10 threads and 100 connections
Thread Stats Avg Stdev Max ± Stdev
Latency 7.48ms 2.44ms 18.02ms 74.22%
Req/Sec 1.33k 386.69 5.49k 86.45%
Latency Distribution
50% 7.71ms
75% 8.76ms
90% 9.80ms
99% 14.88ms
66431 requests in 5.10s, 13.12MB read
Requests/sec: 13017.25(максимум ~17к было, скачет CPU — вырубать все лень, мак домашний!)
Transfer/sec: 2.57MB
PS keepalive выкрутил, даже dtrace accept сделал
Да надо несколько tarantool запускать, из либо sharding(https://github.com/tarantool/shard) в tarantoolы ходить, или делать хитрый балансинг на уровне nginx upstreams (писать на lua/ngscript).
Репликация скорей всего не подойдет, мы же не про put(const, const) говорим?:)
Надо собрать nginx с этим модулем, взять master пока, тег не добавил.
Немного под хачил lua, чтобы через nginx можно было ходить
https://gist.github.com/dedok/bd6b32914dbbedf3d9a78bd50ad83f48
nginx.conf — он с новыми фичами
https://gist.github.com/dedok/d84b82b2863b778f47ca05c17cbf3b25
Ну и разбалансировать либо на 1-н, как ты сделал, но выставить go runtime.GOMAXPROCS(1)
Либо балансировать на некое кол-во cpu.
С nginx CPU подлетит, но, как правило, у всех стоит nginx перед backend'ом.
Так что его в потребителях можно учесть :)
Думаю, так будет немного по научному.
Кстати спасибо автору, благодаря статье, первый раз по трогал go, очень понравилось.
Могу посоветовать: tarantool.org/doc/getting_started.html
Если будет вопрос, можно сюда запостить groups.google.com/forum/#!forum/tarantool
Мой пойнт в том что нападать и нагнетать негатив не конструктивно, конструктивно если ты найдешь какие-то недостатки и покажешь их нам, но сравнивать так легко с Mozilla не могу я (и другие тоже) и не понимаю что ты этим хочешь сказать и как это поможет нам…