Alexey
17.02.2017
11:27:36
пойди бенчмарк напиши =)
Alex
17.02.2017
11:27:38
запусти и проверь, тысяч 500 тредов
Vladimir
17.02.2017
11:27:40
Alex иногда я думаю, может зря я тебя разбанил? :)
N
17.02.2017
11:27:47
Google
Alex
17.02.2017
11:28:14
с другом было дело баловались
Alexey
17.02.2017
11:28:42
ну и сколько занимает создание треда?
Alex
17.02.2017
11:29:27
я создание каждого треда по времени не замерял. Создавали по 12 тысяч. У меня уходило порядка 15-18секунд минимум
Треды линупсовые хорошие где нужен быстрый io
т.к крутятся в системном планировщике
Alexey
17.02.2017
11:30:04
100к тредов за десять минут это 6 миллисекунд на тред (6000000 наносекунд карл!!11), за это время можно очень многое сделать
Alex
17.02.2017
11:30:11
а инициализация все равно не многим шустрее fork классического
Поэтому для сотен тысяч тредов взял бы язык с зелеными потоками
Alexey
17.02.2017
11:30:43
мне кажется ты не понимаешь о чём ты говоришь
Alex
17.02.2017
11:30:53
И не долбил ядро сотнями тысяч системных вызовов, не говоря про память
Vladimir
17.02.2017
11:31:20
Sergey
17.02.2017
11:31:27
Google
Vladimir
17.02.2017
11:31:42
Alex
17.02.2017
11:32:37
Sergey
17.02.2017
11:34:31
Alexey
17.02.2017
11:34:32
понятно, ещё один golangfanboy
Alex
17.02.2017
11:34:35
Alex
17.02.2017
11:34:37
просто кто-то выбирает инстурмент под задачу
а кто то "пишу на том что знаю"
Alexey
17.02.2017
11:35:09
дада, я в школе тоже "на плюсах писал" =_)
Alex
17.02.2017
11:35:54
Sergey
17.02.2017
11:36:31
>лучшем IO за счет того что вся эта масса в системном планировщике висит
а вот этот момент давайте подробнее (:
Alexey
17.02.2017
11:37:22
мне кажется там про асинхронщиность речи не шло =) там был абстрактный сервер в вакууме, и ceph судя по хостнейму =)
Alex
17.02.2017
11:37:33
Sergey
17.02.2017
11:37:42
Михаил
17.02.2017
11:38:00
Alex
17.02.2017
11:38:52
Поэтому лень даже мусолить про это
Alexey
17.02.2017
11:39:41
я тоже всегда говрю: главное знать термины! тогда ими можно давить в любом аргументе! =)
Alex
17.02.2017
11:40:11
Google
Alex
17.02.2017
11:40:17
что тут такого-то)
Alexey
17.02.2017
11:40:29
я не говорил что в одной
Alex
17.02.2017
11:40:47
Ну ок)
Sergey
17.02.2017
11:40:47
Alexey
17.02.2017
11:41:00
я говорил про кол-во тасков в системе -- я старался быть точным в своей терминологии
к слову об сотне тысяч тредов в нескольких процессах -- есть идеи почему CDN'ы часто терминируют TLS на apache а не nginx? =)))
(пример - Fastly)
Sergey
17.02.2017
11:42:44
Alexey
17.02.2017
11:43:07
Hackru
17.02.2017
11:43:10
наверное потому что напрефоркали на всю память процессов и сидят на жопе ровно
Alex
17.02.2017
11:43:31
Alexey
17.02.2017
11:43:50
Sergey
17.02.2017
11:44:02
близко, но не совсем
тогда объясни. интересно.
не вижу глубокой разницы в таком режиме, если nginx'у сделать много воркеров (заметно больше, чем ядер) и apache с префорком
Alexey
17.02.2017
11:50:19
к слову об сотне тысяч тредов в нескольких процессах -- есть идеи почему CDN'ы часто терминируют TLS на apache а не nginx? =)))
так вот, твоя прекрасная event-ориентированная идеология идёт, мягко говоря, по пизде, если event-loop блокируется, но блокироваться он может не только на IO, но ещё и на CPU, например при большём потоке TLS хендшейков(а это ~2мс блокировки на каждый, для RSA2048) nginx просто перестаёт обслуживать соединения, только и занимаясь handshake'ами. И тоже самое для любой cpu-intensive штуки. Gzip -9? Brotli -11? - эти шткуки всегда должны быть в отдельных потоках, чего зилоты event-oriented парадигмы часто не понимают.
если сильно увеличить кол-во воркеров, там появлляется другая проблема - нагрузка на них начинает очень не ровно разбазываться, что скорее linux-related проблема
Sergey
17.02.2017
11:52:17
так вот, твоя прекрасная event-ориентированная идеология идёт, мягко говоря, по пизде, если event-loop блокируется, но блокироваться он может не только на IO, но ещё и на CPU, например при большём потоке TLS хендшейков(а это ~2мс блокировки на каждый, для RSA2048) nginx просто перестаёт обслуживать соединения, только и занимаясь handshake'ами. И тоже самое для любой cpu-intensive штуки. Gzip -9? Brotli -11? - эти шткуки всегда должны быть в отдельных потоках, чего зилоты event-oriented парадигмы часто не понимают.
да, да, да.
я потому и говорю про волосатое время, потому что ssl - долго и event-loop в это время простаивает.
но почему увеличение числа воркеров нджинкса действует хуже, чем префорк?
Alexey
17.02.2017
11:53:42
Google
Alex
17.02.2017
11:53:51
производительность io не связана с тем, кто дергает сисколл (процесс, тред, блаблабла).
Согласен, но ты здесь не учитываешь другого. Зависимость тут обратная скорее. Если ты сокеты те же раскидаешь по потокам системного уровня, то за счет большего процессорного времени чтение происходил бы быстрее, чем если бы потоки были пользовательского уровня и спрятаны были бы за свой планировщик. Это сильный оверхед. Поэтому, как гвоорят, если в го стартануть несколько процессов, то планировщик его начинает сильно тупить, IO проседает. Я тут скорее сравнивал потоки системного и пользовательского уровней
Alexey
17.02.2017
11:54:49
> Поэтому, как гвоорят, если в го стартануть несколько процессов, то планировщик его начинает сильно тупить, IO проседает
а как связаны между собой разные golang процессы?
Sergey
17.02.2017
11:57:14
(так как кол-во воркеров меняеться и hashtable превращается в тыкву)
гы, забавный эффект. не думал о нем.
а это, раз уж ты тут, получается с reuseport, если не париться о reload'ах, все становится хорошо?
я буквально недавно тестировал reuseport на ssl и нагрузка идеально ровная на ядра. если добавить еще cpu affinity на воркеры, то выглядит совсем хорошо.
Alex
17.02.2017
11:58:10
Alexey
17.02.2017
11:58:11
nikoinlove
17.02.2017
11:59:33
думаю это важно только на пограничных ситуациях. я тестировал что пара тыщ ссл хендшейков в секунду в нжинкс вообще никак на все остальные ответы не влияют
Alexey
17.02.2017
12:00:01
nikoinlove
17.02.2017
12:00:08
а сколько нагрузка?
Alex
17.02.2017
12:00:16
Quentin
17.02.2017
12:00:39
Ребята срочно нужна помощь
Как пользоваться ботом TempMail. Как посмотреть эту чертову почту? Как войти в этот ящик? Помогите!!!!!???
nikoinlove
17.02.2017
12:00:56
дуал ксеон в 48 ядер с трудом тянет 7
Hackru
17.02.2017
12:00:56
это канал про аниме?
Alexey
17.02.2017
12:01:10
а сколько нагрузка?
нагрузка это 60%+ от максимума - на Xeon v3 это примерно 1500+ в секунду для RSA2k
nikoinlove
17.02.2017
12:01:43
если тебя заботит производительность кода на 99%-ной нагрузке, то ты что-то делаешь не так
Alexey
17.02.2017
12:01:53
Sergey
17.02.2017
12:01:54
Alexey
17.02.2017
12:02:39
Google
nikoinlove
17.02.2017
12:03:16
в случае ддосов речь о порядках запаса
а не о двух процентах
зачем кстати ддосить сдн?:)
Alexey
17.02.2017
12:03:58
к слову а всинхронных хендшейках -- вот тут был неплохой тред на эту тему(патчи прилагаются), но я вроде скидывал уже http://mailman.nginx.org/pipermail/nginx-devel/2016-November/009158.html
Alex
17.02.2017
12:04:50
nikoinlove
17.02.2017
12:04:53
вы какую-то лабораторную задачу решаете кажется:)
Alexey
17.02.2017
12:05:56
зачем кстати ддосить сдн?:)
ну ДДоСят сайт игровой или продажной тематики -- все в щоке -- ген дир рвёт волосы -- быстро ищую в интернете -- оказывается если положить сайт за cloudflare то он начнёт тянуть DDoS, тут же подписывают контракт, переводят dns'ы на CF и вуаля - аттакер ддосит CDN.
Alex
17.02.2017
12:06:23
А ведь с евентами реально проблема есть. Мы сталкивались. Евенты идеально подходят для относительно простых задач, как пример, прокси сервер
nikoinlove
17.02.2017
12:06:26
ну все-таки cf не совсем cdn :)
Alexey
17.02.2017
12:06:58
ну щас любой CDN практически тебе может ddos-shield дать
тупо потому что это очень денежная ниша
Alex
17.02.2017
12:07:52
не делайте популярных сервисов, не зарабатывайте на проектах
и не будут Вас ддосить
?все просто пацаны
Alexey
17.02.2017
12:08:14
Sheridan
17.02.2017
12:08:42
Gleb
17.02.2017
12:08:59
Блиа. Зачем опять какие-то тупые картинки тут?
Alexey
17.02.2017
12:09:19
кукла малолетка
Sheridan
17.02.2017
12:09:19
Чтобы тебя позлить конечно
Gleb
17.02.2017
12:09:43
Alexey
17.02.2017
12:09:54
ноги - ок, пресидает значит!