LINUX.ORG.RU

Царю про 10к в надежде перевести дискуссию в конструктив

 ,


11

10

Я не думаю, что кого-то можно впечатлить принципиальной возможностью запустить 10к потоков для обслуживания клиентов. Когда говорят про встанет раком, имеют в виду неоправданную потерю производительности.

Если ты готов померять реальный перформанс, пиши, я налабаю на еполле аналоги твоих тестовых серверов, чтобы не ты один тратил своё время. Меня например больше в всего в контексте этого спора интересует, как поведёт себя сервер с 10к потоков например на 4 ядрах против еполльного на одном таком же ядре, в вариантах без локов и с.

Результаты исследования можешь запостить на ЛОРе и восстановить честь среди пятизвездочных 😝

Начало дискуссии где-то рядом в удаленных по инициативе какого-то наркомана.

PS скорее всего я отвечу не раньше ночи или следующего утра.

★★★★★
Ответ на: комментарий от anonymous

ты хоть какой код тут запостишь? или же только и будешь рассказывать, что пока что «не играешь серьезно», а вот когда начнешь играть серьезно, тогда ващще огого!

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 2)
Ответ на: комментарий от www_linux_org_ru

Какай код и чего я должен тут постить? Тем более я его уже запостил.

Ну и самое главное - где твой код?

По поводу серьёзности. Хочешь серьёзности - ты знаешь что делать. Откажись от своего шанса.

anonymous
()
Ответ на: комментарий от anonymous

Тем более я его уже запостил.

давай ссылку

Ну и самое главное - где твой код?

я тут себя не рекламирую, так что могу и не постить код (на самом деле я тут больше учусь)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

давай ссылку

Тема основана на мотивах моего кода.

я тут себя не рекламирую, так что могу и не постить код (на самом деле я тут больше учусь)

Слив засчитан. А для того, кто тут только учиться - ты слишком много на себя берёшь. Как минимум требуешь с других то, чего не выполняешь сам.

А так же ставишь условия, которые не выполняешь. Рассуждаешь о «старницах» - выкатывай епулл «на страницах». А не можешь - не предлагай того, чего не можешь. И не выдавай это за решение, либо за аргумент.

Всё просто.

anonymous
()
Ответ на: комментарий от anonymous

Тема основана на мотивах моего кода.

на мотивах какого твоего кода? давай ссылку

А так же ставишь условия, которые не выполняешь. Рассуждаешь о «старницах» - выкатывай епулл «на страницах». А не можешь - не предлагай того, чего не можешь. И не выдавай это за решение, либо за аргумент.

это бред сивой кобылы, хотя бы потому что:

1. код на epoll-е обещал не я

2. код на epoll-е вот тут Царю про 10к в надежде перевести дискуссию в конструктив (комментарий)

3. мои аргументы могут быть основаны на чужих решениях

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от www_linux_org_ru

давай ссылку

Предположу, что речь вот об этом:

https://pastebin.com/RVHfBkuc — код сервера.

https://pastebin.com/xk37uhcS — код клиента.

По поводу кода сервера я задавал Царю вопросы по деталям реализации (Царю про 10к в надежде перевести дискуссию в конструктив (комментарий)), но Царь порвался и внятного ничего не ответил.

Между тем, там есть важный момент: откуда следует, что 10k нитей работают параллельно и одновременно? Я, например, не в курсе, что происходит, если accept для одного и того же серверного сокета параллельно вызывается на нескольких нитях. Возможно, этот accept будет работать как mutex: т.е. когда N нитей одновременно вызовут accept, то все они «заснут», а проснется лишь одна из них при подключении клиента.

Эта единственная проснувшаяся нить быстро вычитает 8 байт, отошлет клиенту 10KiB мусора в ответ (без какого-либо контроля за тем, сколько реально ушло), закроет клиентский сокет и уснет на 10 секунд.

Поскольку вот эти операции чтения и бесконтрольной записи будут происходить очень быстро, то можно предположить, что как только к серверу подключается очередной клиент, то он сразу же обслуживается и отключается. И в реальности активных подключений к серверу может быть не 10k, а всего пара-тройка дестяков (ну сотен). При этом из 10k рабочих нитей в конкретный момент времени лишь малая часть занимается работой, некоторая (большая часть) заблокирована на вызове accept-а и оставшаяся часть (растущая со временем), висит на sleep(10). По сути, при беглом взгляде на царский код, не видно, чтобы 10k нитей действительно бы работали параллельно и действительно бы обслуживали 10k параллельных подключений.

