IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/04/15
~acetone
Most2
Nikat
Spirit90
segfault
weko_
orignal сделал
Leopold найс
Leopold Отдыхай пж :(
orignal ась?
orignal onon ты ппоробовал исправленное?
onon Со строителем туннелей?
onon Пока пробую, ткср стабильно низкий.
onon На прошлых версиях он после старта сползал ниже 10%, теперь почти сразу со старта ниже 10%
orignal ну да испключение два U подряд
onon Ну, туннели строит, сервисы работают, пока наблюдаю.
orignal если будет хуже верну назад
onon Подскажи как в стримах свой выбранный конец туннеля исходящего в лог вывести.
onon Как с лизсетом m_CurrentRemoteLease->tunnelGateway.ToBase64 ()
orignal надо глянуть
orignal у него есть метод
orignal GetEndpointIdentHash ()
onon m_CurrentOutboundTunnel.GetEndpointIdentHash () ?
orignal да. и ToBase64()
onon Я правильно понимаю, что если туннель TestFailed, он в лизсет не вставляется?
orignal а x3 смотреть по коду надо
orignal bool IsEstablished () const { return m_State == eTunnelStateEstablished || m_State == eTunnelStateTestFailed; };
orignal всталвяется
onon угу
onon Заметил странную закономерность, когда стрим зависает, и сервер пытается перебирать туннели и лизсеты, на клиенте в этот момент входящие и исходящие туннели начинают массово фейлиться.
onon Что причина, а что следствие, пока не понятно. Возможно есть что-то третье...
onon Потом фейлы разфейливаются, и стрим отвисает.
orignal естествннно стрим зависает потому что тоннели фейлятся а не наоборот
onon Насколько реально перевести NACKи в стримах на диапазоны как в SSU? Когда стрим разгоняется до приличных скоростей, и потом случается потеря пакета, клиент начинает резко слать NACK на каждый пакет.
onon А его исходящий и наш входящий туннели к этому обычно не готовы.
orignal это уже деду еби мозги
orignal а так да надо
Vort "onon Что причина, а что следствие, пока не понятно" - тут интересная ситуация: скорее всего, есть какая-то причина, из-за которой и фейлятся тесты и зависают стримы
Vort я наблюдал массовые фейлы тестов на дестинейшенах без стримов вообще
Vort то есть, стримы явно не причина
onon У меня подозрение на транспорты
onon На ретрансмиты
Vort и, скорее всего, на SSU2, да
onon Потому что получить реальный RTT около 200сек я больше не знаю как
Vort несколько косяков с ним было уже исправлено, но могут быть ещё
Vort мс? или таки сек ?
onon Сек(!)
Vort это разве что на стримах
Vort на самом транспорте - это какая-то фантастика
onon Ну на стримах конечно же
Vort ну вот надо смотреть, что при этом происходит на транспортах, там же тоже свой RTT есть
onon Скорее всего там congestion collapse
Vort скорее всего так ведут себя обрывы транспортов. хотя может и перепосылки, хз
onon Из-за хренового CC
Vort первым делом стоит убедиться, что транспорты во время такого лага живые
Vort а дальше уже смотреть в зависимости от результата
onon Это сложно, т.к. узлов 12 штук
onon И рандомные
Vort так, может, и 8 будут лагать
Vort то есть, стоит сужать возможный список причин
Vort в идеале до воспроизведения на локалхосте
Vort возможно с виртуалками
Vort если на компе RAM хватает, то должно быть реально
Vort с 16+ GB проблем быть не должно
Vort чуть поясню про "загон" проблемы: если, допустим, на 3(+3+3+3) хопах лаг 200 секунд, а на 2 хопах - 50 секунд - это уже прогресс
Vort тогда можно и на 1 хопе словить, если постараться
Vort это конечно теоретически, просто поясняю принцип
onon Мне бы хоть сначала со стримами разобраться.
onon Но всё время что-нибудь вылазит, то лизсеты не находит, то пинги огромные.
orignal ну так багов все равно много еще
Vort "<onon> Но всё время что-нибудь вылазит, то лизсеты не находит, то пинги огромные." - может быть одна и та же причина - тормоза флудфилов. один из багов хоть и починили, но, думаю, юзеры ещё не обновились в достаточной мере
Vort по поводу рейта - я уже давно пытаюсь с этой темой разбираться. за это время понял, что оценить влияние изменения в коде на рейт очень сложно
Vort рейт сейчас плавает в пределах от 10% до 30%, при этом, это могут быть как глобальные колебания, так и локальные
Vort влияет на это хрен пойми что и хрен пойми как
Vort я проверил несколько туннелей вручную по netdb и, похоже, чередование работает нормально. так что, по логике, хуже быть не должно
orignal с рейтом надо будет сделать как RN предлагает
orignal запомнинать когда выбрали в качестве пира и некоторое время не выбирать
onon Это нужно, так как 6 одинаковых постоянно перестраивающихся туннелей - это не правильно.
orignal нет
orignal там любой пир в люьом тоннеле если
onon Ну к каждому таймстемп приделать, и проверять при выборе.
orignal именно так
Vort одинаковые туннели - это просто баг
orignal одинаковые да баг
orignal речь не о них а о низком рейте
Vort а вот не выбирать пира - это странно. пока что не пойму логики
orignal выбрал пира
orignal в течение след 2 минуты не выбираешь
Vort особенно учитывая, что перестраиваем одни и те же туннели постоянно
orignal вне зависимости от результата построения тоннеля
orignal перестроения не касается
orignal только выбора новых
Vort так у нас их дохренища - с учётом рандома, мы и так второй раз выбирать будем очень редко
Vort 2 тыщи допустим пиров
Vort 1/2000 шанс попасть
Vort не похоже, что это вообще может что-то дать
orignal я думаю все дело в превом
Vort так всё равно - это выбор из 2 тыщ
onon Может рандом не совсем рандомный?
Vort onon: так проверить эту гипотезу надо
Vort но я думаю что с этим порядок
Vort проблема где-то в другом месте
onon Лось же любит рассказывать как он выбирает к какой женщине поехать после работы, какой трамвай раньше придёт...
Vort я математически сейчас доказывать не возмусь, но интуитивно вывод делаю
onon А так если каждый день выбирать новую, то трамвай не влияет
Vort в общем, не надо усложнять код пока нету хоть каких-то доказательств, что это улучшит хоть что-либо
Vort не обязательно даже доказательств, хотя бы обоснования
orignal хорошо вопрос такой
orignal почему когда мало транзита то рейт высокий?
Vort я подозреваю кластеризацию сети
orignal etwork status: Firewalled
orignal Tunnel creation success rate: 41%
Vort не злонамеренную, а "просто так получилось"
onon Имхо, потому что когда транзит, большинство узлов в твоей БД - занатовцы.
Vort в зависимости от каких-то неясных условий, получаются разные наборы узлов в netdb и разные наборы дают разный рейт
onon Потому что это они строят через тебя туннели и занимают весь объём БД
Vort то есть, да, я считаю, что транзит привлекает какие-то категории узлов
orignal причем эта та уебаская машине без портов
Vort но не факт, что именно NAT
orignal транзит привлекает узлы если конец тоннеля
orignal и если в разные дестинейшины
onon Есть ещё вариант с перегрузкой транспортов
onon Наши сообщения на построение туннеля задерживаются когда много транзита
Vort я рассказывал о своём тесте, подтверждающем гипотезу кластеризации/"заражения" netdb
Vort но по разным причинам его никто не воспроизвёл
orignal и в чем она стоит анмпони?
Vort гипотеза? в том, что разные настройки узлов приводят к разному наполнению netdb. не конкретными узлами, конечно, а как единого целого
orignal ну хорошо почему на узлах где много транзита низкий рейт?
Vort а тест довольно простой (но с очевидной проблемой): на одном и том же компе, с той же самой физической сетью, запускаем два узла с разными настройками - к примеру, XfR и XfRG
Vort ждём некоторое время (допустим, несколько часов)
Vort наблюдаем перекос рейта (у G узла рейт будет выше)
Vort затем делаем их перезпуск с обменянными местами netdb
orignal мое менение потому что запросов на построение меньше
Vort наблюдаемый мной эффект был в том, что рейты тоже обменивались местами, на некоторое время, затем сползали к обычным значениям для этого типа узла
Vort "<~orignal> ну хорошо почему на узлах где много транзита низкий рейт?" - говорю же - в netdb привлекаются другие узлы. конкретно в чём их различие, влияющее на рейт, - я так и не нашёл
Vort решил перестать изучать этот вопрос, так как посчитал, что даже если я разгадаю загадку, то исправить проблему, скорее всего, будет сложно
Vort но, может, кто-то и захочет "додавить" загадку
Vort также вполне может быть, что проявление эффекта было либо кратковременным либо вообще мне показалось
Vort так что на нежелание в этом копаться я не обижаюсь :))
orignal ну а что где мало транзита не привлекаются что ли?
orignal зондирование же идет как обычно
Vort под "другие" я имею в виду "не такие, как для соседнего узла с другими настройками"
Vort мне кажется, стоит начинать с подтверждения или опровержения этого эффекта
Vort может, мне показалось. если будет подтверждение - тогда гадать дальше
orignal так зондирование же выдает тебе совершенно произвольные
Vort для наполнения netdb очень много механизмов
Vort зондированием она сейчас вообще почти не наполняется
orignal Routers: 2489 Floodfills: 649
orignal а откуда тогда вот это?
orignal все на том же узле
Vort я имею в виду по сравнению с другими методами
Vort зондирование даст +1 узел, всё остальное: +1000. условно говоря
orignal unnel creation success rate: 43%
orignal там роутеров достаточно
orignal и транзита мизер
Vort может, в этом и суть, кстати?
Vort в пропорциях зондирования и остального наполнения?
orignal ну вот поясни в чем суть
Vort ну транзит же добавляет узел в netdb
orignal хорошо чем отличается остальное наполнение от зондирования?
orignal добавит и может много добавить
Vort или мы сами решаем или остальная сеть
orignal но чем эти узлы приниципиально отличаются от полученных зондированием?
orignal и там и там произвольные
orignal на самом деле не совсем
orignal зондирование дает аюсолютно произволныее узлы
orignal а тоннели будут давать с ipv4
orignal потому что концы тоннелей
Vort полагаю, транзиты будут чаще к скоростным узлам
Vort ну это просто пример
orignal как правило к ним
orignal никто через зондируюшие данные не гоняет
Vort то есть, различия есть. но насколько они существенны - неясно
orignal теперь смотри
orignal Tunnel creation success rate: 21%
orignal на той мащине только SSU2
orignal не флудфил
orignal хотя есть ipv4 и ipv6
Vort может, в каком-то популярном приложении прошиты какие-то узлы допустим - и юзеры этого приложения гонят через них данные, и эти узлы перегружаются
Vort гадаю, конечно
orignal ну это легко проверить
orignal достаточно сменить адрес роутера
orignal я могу поверить про флудфилы
Vort я имею в виду что перегруженные узлы заседают в нашем netdb
orignal но вряд ли кто будет прошивать адрес недороутера с SSU2
Vort хотя... маловероятно
orignal вот че надо попробовть
orignal когда много узлов делать выбор из нефлудфилов
Vort ну это понятно. я об этом давно думал
Vort но это не решает загадки
Vort это просто "очередная вещь которую надо сделать"
Vort то есть, простая логика: "если флудфилы нагружены в 2 раза больше, значит через них надо гнать в 2 раза меньше трафика чтобы сбалансировать нагрузку"
Vort в реальности ситуация сложнее, я просто про идею говорю
orignal дед вроде так и делает
orignal что то в этом роде
orignal тут вопрос сводится к тому
Vort по-хорошему же надо вычислить, чем отличаются "зараженные netdb" от нормальных
orignal тоннели фейлятся потому что узлы не могут соединиться
orignal или потому что дропают запросы
Vort таймауты идут в основном
Vort это ещё один путь расследования, да - разобраться, от чего узлы "мигают"
Vort то принимают коннекты, то нет
Vort может они просаживают рейт, может нет, хз
Vort помнишь же про забаненную примерно сотню флудфилов?
Vort вот списочек получить и тыкать их по очереди
Vort изучать характер ответов
Vort посмотреть, i2pd или java
Vort много что можно
onon1 Я так понял, версию "Ваш кривой CC перегружает роутеры и поэтому служебные сообщения задерживаются или дропаются" вы всерьёз не воспринимаете?
onon1 Потому что ткср выше когда сеть меньше нагружена по времени суток.
Vort время суток это лишь один из факторов. их много
Vort перегруженный роутер должен тупо перестать принимать транзиты. если он этого не делает - надо разбираться, почему конкретно
Vort кривой CC - это больше проблема "нашего" узла, чем транзитного
onon1 Ты серьёзно?
` > или потому что дропают запросы
` javaрасы!11
Vort "<onon1> Ты серьёзно?" - сужу по своему узлу. пока кто-либо не покажет список транспортов, заваленный [queue:, поверить в ощутимое влияние на транзитные узлы мне будет сложно
orignal у меня нет заваленных queue
orignal вообще нигде
onon1 Чтобы у тебя обломалось строительство туннеля, достаточно что бы один из 6 роутеров был в этот момент перегружен.
onon1 А в следующий момент он может быть и не перегружен.
onon1 В ситуации с интродьюсерами, количество точек отказа увеличивается.
Vort onon1: логика простая: если у меня транспорты в основном из-за транзитов и на 2-4 их тыщи всего 1-2 queue, значит мой узел _теоретически_ фейлит меньше 0.1% туннелей из-за очередей
Vort 0.999^6=0.994
Vort а если это не делает мой узел, то какой же тогда делает?
Vort вот и надо найти и изучить
Vort где искать - я пояснил. среди забаненных флудфилов
orignal ну смотри
orignal флудфилы банили по особой причине
Vort я не про неё
Vort а про баны из-за недоступности
Vort то есть, это просто хороший пример
orignal ну это старые баги были
orignal думаю счас этого уже нет
Vort версию в RI проверить можно =)
Vort сделать таблицу по забаненным и незабаненным
Vort и сравнить