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
на самом деле не совсем
Vort
:)
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
и сравнить