Царская реализация сервера не дает никакой диагностики на этот счет. Ну и царь не представил никаких результатов прогонов своего бенчмарка, так что судить не о чем.

PS. Поскольку часть нитей висит на sleep(10) и эта часть постоянно увеличивается, то кажется, что есть возможность устроить небольшой DDoS царскому серверу: создать больше 10k параллельных подключений (пусть даже с отсылкой этих несчастных 8 байт на сервер) за короткое время (за пару секунд, скажем). По идее, на 10001-ом подключении ответа от царского сервера придется ждать 7-8 секунд, пока первая из нитей выйдет из sleep(10).

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)

Царь. Важно. По поводу невмеянемости некоторых экспертов.

Я уже много лет пытаюсь понять одну вещь.

В рамках темы есть контекст - продемонстрировать возможность применения А. В данном случае решение c10k на тредах. Что собственно я и сделал. Выкатив решение тестовой задачи и бенчмарк к нему.

Смысл этой тестовой задачи - доказать работоспособность подхода.

И смысл вопроса заключается в том - почему эксперты начинают как опровержение выдавать невыполнение( почти всегда необоснованных) условий, которые свойственны совершенно другим задачам?

Допустим, я должен проверить корректность и кол-во отправленных данных - я сделал это клиенте. Какого хрена эксперт приходит и начинаем рассуждать о том, что в его пхп это делает сервер, либо ещё что-то.

Любой бенчмарк - это proof of concept. Он не обязан выполнять какие-то левые условия, он не обязан работать в каких-то левых условиях.

Если у экспертов есть какие-то свидетельства некорректности бенчмарка - они должны их показать и доказать. Чего они, конечно же, не делают. Но прежде - доказать их принадлежность к теме. Чего они так же не делают.

Т.е. Если ты требуешь внесения в бенчмарк какого-то условия - ты должен прежде всего определить основание для него. Т.е. какие причины у тебя есть предполагать то, что это условие повлияет на результат.

Я, да и никто не обязан выполнять подобные, необоснованные условия. Обоснование «я так захотел» - не работает.

Наглядные примеры подобных манипуляций я уже приводил. Допустим - мы измеряем разгон машины X. Приходит очередной эксперт и заявляет - «машина не такого цвета как я хочу - значит измерения не корректны». И если позволить любому балаболу вносить всё новые и новые условия - все измерение и вообще хоть что-то - просто потеряет смысл. Ведь всегда можно придумать условие, которое можно добавить и которое не было соблюдено.

anonymous
()
Ответ на: комментарий от eao197

Эта единственная проснувшаяся нить быстро вычитает 8 байт, отошлет клиенту 10KiB мусора в ответ (без какого-либо контроля за тем, сколько реально ушло), закроет клиентский сокет и уснет на 10 секунд.

насчет мусора — мне кажется *не зря* царь отсылает мусор; я мельком глянул предыдущую дискуссию — мне показалось, что царь держался мнения, что ос должна сбуферизовать выхлоп в сокет, так что тред может сокет безопасно закрыть

я именно этот случай не пробовал, но емнип пробовал заставить линукс держать не очень большие входные буфера (емнип 2Кб или 10Кб) на 1К или больше аксептнутых сокетов, так там линукс просто портил эти входные буфера, вот так!

мне кажется стоит пропатчить царский код, чтобы он выдавал не мусор, и посмотреть, что случиться, когда линуксу придется держать 100К исходящих буферов пусть даже по 10Кбайт (царский сервер должен быть рассчитан на такой сценарий)

царский сервер так же должен принимать во внимание случай, когда объем исходящих буферов, которые должна держать ос, превысит размер оперативки (если tcp со стороны клиента не показывает подтверждения приема из-за случайной или злонамеренной непроходимости сети) — я не вижу ничего в коде, что как-то это обрабатывает, но тут я могу и непонимать что-то

также интересно посмотреть почти симметричный случай — много небольших входящих буферов

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 2)

вау! эксперты невменяемые, а царь вменямый!!!111111111111

спасибо, поржал

ты лучше скажи, что будет, когда линуксу придется держать исходящие буфера по 10Кбайт на *все* 100К незавершенных исходящих соединений?

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)

Немного цифр:

