Pull to refresh
26
0
Василий Сошников @dedokOne

Пользователь

Send message
Архитектурная, mpm не решает до конца проблемы С10K. У apache все же легаси. NginX изначально был event-driven и асинхронным. Так же у апача нет нормальных stream (upstream'ов — в терминах NginX).
Эх! Опоздал, а так хотелось попасть и послушать :(
Да, верно, tarantool без commit на диск (в режиме wal_mode=write|sync) «сделано» не скажет.
Что go (N — core) tnt (1 — core), nginx (1 — core).
Единственно чтобы было еще неплохо в графиках указать данные по CPU. А в коментах народ не найдет
угу все уже увидил что тут 1 там N :)
А ты число workers уменьшил до 1-го?
А если на go backend через proxy_pass с keepalive?
угу из-за протокола, там все всегда в result возвращается(пока никто по другому не хотел), и с id для мультепликсирования.
telegram, могу ссылку скинуть в личку.
надо на epoll попробовать это все с kqueue, завтра вчером с epoll, сегодня нет возможности, протестирую скину все результаты и trace будем считать accept и т.д.
А вообще гоу к нам в чат :)
Копаюсь почему — самому объяснить интересно стало.
Забавный момент, пустил go(во все потоки) через nginx(1 worker) proxy_pass с keepalive получил:
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) говорим?:)
ИМХО Сравнение очень даже интересно, с учетом что тут не только DB тестировалось, но и способы доставки.
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, очень понравилось.
Не-не, данные уйдут блобом. Т.е. socket.send([ CMD1, CMD2 ]) < — псевокдо.
Чтобы не напрягать сеть можно посылать 'комманды' (в тарантуле правда нет такого термина) пачками по N, если у вас клиент асинхронный и вам не нужен пока результат выполнения 'пачки' то, минимум горлышков в execution на клиенте будет.
Насколько мне известно таких сравнений нет.
Прям для «совсем для начинающих» доки очень мало, известная беда :(
Могу посоветовать: tarantool.org/doc/getting_started.html
Если будет вопрос, можно сюда запостить groups.google.com/forum/#!forum/tarantool
Ничего такого не хотел, просто предлагаю тебе провести исследование, если у тебя будет желание, мне бы было интересно его прочесть.
Мой пойнт в том что нападать и нагнетать негатив не конструктивно, конструктивно если ты найдешь какие-то недостатки и покажешь их нам, но сравнивать так легко с Mozilla не могу я (и другие тоже) и не понимаю что ты этим хочешь сказать и как это поможет нам…

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity