LINUX.ORG.RU

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

 ,


11

10

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

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

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

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

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

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

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

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

Я не знаю оснований из которых ты вывел подобный вопрос. С таким подходом ты можешь заспамить меня всякой хернёй, а далее требовать ответов с меня.

А земля круглая? Какое это имеет отношение к тему? Ты мне отвечай нормально, а не вопросом на вопрос. Царь слился - он не знает, что земля круглая.

Уровень потуг - детсад.

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

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

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

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

Я не знаю оснований из которых ты вывел подобный вопрос.

При чем здесь основания? Есть простой вопрос: нужно ли сохранять регистры или нет?

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

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

Из-за того, что никаких объектов языка в си на уровне языка нет - у тебя есть тысячи проблем с компилтаймом в С++. Нет констекспр-памяти, тех же массивов, либо строк? Правильно - в си нет ни строк ни массивов.
С++ - есть обёртка над Си, который «полностью динамичный язык».

В C++ есть std::string. И вообще, С++ раньше был обёрткой над Си, так сказать Си с классами, но теперь это не так. Но с другой стороны С++ конечно во многом убог. С этим я согласен полностью:

Ну и сами претензии к языку типа с ущербанскими, протыхшими трубования «определение должно быть выше» - мы в 95году? Нет, дак какого хрена?

Синтаксис его реально староват, да и ООП несуразно выглядит. Но так как он позволят напрямую работать с памятью да и к тому же программы на крестах довольно быстрые с этим придётся мириться ещё долго.

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

При чем здесь основания? Есть простой вопрос: нужно ли сохранять регистры или нет?

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

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