Если мы работаем в один поток то нам на обработку каждого активного соединения потебуется всеголиш около 150 наносекунд. (140 - сискол, ~10 - собственно обработка).

Если мы запустили по потоку на соединение это значит что обработка каждого соединения будет начинатся с выяснения актуального потока исполнения плюс его запуск. Обычно это занимает порядка 4 микросекунд. А потом все теже 150 мс на обработку данных.

Итого мы видим что схема с большим количеством потоков требует просто для обеспечения своей жизнеспособности количество ресурсов большее больше чем на порядок. Плюс проблемы с кешами, нагрузкой на шедуллер и всякое такое ...

cvv ★★★★★
()
Ответ на: комментарий от cvv

Если мы запустили по потоку на соединение это значит что обработка каждого соединения будет начинатся с выяснения актуального потока исполнения плюс его запуск. Обычно это занимает порядка 4 микросекунд.

поподробнее: что именно занимает столько много времени?

www_linux_org_ru ★★★★★
()

Смысл этой тестовой задачи - доказать работоспособность подхода.

тут надо согласиться; но пока что работоспособность подхода отнюдь не доказана

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Работоспособность подхода доказана. И пока кто-то не докажет несостоятельность моих доказательств, либо не докажет обратного - это будет так. Всегда.

А то, что эти два ламерка не могут написать код, да и ничего из себя не представляют - это ясно сразу, поэтому никаких доказательств обратного нет и не будет.

Каждый из этих ламерков уже съехал с темы. Но пока эта тема будет оставаться продолжением моей - я не буду поддаваться на эти манипуляции. Но если вы напишете говно - я это исправлю.

Если хочешь новую тему, а именно сравнение подходов к написанию - создавай. Я предоставлю тебе одно из решений на тредах, если ты этого хочешь. Тема есть echo-server.

anonymous
()
Ответ на: комментарий от anonymous

И пока кто-то не докажет несостоятельность моих доказательств, либо не докажет обратного - это будет так.

да, у меня по твоему доказательству вопросы:

1. что будет, если ядро будет вынуждено держать 100К исходящих буферов по 10Кбайт?

2. что будет, если ядро будет вынуждено держать N исходящих буферов по 10Кбайт так, что общий объем превысит оперативку?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Растолкую тебе причины по которым я не пишу тут.

Первая моя тема была конструктивна и носила две задачи. Показать как юлит балаболка, а так же показать несостоятельность её заявлений.

Заявление балаболки были такими «в реальности более 400 тредов юзать не смысла - всё загнётся», а в ответ на мои «почему и что загнётся» - она ответила «man c10k». Т.е. она c10k определила как задачу-пример, на которой треды загнуться. Я думаю ты способен это понять.

В данной ситуации, я уже писал до этого, автор в своих попытках( специально, либо нет) помогает балаболам слиться, а именно меняет тему. Т.е. мало того, что он балабол и утверждает, что в моей теме конструктива нет, да ещё и поменял эту тему на «какой из подходов быстрее», чего изначально не было.

Поэтому эта тема брехня, а поддерживать брехню я не буду. Я думаю тебе это так же будет понятно.

anonymous
()
Ответ на: комментарий от anonymous

Растолкую тебе причины по которым я не пишу тут.

не ври — ты тут пишешь огромные простыни

отвечай на мои 2 вопроса по твоему доказательству, остальное мне не интересно

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anonymous

Т.е. она c10k определила как задачу-пример, на которой треды загнуться.

если твой код не загибается, но задачи, которые от сервера требуют, не решает — он доказательством твоей правоты не является

ты там че-то бормочешь про изменение условий задачи на ходу — ну так вот, ты вправе изменить свой код, чтобы он условия задачи, которые для тебя новы, все же выполнял и не загибался

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anonymous

Поэтому эта тема брехня, а поддерживать брехню я не буду. Я думаю тебе это так же будет понятно.

нет, мне это не понятно, т.к. «Поэтому эта тема брехня, а поддерживать брехню я не буду» означает свалить отсюда и не писать, а ты пишешь

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Не верно. Я пишу не в рамках этой темы, а в рамках защиты себя от балаболов. В рамках этой темы я не написал НИЧЕГО.

И да, опять ты не можешь в контекст. Тема - это не только тема на форуме, но и тема в смысле теме. Поэтому в контексте сравнения подходов я ничего не пишу. В контексте защиты себя - пишу.

