IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2022/12/30
~acetone
Most2
Nikat
Spirit90
segfault
weko_
orignal Vort я посмотрел код
orignal пытается перестроить тоннель по тому же маршруту только 1 раз
weko orignal: это дед червь, лучше б сначала проблему чётко воспроизвел, прежде чем идти иссуй писать
relaybot 13trusishka: А че именно червяки то бля
relaybot 13trusishka: Народ, weko Vort orignal это норм что в вебморде sent объем и скорость меньше транзита? Как мне помнится самое минимальное знаяение из 3х должно быть у транзита не?
weko Возможно кто то гавно слал
weko Но я не знаю что там в коде
weko А возможно у тебя не работала отправка
weko я не знаю
weko R4SAS: можешь как то повысить лимит каналов?
weko Хотел создать канал а тут облом
weko Пишет я уже нахожусь в максимальном количестве
Vort trusishka: ну мне как всегда кажется, что это баги. у меня вот наоборот сейчас скорость Sent в 1.6 раза выше транзита. стабильно
Vort при том что из нагрузки только этот чат. который за день столько не жрёт сколько этот "Sent" за несколько сек выжирает
Vort Received: 155.33 GiB (893.34 KiB/s) Sent: 163.69 GiB (1290.22 KiB/s) Transit: 151.23 GiB (850.88 KiB/s)
Vort по моему расхождению отправки и транзитов: не могут ли это быть перепосылки SSU2?
Vort опять про CPU при достижении лимита: не нравится мне всё же вот эта пила. есть ли у кого-то обяснение формы "сигнала"? если нету, то надо опять проверять на предмет бага
Vort попробую засунуть i2pd в профилировщик
Vort в общем, после профилирования стало всё понятно: SSU2 жрёт раз в 5 больше CPU, чем NTCP2
quake в чем разница между SSU2 и NTCP2
Vort один основан на UDP, другой на TCP
quake а можно ли поднять сайт i2p без дкдика
Vort quake: по-моему, на чём угодно можно
quake ну например на компе
quake без статики?
Vort quake: думаю, что можно. хотя не проверял. ну только он же должен круглые сутки работать. иначе зачем такой сайт?
quake вот вот
quake малина как вариант
Vort (по профилированию) вот результат сбора данных за ~40 минут: privatebin.i2p/?303e3a8dde86dd37#6KD1ghrJfVKacM7aLXY4vEL1UhgW8imD9YPAjboeiA8N
Vort треть времени нагрузка была маленькая
quake что за даннык
Vort треть времени канал полностью забит SSU2
Vort треть времени полностью забит NTCP2
quake по какой период
Vort quake: данные по нагрузке процессора от работы i2pd узла
Vort внизу на графике видно, когда была нагрузка SSU2, а когда NTCP2
quake и о чем это говорит
Vort 1. о том, что если процессор компа, где работает i2pd, слабый, то он может не вытянуть нагрузку SSU2
Vort 2. о том, что надо подумать над тем, можно ли сделать работу SSU2 эффективнее
quake и как быть
Vort следить за нагрузкой процессора. если перегружается - пробовать отключать SSU2
Vort если не перегружается - то всё в порядке
quake а секйчас SSU больше не робит
Vort в новой версии (которая ещё не выпущена) обычного SSU уже нету
quake новая версия это 2.44.
weko quake: ssu2 поверх UDP, NTCP2 поверх TCP
weko А уже ответили
quake ответили
baz да
quake вот были бы туннели для стима
quake что можно было покупать все игры
quake через тор не удаеться войти
weko Vort: в 2.44 SSU отключён по умолчанию даже
quake стим глючит конкретно
quake это я знаю
weko Так не используй стим lol
weko Зачем использовать анонимные сети для не анонимного стима
weko Толка от этого 0
Vort чуть лучше посмотрел на результаты профилирования. к сожалению, основное использование CPU идёт из API функций ОС
quake чтобы обойти блокировку
Vort видимо, TCP обрабатывается где-то на низком уровне (в ядре?), а UDP надо гонять между уровнями
quake западные шалавы ввели санкцию
Vort ещё одно подозрение, что SSU2 может мельчить пакеты. но это надо уже через Wireshark смотреть
quake с локального компа смотришь
quake трафик
quake SSU2
Vort quake: конечно
quake узлы помойму сами создаються
quake вроде
quake через DHT
Vort в общем, три API функции ОС - GetQueuedCompletionStatus, WSASendTo, SleepConditionVariableSRW в сумме потребляют 73% CPU
Vort остальное можно оптимизировать
Vort посмотрел длину пакетов. в TCP данные немного лучше пакуются по пакетам
Vort для TCP пакетов размером 1.1к - 36%, 1.5к - 19%
Vort для UDP 1.1к - 64%, 1.5к нет вообще
Vort но это я смотрел при обычной работе. теперь надо словить момент когда перегруз CPU приходит
Vort и посмотреть распределение размеров UDP в тот момент
Vort редко перегруз приходит. попробую поставить SSU2-only, наверно так быстрее воспроизведётся
Vort словил UDP пакеты при перегрузке CPU. ничего особенного - распределение размеров такое же
Vort так что дело в самом SSU2. ну или в его взаимодействии с ОС
Vort интересно, почему он пилу делает. NTCP2 так себя не ведёт - его нагрузка ровная
Vort может, эта форма пилы ведёт к разгадке проблемы
Vort в очередной баг вляпался: отключить NTCP2 то можно, а вот обратно включить - уже нельзя. только удаление router.info помогло
orignal trusishka запросто. это означает что транзит идет куда то на хуй то есть никуда не отправляется
orignal weko для начала он бы четко софрмулировал проблему
orignal мне например она понятна и это не проблема
Vort хорошо, что он подопнул челов, которые вырубали транзит. остальное сомнительно
orignal Vort отправка большее транзита это йтвой служебный трафик
orignal типа поиска узлов и запросов
Vort orignal: в 1.6 раз больше транзита ёпт
orignal легко
orignal если у тебя конец тоннеля и каждый пакет на разный адрес
Vort ок
orignal насчет обратного включения NTCP2 посмотрю
relaybot 13trusishka: если транзит больше выходит он удаляется на моем роутере?
orignal то есть сценарий отключить NTCP2 а потом включить?
Vort ну почти. я ещё ygg вырубал. так как без него не отрубалось
Vort а потом попробовал включить обратно и то и другое
orignal trusishka это значит что пакеты предназначены адресу с которым нельзя соединиться
Vort ygg включился, основной NTCP2 - нет
relaybot 13trusishka: Ок понял
orignal Vort скажи точный сценарий
Vort точный сценарий это мне надо на виртуалке проверять. я на 100% не запомнил. займусь чуть попозже
Vort при "пилу" SSU2 какое-то логичное объяснение есть? это известный эффект?
Vort про*
orignal что за пила?
orignal влом i2p запускать
orignal так скажи
Vort нагрузка CPU от SSU2 специфичной формы
Vort ну а про то, что она в несколько раз выше нагрузки от NTCP2 я выше много написал
weko orignal: ты про деда то?
orignal ну да
orignal то что нагрузка специифичной формы там перепосылка идет раз в 150 миллисекнуд вроде
orignal или 300 я точно не помню
orignal то что выше тоже понятно почему
Vort зубец пилы шириной секнуд в 20-30
Vort не мерял
Vort но не миллисекунды
orignal 20-30 секунд говоришшь?
Vort ну примерно. у графика там пиксель около секунды
Vort может минуту зубец
Vort надо измерить будет
orignal const int SSU2_TERMINATION_CHECK_TIMEOUT = 30; // in seconds
orignal раз в 30 секунд происходит чистка
Vort 2 пикселя примерно равны секунде
Vort так что похоже
orignal ну так это нормально
orignal смотри в чем дело
orignal в старом SSU на каждую сессию создавался таймер
orignal который тоже дескриптор
orignal в результате вечная вылетали за пределы
orignal потому в SSU2 я все повесил на один таймер
orignal приводящий вот к таким зубцам
Vort так что это за чистка такая, которая в ноль сбивает нагрузку CPU ?
Vort на трафике тоже пила, кстати? не проверял
orignal void SSU2Server::HandleTerminationTimer (const boost::system::error_code& ecode)
orignal проход по нескольким спискам
orignal и да ты прав надо будет разнести по разным
Vort там хоть гонок нету? почти всё без мьютексов перебирается. пока работает таймер больше ничего не происходит? for (auto it: m_Sessions)
orignal нет все в том же треде
Vort ок
orignal тут все четко
orignal тред всегда один
Vort так что получается - этот таймер как-то ломает передачу данных?
Vort нарастает скорость(?), приходит таймер - и опять сначала
orignal ты про нагрузку на проц или скорость?
Vort ну я не знаю, связаны они или нет
Vort во логике, должны, но я ещё не проверил
Vort по*
orignal понятно что на скорость влияет
orignal потому что когда таймер этот отрабатывает то ничего не передается и не обрабатываетсяч
orignal приниматься принимается но складывается в очередь
Vort остальной код, видимо, это как обрыв определяет. ну или что-то в этом роде
Vort и сбрасывает окно, допустим. это всё я почти наугад говорю, правда
Vort но, может, и не в таймере дело
Vort я сейчас получше глянул - зубцы не очень равномерны
Vort какой-то меньше, какой-то больше
Vort иногда нагрузка вообще не зубцами идёт, а как попало
Vort сейчас ещё один скриншот подготовлю
Vort красными стрелками отметил подобие волн, синими - хрен пойми что. но всё это SSU2. NTCP2 так жрать CP не умеет
orignal потому что у NTCP2 это загнано в внутрь ядра
orignal думаю это перепосылки
orignal там докольно сложный алгоритм
quake orignal: что дает статика для i2p
orignal что такое статика?
quake orignal: имел ввиду IP
orignal ничего
orignal главное чтобы был доступен извне
quake orignal: upnp вроде задействуеться
orignal мы говорим о разном
orignal у тебя был вопрос о статическом IP
quake да
quake мне смогут извне достучаться?
weko quake: если не за nat то могут напрямую
weko Если за nat то могут с интродьюсером
quake а как за nat выйти
orignal так статический или белый?
quake у меня вообще динамический
orignal ну и нормально
weko quake: ну динамический может быть белый а может быть серый
weko Серый значит за nat
orignal и наборот
weko Ага
weko Может быть за nat твоего роутера тоже, но на нём можно пробросить
weko Порт
baz nat соответственно бывает конический или симметричный
weko Да от этого ещё зависит как работает hole punch
quake А как определить белый или серый ip
weko quake: ну если отдельно не подключал у обоса (провайдера) то скорее всего серый
weko Обсоса
weko Можешь просто свой адрес попинговать с другого адреса
weko Если ответ есть значит белый
weko Если нету значит серый
quake внешний ip
Vort orignal: разгоняется SSU2, скорость превышает возможности канала, сыпятся пакеты, приходит перепосылка и скорость сбрасывается в ноль - как-то так?
weko quake: а нет, нужно тестить коннект на конкретный порт
weko Потому что у провайдера могут быть включены ответы на пингм
quake но торренты раздаю без проблем хотя порт закрыт
quake скачанные торренты
weko Вообще если в i2pd пишет что либо другое кроме OK то его порт не доступен
weko quake: с торрентами я хз
weko Может быть там какой механизм сделан
weko По типу интродьюсеров в i2o
weko i2p
quake upnp скорее всего у меня через нее раздача идет
weko quake: про торренты ничего сказать не могу
quake слушай а 4g антеннах ты шаришь?
weko Ну когда то смотрел какие то видосы
weko Но скорее нет
quake хотед себе прикупить комнатную но не стал толку мне кажеться от нее не будет
weko quake: толк может и быть
weko Зависит от расстояния
weko Если слишком много то смысла нет, если не слишком то есть
weko Опа!!
weko Опять Firewalled
Vort у меня тоже проскакивало. но я правда сейчас но компом издеваюсь. виртуалку запускаю
weko orignal: мне кажется можно не отключать флудфил, если Firewalled, потому что в реальности с большей части адресов пакеты доходят
weko Vort: у меня есть подозрения что это кто то специально делает. Но хз.
weko Ну шлёт какой то гавно-порт
Vort а я думаю, что это из-за перегрузок различных
Vort orignal: готово воспроизведение заклинивающего отключения NTCP2.
Vort [16:20:15] <Vort> а я думаю, что это из-за перегрузок различных
Vort про заклинивающий NTCP2:
Vort 1. надо запустить i2pd со стандартными настройками
orignal дальше что?
Vort 2. выйти, поставить в конфиге [ntcp2]enabled = false
Vort 3. запустить. опять выйти, закомментировать #enabled=false
Vort 4. при следующем запуске NTCP2 не будет
Vort хотя строчка уже закомментирована
Vort пробовал ещё вариант ставить enabled=true - тоже не помогает
Vort помогает только удаление router.info
Vort то есть просто вкл.-выкл.-вкл. - а оно уже не вкл.
orignal понял
orignal посмотрю
relaybot 13R4SAS: weko, завтра
weko Окей
orignal mañiana ))
Vort есть тут кто? ) возник у меня вопрос по туннелям посреди ночи почему-то )
orignal я есть
weko я есть
Vort вот если java узел перегружен, он не позволит через себя туннель построить?
orignal дропает
orignal дед же сказал
Vort хочу понять, как это выглядит. туннель создаётся, а потом через какое-то время уничтожается?
weko смотря у кого
weko у транизитов за джавой не создаётся
weko у транзитов перед создаётся но там 0 байт
Vort допустим, я слежу за вкладкой 127.0.0.1:7070/?page=tunnels
weko у тебя удаляется после того как долго нет ответа о статусе туннеля
Vort вот там внизу рождается новый туннель на 0 килобайт. дальше что произойдёт если java узел перегружен?
Vort так на 0 килобайт и останется, станет failed?
weko на транзитном роутере он будет 10 минут висеть
orignal посылается запрос на тоннель
orignal если через 30 секунд нет ответа то выкидываем
orignal если приходит отлуп то просто выкидывается
Vort то есть, что будет видно именно глядя на ту страницу? established, 0 KiB -> failed, 2 KiB ?
Vort примерно
weko ну может ещё отлуп прийти
weko или пингов не быть
Vort а это не failed?
Vort короче. я вижу два класса ситуаций
orignal failed это когда тест проваливается
Vort 1. established и почти сразу failed
orignal значит тест не прошел
Vort 2. established, долго работает и только потом failed
weko ну да тоесть пингов нет значит тест не пройден
orignal ну значит где то в середине узел поломался
orignal значит что послали пинг через пару тоннелей
orignal он не вернулся
Vort так вот когда java "не может" - это ситуация номер 1 ?
orignal берем другие пары если снова не вернулся ставим failed