Vm - virtual memory. Дорогой операцией является очистка и загрузка буферов трансляции, а не регистров(https://ru.wikipedia.org/wiki/Буфер_ассоциативной_трансляции). Кроме того, существуют архитектуры, где очистка буфера трансляции это дешёвая операция, так что да, треды переключать не особенно дорого. Царь опять прав, вы опять лезет в бутылку не зная матчасти. Я добрый, поэтому вот хорошая книга - https://www.piter.com/collection/klassika-computer-science/product/arhitektur.... Если мне не изменят память в ней рассказывается, как у SPARC-ов трансляция адресов сделана значительно иначе, поэтому переключение процессов вызывает значительно меньший overhead.

Учитывая ваш переход на хамство и коммент про мой возраст, это мой последний вам ответ. (мне 30, женат, есть дочь и падчерица, если вам любопытно)

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

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

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

так вопрос не имеет оношения к теме дискуссии, разве нет.

Имеет и еще как. К проблеме c10k можно подойти с разных сторон. Можно использовать подход N:1 (т.е. все N соединений обрабатываются на контексте одной-единственной нити). Можно использовать подход N:M (т.е. N соединений отображаются на M рабочих нитей, где M<<N). Можно использовать подход N:N, который здесь демонстрирует царь.

Если мы не берем допотопный select, то и N:1, и N:M, и N:N могут использоваться для решения c10k. И вопрос будет заключаться в накладных расходах на каждый из подходов.

Вот в подходе N:N есть важный момент: для того, чтобы сделать read или write в конкретный сокет ОС должна выдать квант времени конкретной нити. Для чего ОС должна снять с процессора какую-то другую нить.

Вопрос о необходимости сохранения регистров (как один из аспектов накладных расходов на переключение нитей) здесь важен. Поскольку, например, в подходах N:1 и N:M этого сохранения вообще не нужно.

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

Ну и в контексте этого мне, например, совершенно не понятно, при чем здесь virtual memory и с какого бодуна Царь этот virtual memory приплел в сравнение подходов N:1, N:M и N:N.

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

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

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

Учитывая ваш переход на хамство и коммент про мой возраст, это мой последний вам ответ.

Ну надо же, какие нежные персонажи пытаются выжить в царетреде.

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

Это я и называю сверхманевренностью

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

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

В C++ есть std::string.

Это рантайм дерьмо. Мне оно не нужно. Я же писал про возможности языка, зачем ты мне пишешь про левые сущности? Ты умеешь отличать язык от куска кода написанного на языке? В си то же есть strcat, что дальше?

И вообще, С++ раньше был обёрткой над Си, так сказать Си с классами, но теперь это не так.

Теперь это так. И всегда было так - примеры я тебе уже назвал. Почему существует std::decay? Правильно, потому что в си есть некопируемые типы, которые либо просто отображение объектов(символов) времени линковки, либо просто дургие рантайм объекты в той же памяти. Из-за их некопуриуемости для аргументов функций впилен кастыль, который преобразовывает их к указателям. Т.е. всё, что бы ты не написал как тип аргумента из разряда подобных типов - всё это будет преобразовано к указателям на эти типы. И сами типы имеют автокаст в указатели.

И подобных примеров масса. В языке, который весь такой «статичный» и «компилтайм» подобное выглядит убого. И такого масса.

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

Почему в С++ у тебя нету типа-фукнция, а есть только тип-указатель на функцию? Хотя на самом деле тип-функция есть и он значит то же самое, что и в си - ссылка на символ времени линковки.

Синтаксис его реально староват

У синтаксиса С++ нет никаких проблем. Он сишный, а сишный синтаксис идеален - до сих пор никто ничего лучше не придумал.

Но так как он позволят напрямую работать с памятью да и к тому же программы на крестах довольно быстрые с этим придётся мириться ещё долго.

Ты совершенно не про то говоришь. Ты не понимаешь по что я пишу и тебе кажется, что я вешаю про «надо как в жаве» - нет. Я не об этом.

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

Чтение из сокета это копирование из буферов ядра в буфер юзерспейса. В буферах ядра данные не по байтику появляются, а целыми пакетами. Если сравнивать сохранение/восстановление содержимого двух десятков регистров с копированием десятка пакетов, то регистры — это сопли. А если добавить проверку чексум, генерацию аков, таймеры (все это в ядре, но процессор то потребляет независимо от колва потоков), то регистры это просто смешные сопли. Царь просто на вас злится и не желает разжевывать очевидное.

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

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

Так что если под c10k здесь понимаются только способности сетевой подсистемы ОС, то это одно. Мне интересна другая сторона проблемы c10k.

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

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

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

А пацану( kremator666) подсказка. Нет смысла в сравнении уровня «есть или нет» делать акцент на «большая». Большая - определяет её( операции) влияние на исполнение, и и если после балабол соглашается с малым влиянием её на общий процесс, то смысл акцента пропадает.

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

Ну и самое главное, в рамках оверхеда на хттп и днищенгинкса, который не сможет даже в 100к рпс, рассуждать об производительности просто не имеет смысла.

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

Опять пытаешься забалтывать.

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

О боже, полезная работа не имеет никакого отношения к реализации обработки транспортного уровня.

Так что если под c10k здесь понимаются только способности сетевой подсистемы ОС, то это одно. Мне интересна другая сторона проблемы c10k.

Никакой другой стороны нет. Ты не предоставил доказательства того, что она есть. С тебя это спросили.

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

Реализуй так, как считаешь нужным - вперёд. Ты же не просто балабол?

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

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

Нет. В данном случае есть обиженка, которую я когда-то обидел. Вот они всё и пытается доказать всем то, что я идиот. Представления о вопросе одно персонажа нулевые. Он ретранслирует то, что где-то услышал, юлит, врёт, меняет условия по 20раз за 5постов. Утверждает, что из из красного цвета телеги следует кривость её колёс, а когда его правшиваю - каких хреном первое связанно со свторым и на основании чего из первого следует второе - он сливает.

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

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

Я могу чего-то точно не знать, но я как минимум могу обосновать то - почему я считаю так и не иначе.

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

в рамках оверхеда на хттп и днищенгинкса, который не сможет даже в 100к рпс

А что может в 100к рпс?

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

А что может в 100к рпс?

Ну как минимум сокеты могут. Нормальные, бинарные протоколы то же.

Реализации же не на сокетах могут на порядки больше.

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

в рамках оверхеда на хттп

Ну не заставишь же ты клиентов выкинуть свои браузеры и перейти на бинарные протоколы. Такие идеи надо было сорок лет назад продвигать.

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

Браузеры с текущим бардаком разобраться не могут, а вы ещё про какие-то бинарные протоколы.

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

Никакой другой стороны нет.

Если этой «другой стороны нет», то к чему тогда относится «оверхеда на хттп и днищенгинкса»? Ась?

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

бинарные протоколы

Неюниксвейно же.

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

Ну не заставишь же ты клиентов выкинуть свои браузеры и перейти на бинарные протоколы.

О чёт тогда вообще разговор? Производительность неважна - значит неважна. Какой смысл рассуждать о том епул, хренопул, если к этому нгинксу мы прикрутим пхп с 500рпс в лучшем случае? Этот оверхед в сетевой обработке, которая занимает 1% от всей обработки. И даже если там будет 100% оверхед - результат разница не переполнит даже погрешности.

Такие идеи надо было сорок лет назад продвигать.

Непрокатит. Это не про броузеры, не про идеи. Это про анскилл. Никто в эти протоколы не осилит. Да и их потихоньку делают - тот же хттп2.

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

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

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

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

Если этой «другой стороны нет», то к чему тогда относится «оверхеда на хттп и днищенгинкса»? Ась?

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

Ты там давай, не сливайся. Ты будешь писать «правильный» бенчмарк, который меряет то, что нужно? Либо продолжишь болтать?

Если неосилил и слился, то ты можешь так же написать, что ты считаешь «Нормальной» обработкой. Я, естественно, не буду писать тебе хттп и прочее дерьмо. Какой-нибудь хеш от входящих данных подойдёт? Их можно друг в друга складывать и регулировать сложность обработчика. Может тебе там сендфайл вставить?

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

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

Непрокатит. Это не про броузеры, не про идеи. Это про анскилл. Никто в эти протоколы не осилит. Да и их потихоньку делают - тот же хттп2.

Какой анскилл? Всё равно никто хттп напрямую не дёргает, кроме писателей библиотек.

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

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

Ты, по видимому, живешь в отдельной палате. Реальный мир к тебе отношения не имеет.

Ты будешь писать «правильный» бенчмарк, который меряет то, что нужно?

Я кому-то что-то на эту тему обещал? Актись, придурок.

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

Царь.

А с чего ты взял, что этим писатели библиотек «скилл»? И как это не дёргают? Данные по заголовкам гоняют? Гоняют. Данные по url гоняют? Гоняют. Логика строится на методах? Строится.

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

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

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

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

Ну как минимум сокеты могут

Я, видимо, неправильно выразился. Когда я возразил на:

в рамках оверхеда на хттп и днищенгинкса, который не сможет даже в 100к рпс

я подозревал, что есть какой-то еще веб сервер (т.е. хттп оставляем, окда?), который сможет выдать 100к рпс

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

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

Тебя банят по той же причине, по которой банят сорримака. Просто сорримак медленне «скатывается» на переход на личности и откровенный тупак.

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

Какой анскилл? Всё равно никто хттп напрямую не дёргает, кроме писателей библиотек.

И недаекватов, которые упражняются в хттп (я один из них).

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

Ты, по видимому, живешь в отдельной палате. Реальный мир к тебе отношения не имеет.

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

Я кому-то что-то на эту тему обещал? Актись, придурок.

А не ты ли балаболил, что «где код» и прочее? А теперь получается как - ты болтаешь, а ничего не делаешь. Как пацаны узнают, что ты не балабол? Это очередной тому пример.

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

Таким образом вы вначале будите кукарекать про хттп, потом про то, что моё хттп неполноценно. Потом про то, что у меня нельзя подключить пхп. И прочее и прочее.

anonymous
()
Ответ на: Царь. от anonymous

А с чего ты взял, что этим писатели библиотек «скилл»?

Ну будет меньше библиотек работы с протоколом и чо?

И как это не дёргают? Данные по заголовкам гоняют? Гоняют. Данные по url гоняют? Гоняют. Логика строится на методах? Строится.

И много народу пишут HTTP напрямую, а не через модную супер-библиотечку? И как часто используется что-то, отличное от GET и POST?

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

Легаси. Думаешь, что при создании HTTP кто-то предполагал, что для одной сраной страницы может выполняться сотня запросов и ещё дохрена после её загрузки? (А ещё что кто-то будет использовать язык разметки документов для построения интерфейсов, но это совсем клиника.)

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

Это не имеет отношения к теме.

Еще как имеет.

А не ты ли балаболил, что «где код» и прочее?

Где? Ссылку можешь найти?

eao197 ★★★★★
()

Потоков - не знаю, а 10к процессов на сокетах обычная машина не прожуёт.

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

я подозревал, что есть какой-то еще веб сервер (т.е. хттп оставляем, окда?), который сможет выдать 100к рпс

Проблема в том, что никакой хттп сервер не является конкурентом тому, что тут измеряется. Он проиграет слёту.

А по поводу хттп и вебсервера как такового - реализация нгинкса не является оптимальной. Я не разбираюсь в сортах веществ. Что там из них лучше. Погугли какой-нибудь там гван, какие-то модные нынче х2о, лван.

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

Таким образом вы вначале будите кукарекать про хттп, потом про то, что моё хттп неполноценно. Потом про то, что у меня нельзя подключить пхп. И прочее и прочее

Вот так, подгоняя Царя, ЛОР написал успешный, высокопроизводительный веб-сервер, вытеснив со временем с рынка продукт Сысоева

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

Погугли какой-нибудь там гван, какие-то модные нынче х2о, лван.

Спс за гван, выглядит интересно.
Что за x2o? лван тоже нагуглил, но он, судя по заявленной информации, сливает гвану

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

Еще как имеет.

Основания для балабольства в студию. Мы так и будем играться? Ну хорошо - я отвечу «не имеет». Дальше что?

Где? Ссылку можешь найти?

C++11 и управление памятью (комментарий) И прочее - их много, мне лень искать - это сложно.

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

Кода у тебя нет. Пробалаболил.

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

Вот так, подгоняя Царя, ЛОР написал успешный, высокопроизводительный веб-сервер, вытеснив со временем с рынка продукт Сысоева

Продукт Сысоева занимается в 99% случаев пуском пхп, либо иным другим проксированием и никаким образом не ценится за какую-то там «производительность».

Да и мне это не интересно - писать пускалки для пхп. Хттп мне не нужно, пхп мне не нужно. Если хочешь, чтобы я написал «как писать вебчик без этого дерьма» - я когда-нибудь напишу. Я хотел об этом написать итак. Но это будет не раньше чем в следующем году, когда я доделаю то, что с этим связано.

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