Поэтому напишу ещё раз - хочешь сравнение. Поднимай тему со сравнением, либо пусть автор делает сноску на то, что эта тема не является поднятой мною и ко мне отношения не имеет. Просто навеяна моим постом.

А так, автор сделал хорошее дело - молодец. Пойду напишу ему спасибо.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

Ты оценил красоту моего ответа?

anonymous
()
Ответ на: комментарий от anonymous

Поэтому в контексте сравнения подходов я ничего не пишу. В контексте защиты себя - пишу.

до чего бывают люди... эээ... глупые

твои простыни тебя ни разу не защищают в глазах кого угодно, а делают клоуном и посмешищем

единственный способ *тут* защищаться — это постить релевантные код, тесты, доки и спорить по тех вопросам — короче, отстаивать свой подход, а не тупо наезжать на личности оппонентов, как это пытаешься делать ты

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)

staseg, спасибо тебе за поднятую тему. Ты спас мои начинания от лап пятизвёдочных( других).

Хоть мне и не нравится, что ты написал в топике, а так же твоё мнение. Но это неважно.

Переименуй, пж, тему в «сравниваем подходы к реализации c10k». Не надо врать на тему, что в той моей теме не было конструктива, а так же то, что та моя тема была про сравнение подходов. Всё это неверно.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

На счет мусора в данных я сказал потому, что никакого смысла эти исходящие данные не несут. Никто не выполняет никакой полезной работы при их генерации, никто не контролирует, как они уходят.

Вызов write может вернуть меньшее значение, чем ему было указано. Так что write не обязательно запишет все N байт, может записать только M. И тогда нужно сделать дополнительный write дабы отправить клиенту оставшиеся (N-M) байт.

Царь этого не делает, поэтому у него может быть ситуация, когда он вызывает write(...,1024), а write ему возвращает 100. Вместо того, чтобы дописать оставшиеся 924 байта, Царь просто пишет следующий килобайт. Тем самым ускоряя код своего сервера.

По поводу корректного закрытия сокета я уже не помню, как именно это нужно делать: с предварительным shutdown-ом или без оного. Голыми сокетами давно уже не пользовался. Но на фоне остальной херни в коде это уже мелочь, на которую можно не обращать внимания.

eao197 ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

твои простыни тебя ни разу не защищают в глазах кого угодно, а делают клоуном и посмешищем

Утешай себя. Был бы я клоуном - ты бы не ссался забатлиться со мною, а так же никто бы не тёр мои сообщения и темы. Да и не только ты, а остальные 2 персонажа так же, да и все предыдущие разоблачатели меня.

Я уже писал, что ваша тактика строенья из себя экспертов и попытка делать вид, что это я дурак, а не вы слились - не работает. Она работает на совсем невтемных. Она работает против вас для всех остальных.

Вы столько тёрли, столько затирали следы. Но один-два человека их видел. Сейчас вы попытались сделать то же самое. Снести тему до того, как её увидело много людей. Дело пахло жопой.

И сейчас один, потом другой. И потихоньку видят мои темы 10, 20, 100 человек. И потом, реальные клоуны, оккупировавшие этот ресурс вылетают на помойку.

единственный способ *тут* защищаться — это постить релевантные код, тесты, доки и спорить по тех вопросам

Ничего из этого ни ты, ни подобные тебе не сделали. Значит вы - балаболы. Молодец. Я то же так думаю.

anonymous
()
Ответ на: комментарий от eao197

Вызов write может вернуть меньшее значение, чем ему было указано. Так что write не обязательно запишет все N байт, может записать только M.

а, точно

подозреваю, что именно это и произойдет, когда в исходящих буферах будет слишком много данных

Голыми сокетами давно уже не пользовался.

а я вот типа познаю мир, начиная с голых сокетов

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anonymous

единственный способ *тут* защищаться — это постить релевантные код, тесты, доки и спорить по тех вопросам

Ничего из этого ни ты, ни подобные тебе не сделали. Значит вы - балаболы. Молодец. Я то же так думаю.

чувак, мы-то пишем на технические темы, в отличие от тебя

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

именно это и произойдет, когда в исходящих буферах будет слишком много данных

Именно это и происходит. В частности, когда клиент медленный и не способен читать данные с той скоростью, с которой пишет сервер.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

хорошо, тут ясно; но вот что будет, если сервер потребует от ядра буферизовать 100К входящих соединений по 10Кбайт? безотносительно к коду царя

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)

В рамках темы есть контекст - продемонстрировать возможность применения А. В данном случае решение c10k на тредах. Что собственно я и сделал. Выкатив решение тестовой задачи и бенчмарк к нему.

Царь, скажи, ты правда не понимаешь, что в задаче c10k требуется обслуживать 10k параллельных активных коннектов, а не 10k последовательных (пусть даже с окном в 100-200-300 одновременно активных коннектов)?

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

Был бы я клоуном - ты бы не ссался забатлиться со мною,

очередной детский сад с твоей стороны

мне абсолютно пофиг, кто поднимает вопрос — клоун, бомж, наркоман, ... — если этот вопрос мне интересен или связан с чем-то интересным

з.ы. я думаю, что многие тоже так общаются

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от eao197

На счет мусора в данных я сказал потому, что никакого смысла эти исходящие данные не несут. Никто не выполняет никакой полезной работы при их генерации, никто не контролирует, как они уходят.

Тебе на это уже отвечали. Ты обделался. Так и не смог предоставить свидетельств того, что c10k имеет отношения к «полезной работы при их генерации».

Вызов write может вернуть меньшее значение, чем ему было указано.

Не может. Его может прервать только сигнал, что в данном случае к теме отношения не имеет. Ну и самое важно - что из этого следует?

Царь этого не делает, поэтому у него может быть ситуация, когда он вызывает write(...,1024), а write ему возвращает 100. Вместо того, чтобы дописать оставшиеся 924 байта, Царь просто пишет следующий килобайт. Тем самым ускоряя код своего сервера.

Вот, ламерок пытается назвать причину, но опять обсерается.

Если сервер отправит данных меньше - клиент отвалится. Тем самым в рамках бенчмарка не может случиться такого, что измерения пройдут, а данные не отвалятся.

Если же балабол попытается слиться на на случай, когда этот подход будет использоваться за рамками бенчмарка, то тут он то же обосрался.

Кол-во ридов в любом подходе будет идентично, а значит увеличение, либо уменьшение их числа никаким образом ни что не влияет. Это постоянная константа для всех реализаций.

Если ты попытаешься слиться на цену рида, то ты обделаешься, т.к. никаких доказательств этому ты не предоставил. И бенчмарков не провёл.

По поводу корректного закрытия сокета я уже не помню, как именно это нужно делать: с предварительным shutdown-ом или без оного. Голыми сокетами давно уже не пользовался. Но на фоне остальной херни в коде это уже мелочь, на которую можно не обращать внимания.

О боже, убогой идиот. Ты почему настолько тупой? Ты понимаешь, что бенчмарк не имеет НИКАКОГО отношения к закрытию сокетов.

Закрытия сокета, балаболка, это общая для ВСЕХ реализация операция. И абсолютно не имеет смысла как она здесь сделана - она может быть такой же в любой и тут может быть такой же.

В данном случае тут нет сравнения одной реализации с другой, а значит как она написана - не имеет значения.

Но на фоне остальной херни в коде это уже мелочь, на которую можно не обращать внимания.

Какой, приведи примеры.

anonymous
()
Ответ на: комментарий от anonymous

Не может. Его может прервать только сигнал, что в данном случае к теме отношения не имеет.

а если найду? (С)

давай я проведу тест, в котором write в твоем коде вернет меньше 1024 без сигнала

Ну и самое важно - что из этого следует?

что ты предоставил говнокод

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 2)
Ответ на: комментарий от eao197

Ты несёшь убогую херню. Если ты пытаешься кукарекать на тему того, что мой код не делает того, что он должен - доказывай. А пока ты не доказал - это ничего не значит.

По поводу твоей потуги. Смысл параллельной обработки существует только потому, что ожидание данных/операции по одному коннекту мешает работать другим. Как они выполняются и когда - не имеет никакого отношения к теме. Основное условие - исключить блокировку обработки других ожиданием обработки одного, либо не одного.

И если там эта блокировка есть - ты должен её доказать. А пердеть в лужу ты можешь сколько угодно. Вернее только внеё пердеть ты и можешь.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

давай я проведу тест, в котором write в твоем коде вернет меньше 1024 без сигнала

Без этого кода, либо какого-либо обоснования - твои предьявы равны нулю. Ну и в любом случае из них ничего не следует. Выводы, которые связывают это с моим кодом я разбил, а значит с ним никак это не связано.

что ты предоставил говнокод

Основания для подобного балабольства в студию.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

очередной детский сад с твоей стороны

Это не детский сад. Просто ты и есть клоун, который будучи тотальным нулём приходит и начинает нести херню. А как только дело доходит до конкретики и кода - он сливается.

мне абсолютно пофиг, кто поднимает вопрос

Штука в том, что «поднимаемому вопрос» моя цитата, на которую ты отвечаешь, не имеет отношения.

если этот вопрос мне интересен или связан с чем-то интересным

Ты бы лучше пошёл штудировать мануал, чтобы в пред подобную херню никому не нёс. Хотя подобным тебе можешь - прокатит. Там всё равно одни клоуны.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

о вот что будет, если сервер потребует от ядра буферизовать 100К входящих соединений по 10Кбайт? безотносительно к коду царя

ХЗ, никогда не пробовал. Полагаю, все упирается в объем доступной памяти. Ну и можно же это проверить через простой тест с использованием setsockopt (SO_RCVBUF, SO_SNDBUF).

eao197 ★★★★★
()

В порядке наброса

Пока C-крестьяне бунтуются и пишут витиеватую говнолапшу с select, GO-бояре просто создают 10к ко-рутин и спокойно наблюдают, как планировщик использует тот же select, но под капотом, и запускает только те рутины, которым есть, что обработать.

derlafff ★★★★★
()
Ответ на: комментарий от anonymous

Если ты пытаешься кукарекать на тему того, что мой код не делает того, что он должен - доказывай.

Дебил, когда ты выкатываешь программу, то это твоя обязанность доказать, что она a) делает то, что от нее требуется и b) делает это корректно.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

Так и не смог предоставить свидетельств того, что c10k имеет отношения к «полезной работы при их генерации».

Труднее всего объяснять очевидные вещи. Еще труднее их объяснять дебилам. Еще труднее, когда один отдельно взятый дебил именует себя Царем.

c10k без полезной работы — это задача сетевого стека ОС.

Мы здесь поведение сетевого стека ОС обсуждаем? Или где?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Дебил, когда ты выкатываешь программу, то это твоя обязанность доказать, что она a) делает то, что от нее требуется и b) делает это корректно.

Неверно. Если ты доказываешь некорректность программы - ты должен доказать это, а не я должен доказывать её корректность.

Давай попроще, я часто забываю, что вы тут все «одуванчики». Когда ты обвиняешь кого-то во лжи - на кого ложится бремя доказательства? Правильно - обвиняющего. Бремя доказательства всегда на обвиняющем.

В данном случае я обвинил персонажа во вранье. Я выкатил свои доказательства. Теперь его очередь защищаться. Ты его адвокат. Ты обвинил меня во лжи, в некорректности. И ты должен доказывать эту некорректность, а не я должен доказывать корректность.

Хотя кому и что я рассказываю. Иди в гугл и заяви «я нашел баг в чроме», а в ответ на «докажи» - скажи. «а докажите, что у вас их нет». От блин, гениально. Как же пацаны до этого недодумались.

anonymous
()
Ответ на: комментарий от eao197

c10k без полезной работы — это задача сетевого стека ОС.

Мне неважно какая эта задача. Тебе требуется доказать, какой жопой в c10k входит то, о чём ты кукарекаешь.

Меня не интересует твоё балабольство на тему «полезные» с10к, либо не полезные. Устарела ли эта задача, либо нет.

Мы здесь поведение сетевого стека ОС обсуждаем? Или где?

К сетевому стэку это не имеет никакого отношения. Это подходы к механизму обеспечения задачи - обработка независимой/параллельной 10к сокетов. Да и не обязательно сокетов, но пока пусть будет так. Параллельной - это значит то, что локи на одном не блокируют обработку других.

А так, если ты уж совсем невменяем - да, считай что тут обсуждается сетевой стек ОС. К твоих хелвордам это отношения не имеет. Это задача другого уровня.

Обработка строится данных строится поверх. Это про то, как получить и записать данные в клиенты, а не про то, как сгенировать твой хттп, либо запустить твой пхп.

Если ты до сих пор этого не понимаешь. ну что я могу поделать. Не дано.

anonymous
()
Ответ на: комментарий от anonymous

Если ты доказываешь некорректность программы - ты должен доказать это, а не я должен доказывать её корректность.

Да ты совсем больной.

Давай проще: вот у тебя есть клиент и сервер.

Правильно ли я понимаю, что ты утверждаешь, что это корректная демонстрация обработки 10k параллельных активных коннектов?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Ну и ещё раз, авось ты реально не троллишь меня, а действительно не понимаешь.

Обработка сетевой части в 10к потоков, в 1поток - никакого отношения не имеет к тому - как дальше и что дальше ты будешь делать с этими данными.

Епулл пишут в одном треде? Ты прикручиваешь к нему обработку в 10 треда. Это задачи РАЗНОГО УРОВНЯ. Они не про хттп, либо что-то ещё.

ОНИ ПРО СЕТЕВУЮ ЧАСТЬ. Понимаешь? Именно про неё. Никто тебя не заставляет парсить хттп в 10к тредах, хотя этому ничего не мешает.

ПОНИМАЕШЬ? Это задача про то, как ОБЕСПЕЧИТЬ ОБМЕН ДАННЫМИ, а не ПРО ТО КАК ЭТИ ДАННЫЕ СГЕНЕРИРОВАТЬ.

Ты это понимаешь? Пойми. Извини, что я тебя там обижал - можешь и дальше мне писать херню, но если ты этого действительно не понимаешь - ПОЙМИ.

anonymous
()
Ответ на: комментарий от anonymous

Ты это понимаешь?

Слушай, дятел, ты сам-то понимаешь, что никому здесь не интересен сетевой обмен без прикладной составляющей?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Правильно ли я понимаю, что ты утверждаешь, что это корректная демонстрация обработки 10k параллельных активных коннектов?

Убогая попытка манипуляции. Кого ты пытаешься поймать? Я тебе сказал - тебе надо 50лет коптить воздух, чтобы даже хотя бы получить надежду на удачу.

Ты не определил значение «параллельных активных коннектов» - определяй.

Я значение сформулировал выше. Ты либо используешь моё, либо пытаешься сформулировать своё, но тебе так же его надо доказать.

Код делает то, что я определил. В рамках формулировок, которые дал я. Зачем ты задаёшь идиотские вопросы?

Считаешь иначе? Берёшь клиент - показываешь. Не можешь - иди в своё пхп. Нахрен ты из него вылез?

anonymous
()
Ответ на: комментарий от eao197

Слушай, дятел, ты сам-то понимаешь, что никому здесь не интересен сетевой обмен без прикладной составляющей?

Как закукарекал, как распитушился. Я тебе сказал - меня не волнует что тебе там интересно, а что нет. И зачем ты прячешься за всех? Это первый признак неуверенности.

Не согласен с моей формулировкой c10k - вперёд. Иди меняй википедию. Иди меняй изначальную статью. Пиши авторам «почему вы не добавили обработку хттп и пхп - зачем вам селекты/епулы и прочее».

Не можешь - не кукарекай.

И запомни на будущие. Ты ноль. Пытаться играть со мною будучи нулём - глупо. Ничего, кроме горящей твоей жопы и поноса из этого не выйдет.

Зачем ты это начинаешь?

anonymous
()
Ответ на: комментарий от anonymous

Дебилоид, тебе простой вопрос задали:

Правильно ли я понимаю, что ты утверждаешь, что это корректная демонстрация обработки 10k параллельных активных коннектов?

Да или нет?

Любая простыня текста без конкретного ответа означает, что ты не обеспечиваешь корректность _твоего_ кода.

Параллельных активных — это значит параллельных (существующих в одно время) и активных (это значит, что работа идет одновременно по всем, нет такого, что активна 1/10 часть коннектов, а 9/10 чего-то ждут).

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Прости, я здесь не обсуждаю сетевой стек ОС.

Ты здесь вообще ничего не можешь обсуждать. Ты ноль. Рекламировать свою поделку и ваять хелворды - это единственное, на что ты способен. И ты это понимаешь.

Зачем ты лезешь туда, где ты некомпетентен? Где ты ничего не можешь - только менять тему, врать и нести херню, сливаясь через каждые два слова?

А по поводу сетевого стека. Автор темы написал эхо-сервер. Что же ты ему не кукарекаешь, что «неверную задачу»?

Я жду. Ведь бесполезные данные? Мусор гоняется? Иди разоблачай.

Точно так же никто автора не разоблачает. Всем достаточно эхо-сервера? Вот ведь незадача. Опять лужа.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.