~AreEnn
                        
                        
                            ~R4SAS
                        
                        
                            ~acetone
                        
                        
                            ~orignal
                        
                        
                            ~villain
                        
                        
                            &N00B
                        
                        
                            +Xeha
                        
                        
                            GFW
                        
                        
                            Nobody
                        
                        
                            Opax
                        
                        
                            WebClient95
                        
                        
                            anon
                        
                        
                            anontor
                        
                        
                            anonuser
                        
                        
                            b3t4f4c3
                        
                        
                            deserving-stegosaur
                        
                        
                            duanin2
                        
                        
                            fidoid
                        
                        
                            fujifilm
                        
                        
                            halloy1341
                        
                        
                            iiii
                        
                        
                            kaneki
                        
                        
                            karamba_i2p
                        
                        
                            leopold
                        
                        
                            mareki2p
                        
                        
                            negative_rock127
                        
                        
                            nik0tr
                        
                        
                            not_bob_afk
                        
                        
                            ntty
                        
                        
                            osoznayka
                        
                        
                            poriori
                        
                        
                            profetikla
                        
                        
                            rc13
                        
                        
                            shaye
                        
                        
                            slfd
                        
                        
                            sonya
                        
                        
                            teeth
                        
                        
                            un
                        
                        
                            weko_
                        
                        
                            КрутыеЖиды]]]]]]]]]]]]]_Z
                        
                    
                    
                        weko
                    
                    
                        [21:41:48] <orignal> weko а как у у тебя было в тестовой сети?
                    
                
                
                    
                        weko
                    
                    
                        Я разный буфер смотрел
                    
                
                
                    
                        Vort
                    
                    
                        я получил дополнительную информацию по поводу проблемы с тормозящими пингами локалхост туннелей на фоне раздачи торрентов
                    
                
                
                    
                        Vort
                    
                    
                        для её воспроизведения не обязателен торрент и не обязательна нагрузка именно на UDP. достаточно iperf3 -c запроса на какой-то внешний сервер
                    
                
                
                    
                        Vort
                    
                    
                        в результате добавления отладочного вывода к i2pd я обнаружил, что пакеты по локалхосту передаются довольно быстро, даже на фоне нагрузки внешней сети
                    
                
                
                    
                        Vort
                    
                    
                        однако i2pd по какой-то причине при внешней нагрузке начинает тормозить с ответами на локалхост запросы
                    
                
                
                    
                        Vort
                    
                    
                        вот я подготовил вырезки из логов. по ссылке данные двух пингов - при параллельной нагрузке iperf3 и без неё:
                    
                
                
                
                    
                        tetrimer
                    
                    
                        Общая очередь на обработку?
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: это были только запущенные узлы. у них нагрузки было минимум. там нечего было полсекунды обрабатывать
                    
                
                
                    
                        Vort
                    
                    
                        проблема, похоже, оказалась "с краю":
                    
                
                
                    
                        Vort
                    
                    
                        тормоза добавляются где-то между SSU2Server::HandleReceivedFrom и SSU2Server::ProcessNextPacket
                    
                
                
                    
                        orignal
                    
                    
                        Vort эти тормоза называются очередью между тредами )))
                    
                
                
                    
                        Vort
                    
                    
                        orignal: тред может быть занят какой-то фигнёй и ждать долгое время, мешая обрабатывать пакеты
                    
                
                
                    
                        Vort
                    
                    
                        реальной нагрузки у него быть не могло
                    
                
                
                    
                        Vort
                    
                    
                        бага вылазит сразу же после запуска узлов, когда у них ещё почти нету транзита
                    
                
                
                    
                        Vort
                    
                    
                        ну и потом тоже, понятное дело
                    
                
                
                    
                        onon1
                    
                    
                        Может там какая работа с диском?
                    
                
                
                    
                        Vort
                    
                    
                        это первая моя мысль
                    
                
                
                    
                        orignal
                    
                    
                        он не был занят он просто не получал процессор
                    
                
                
                    
                        Vort
                    
                    
                        вторая - что где-то опять какой-то flush забыт
                    
                
                
                    
                        Vort
                    
                    
                        orignal: крайне маловерятно. полсекунды блин. иногда дольше
                    
                
                
                    
                        orignal
                    
                    
                        да но машина то у тебя была занята
                    
                
                
                    
                        orignal
                    
                    
                        если проц полностью забит то запросто
                    
                
                
                    
                        orignal
                    
                    
                        насчет flush да погсмотрю
                    
                
                
                    
                        Vort
                    
                    
                        не полностью. говорю же - 50% где-то свободно
                    
                
                
                    
                        orignal
                    
                    
                        возможно
                    
                
                
                    
                        Vort
                    
                    
                        придурошная нагрузка от Tor, кстати, ядро процессора не упирает - она размазана по всем ядрам
                    
                
                
                    
                        Vort
                    
                    
                        проще сейчас скрин загрузки CPU сделать :)
                    
                
                
                    
                        Vort
                    
                    
                        orignal: вот так у меня круглые сутки:  paste.i2pd.xyz/?0937b42a3d02ddd9#7wEBpP9HE4WUkY8wssnGSgh2mhc4TYwSeaeW3WAeAXd5  
                    
                
                
                    
                        orignal
                    
                    
                        тут дело не в ядре
                    
                
                
                    
                        orignal
                    
                    
                        планироващик работает много сложнее
                    
                
                
                    
                        orignal
                    
                    
                        Transit Tunnels: 64452
                    
                
                
                    
                        orignal
                    
                    
                        блять
                    
                
                
                    
                        Vort
                    
                    
                        Transit Tunnels: 54153
                    
                
                
                    
                        Vort
                    
                    
                        ага
                    
                
                
                    
                        onon1
                    
                    
                        И вправду, я думал всё уже
                    
                
                
                    
                        orignal
                    
                    
                        упертые дятлы я смортрю
                    
                
                
                    
                        orignal
                    
                    
                        Transit Tunnels: 71706
                    
                
                
                    
                        onon
                    
                    
                        Давай, может, всё таки подумай над идеей не учитывать пустые туннели в лимитах...
                    
                
                
                    
                        orignal
                    
                    
                        я как раз с дедом об этом час говорю
                    
                
                
                    
                        onon
                    
                    
                        Насколько сложнее будет атакующему создавать туннели, и отправлять в них по 1 пакету, чем просто генерить пустые?
                    
                
                
                    
                        orignal
                    
                    
                        ему придется держать весь пакет ключей тогда
                    
                
                
                    
                        orignal
                    
                    
                        и прогонять 1K через них каждый раз
                    
                
                
                    
                        Vort
                    
                    
                        а я пока что уточнил место тормозов: между "GetService().post(std::bind(&SSU2Server::HandleReceivedPacket, this, packet));" и, собственно, "SSU2Server::HandleReceivedPacket"
                       
                
                
                    
                        Vort
                    
                    
                        теперь надо смотреть что блокирует поток
                    
                
                
                    
                        Vort
                    
                    
                        я там видел какие-то мьютексы
                    
                
                
                    
                        orignal
                    
                    
                        ха 
                    
                
                
                    
                        orignal
                    
                    
                        ты все верно нашел
                    
                
                
                    
                        orignal
                    
                    
                        там вместо очереди поток запросов на io_service
                    
                
                
                    
                        orignal
                    
                    
                        и на каждлый запрос очередь
                    
                
                
                    
                        orignal
                    
                    
                        *мьютекс
                    
                
                
                    
                        orignal
                    
                    
                        надо переделать
                    
                
                
                    
                        orignal
                    
                    
                        на самом деле по уму там должна быть выборка пакетов из буфера
                    
                
                
                    
                        orignal
                    
                    
                        сразу много одним post
                    
                
                
                    
                        Vort
                    
                    
                        я пока что не пойму, какой именно код может тупить по несколько секунд
                    
                
                
                    
                        Vort
                    
                    
                        то есть вот где-то тупо стоит ожидание
                    
                
                
                    
                        orignal
                    
                    
                        почему ты не думаешь что код просто не вызывается?
                    
                
                
                    
                        onon1
                    
                    
                        Лось, там дед раздаёт рисёрч по итупи, пишет что в личку скинет, я у мего попросил, что-то не отвечает, можешь попросить, что бы скинул, мне интересно.
                    
                
                
                    
                        orignal
                    
                    
                        нет в том месте нет никаокго ожидания
                    
                
                
                    
                        Vort
                    
                    
                        мьютексы мьютексами, но они же накрывают какой-то код, который должен тупить
                    
                
                
                    
                        onon1
                    
                    
                        Скажи ему что я свой.
                    
                
                
                    
                        Vort
                    
                    
                        если код под мьютексом тупить не будет, то и мьютекс не будет
                    
                
                
                    
                        onon
                    
                    
                        О все, скинул
                    
                
                
                    
                        orignal
                    
                    
                        как ему скинут спрошу
                    
                
                
                    
                        orignal
                    
                    
                        Vort еще раз если код не тупит а просто не испоняется
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> почему ты не думаешь что код просто не вызывается?" я хз как буст работает, но если ему сказали перекинуть в другой тред, но не вижу причин этого не сделать, кроме как если тот тред чем-то занят
                    
                
                
                    
                        orignal
                    
                    
                        мьютексы же просто вставляеют в список задач и убирают 
                    
                
                
                    
                        orignal
                    
                    
                        он не так делает
                    
                
                
                    
                        orignal
                    
                    
                        он ставит в список задач
                    
                
                
                    
                        Vort
                    
                    
                        а другой тред выгребает, да?
                    
                
                
                    
                        orignal
                    
                    
                        а вот список задач может тупо расти и тот тред который их выполняет не справяется
                    
                
                
                    
                        orignal
                    
                    
                        другой тред их исполняет
                    
                
                
                    
                        Vort
                    
                    
                        так вот в том и суть - он может не справляться только если будет ждать. внутри задачи я имею в виду!
                    
                
                
                    
                        Vort
                    
                    
                        то есть, в тред попадает какая-то задача с ожиданием внутри и всё встаёт
                    
                
                
                    
                        orignal
                    
                    
                        так на тот тред который стаялет это не оказывает влияеия
                    
                
                
                    
                        orignal
                    
                    
                        естественно
                    
                
                
                    
                        orignal
                    
                    
                        но таких задач быть не должно
                    
                
                
                    
                        orignal
                    
                    
                        в этом треде все асихроннок
                    
                
                
                    
                        Vort
                    
                    
                        вот. значит, надо все задачи проверять
                    
                
                
                    
                        Vort
                    
                    
                        можно вообще для каждой задачи в лог писать время начала и время конца
                    
                
                
                    
                        orignal
                    
                    
                        да нету ттам ожиданий
                    
                
                
                    
                        Vort
                    
                    
                        я видел ) но хз насколько это большое ожидание
                    
                
                
                    
                        orignal
                    
                    
                        этот тред обрабатывает весь трафик
                    
                
                
                    
                        Vort
                    
                    
                        тем важнее починить
                    
                
                
                    
                        orignal
                    
                    
                        я думаю там просто очередь из заданий вырастает
                    
                
                
                    
                        orignal
                    
                    
                        что починить?
                    
                
                
                    
                        Vort
                    
                    
                        ожидание внутри треда. ну для начала это надо доказать )
                    
                
                
                    
                        orignal
                    
                    
                        а если там нет ожидания?
                    
                
                
                    
                        Vort
                    
                    
                        я сейчас покажу, что я находил. только когда найду ещё раз
                    
                
                
                    
                        orignal
                    
                    
                        а просто не справляется
                    
                
                
                    
                        Vort
                    
                    
                        orignal: значит, будет доказательство, что нету ожидания :)
                    
                
                
                    
                        orignal
                    
                    
                        ну иши ))
                    
                
                
                    
                        Vort
                    
                    
                        говорю же - узлы были без нагрузки
                    
                
                
                    
                        Vort
                    
                    
                        ага
                    
                
                
                    
                        orignal
                    
                    
                        мысль появлась
                    
                
                
                    
                        orignal
                    
                    
                        мне про это давно R4SAS  говорил
                    
                
                
                    
                        orignal
                    
                    
                        что под виндой UDP send не мгновенный
                    
                
                
                    
                        Vort
                    
                    
                        да я сейчас, наверно, все задачи из треда буду оборачивать логами
                    
                
                
                    
                        orignal
                    
                    
                        думаю проблема там
                    
                
                
                    
                        orignal
                    
                    
                        и потому именно у тебя что винда
                    
                
                
                    
                        orignal
                    
                    
                        и потому нет ее с NTCP2
                    
                
                
                    
                        orignal
                    
                    
                        потому что там async_send
                    
                
                
                    
                        Vort
                    
                    
                        даже если это и так, нужны пруфы. наугад чинить такую гадость нельзя - если "убежит", будет плохо
                    
                
                
                    
                        Vort
                    
                    
                        таймеры тоже в этом треде обрабатываются что ли?
                    
                
                
                    
                        orignal
                    
                    
                        да
                    
                
                
                    
                        Vort
                    
                    
                        m_TerminationTimer, m_CleanupTimer, ...
                    
                
                
                    
                        orignal
                    
                    
                        все что на io_service этом
                    
                
                
                    
                        Vort
                    
                    
                        ок, пихаю логи дальше
                    
                
                
                    
                        Vort
                    
                    
                        всё что GetService ().post я проверил. там тормозов не нашёл
                    
                
                
                    
                        Vort
                    
                    
                        теперь таймеры буду проверять
                    
                
                
                    
                        Anonymous
                    
                    
                        orignal: why do you use 8 spaces for indentation?
                    
                
                
                    
                        Vort
                    
                    
                        tabs are not spaces
                    
                
                
                    
                        Anonymous
                    
                    
                        If you were to use just 2, that'd mean 4x more characters can fit, and is more readable than >79c
                    
                
                
                    
                        Anonymous
                    
                    
                        Vort: they consist of spaces
                    
                
                
                    
                        Anonymous
                    
                    
                        I guess you can just change it
                    
                
                
                    
                        Vort
                    
                    
                        and you can tune your IDE/editor to use whatever amount of spaces you want for them
                    
                
                
                    
                        Anonymous
                    
                    
                        ohnevermind
                    
                
                
                    
                        Anonymous
                    
                    
                        In Vi it's OK
                    
                
                
                    
                        Anonymous
                    
                    
                        Less is stupid
                    
                
                
                    
                        Anonymous
                    
                    
                        less -x2
                    
                
                
                    
                        Anonymous
                    
                    
                        sorry lol I'm stupid
                    
                
                
                    
                        Anonymous
                    
                    
                        tabs are awesome
                    
                
                
                    
                        Vort
                    
                    
                        orignal: ну вот. SSU2Server::HandleResendTimer finished, duration = 306
                    
                
                
                    
                        Vort
                    
                    
                        это миллисекунды
                    
                
                
                    
                        Vort
                    
                    
                        то есть, треть секунды в таймере просидели
                    
                
                
                    
                        Vort
                    
                    
                        всё остальное ждёт
                    
                
                
                    
                        orignal
                    
                    
                        ну это пачку выкинули
                    
                
                
                    
                        orignal
                    
                    
                        а что в этом не так?
                    
                
                
                    
                        orignal
                    
                    
                        идея вообще заключается в том что все операции с SSU2 делаются в одном треде кроме получения пакетов
                    
                
                
                    
                        orignal
                    
                    
                        что дает право не ставить мьютексы
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> а что в этом не так?" - то, что 306мс на такую задачу - это очень дохрена
                    
                
                
                    
                        orignal
                    
                    
                        сколько там сессиий?
                    
                
                
                    
                        Vort
                    
                    
                        сотня
                    
                
                
                    
                        orignal
                    
                    
                        да что то многовато
                    
                
                
                    
                        orignal
                    
                    
                        моя гиптореза насчет send имеет под собой основания
                    
                
                
                    
                        Vort
                    
                    
                        где-то тред засыпает внутри этой функции
                    
                
                
                    
                        Vort
                    
                    
                        ну вот надо понять, где именно теперь
                    
                
                
                    
                        orignal
                    
                    
                        там только на send может
                    
                
                
                    
                        orignal
                    
                    
                        но тогда я скажу что винда это все таки мастдай
                    
                
                
                    
                        `
                    
                    
                        А я гаварил, что венда торт
                    
                
                
                    
                        `
                    
                    
                        А линух для мальчикофф
                    
                
                
                    
                        `
                    
                    
                        Пересел на венду - лишился девственности. Как ещё пруфы?
                    
                
                
                    
                        `
                    
                    
                        )00
                    
                
                
                    
                        `
                    
                    
                        weko, вот так вот.
                    
                
                
                    
                        weko
                    
                    
                        Чего
                    
                
                
                    
                        weko
                    
                    
                        #tRU
                    
                
                
                    
                        Vort
                    
                    
                        вообще-то в комментах функции написано This function is used to send a datagram to the specified remote endpoint. The function call will block until the data has been sent successfully or an error occurs.
                    
                
                
                    
                        Vort
                    
                    
                        но я всё равно буду проверять
                    
                
                
                    
                        onon1
                    
                    
                        Так надо не ждать, а ехать дальше
                    
                
                
                    
                        onon1
                    
                    
                        А отправил, не отправил - потом разберёмся
                    
                
                
                    
                        orignal
                    
                    
                        вообще то для UDP она должна заврещшаться мгоновенно
                    
                
                
                    
                        orignal
                    
                    
                        под юниксом всегда так
                    
                
                
                    
                        orignal
                    
                    
                        отправлять асинхронного датараммы это моветон
                    
                
                
                    
                        Vort
                    
                    
                        так надо разбираться, почему она тупит. только вначале перепроверю
                    
                
                
                    
                        orignal
                    
                    
                        не ну если это так то это просто ебануться
                    
                
                
                    
                        onon1
                    
                    
                        Что, и ноут свой выкинешь со злости?
                    
                
                
                    
                        Vort
                    
                    
                        я кстати проверял вообще другой программой - делал локалхостовые UDP пинги во время такой же нагрузки - никаких проблем не было
                    
                
                
                    
                        Vort
                    
                    
                        так что нормально сделать можно. только покопаться надо
                    
                
                
                    
                        orignal
                    
                    
                        нет придется #ifdef WIN32 вызывать асинхронно
                    
                
                
                    
                        Vort
                    
                    
                        надо погуглить про эту проблему
                    
                
                
                    
                        orignal
                    
                    
                        да нет асихронный send сделать можно конечер
                    
                
                
                    
                        onon
                    
                    
                        А потом ловить новые баги...
                    
                
                
                    
                        orignal
                    
                    
                        но это ж глупость
                    
                
                
                    
                        Vort
                    
                    
                        не ну если функция синхронная, то ждать от неё мгновенного выполнения только потому что так в линуксе - это тоже не совсем ок
                    
                
                
                    
                        orignal
                    
                    
                        ну понимаешь тут какое дело
                    
                
                
                    
                        orignal
                    
                    
                        я i2pd писал как умел и только под лиункс
                    
                
                
                    
                        orignal
                    
                    
                        винда появилась позднее
                    
                
                
                    
                        weko
                    
                    
                        объясните кратко в чём дело
                    
                
                
                    
                        weko
                    
                    
                        что меня аж кавычка пинганул тут
                    
                
                
                    
                        onon
                    
                    
                        Говорят винда - говно...
                    
                
                
                    
                        weko
                    
                    
                        да вроде и так понятно
                    
                
                
                    
                        onon
                    
                    
                        Вызов функции отправки пакетов завешивает весь тред, пока ядро не ответит
                    
                
                
                    
                        onon
                    
                    
                        А отвечает оно ой как не сразу
                    
                
                
                    
                        onon
                    
                    
                        Кстати, майор работает.
                    
                
                
                    
                        weko
                    
                    
                        да, я написал ацетону, он починил
                    
                
                
                    
                        onon
                    
                    
                        Слава Ацетону
                    
                
                
                    
                        orignal
                    
                    
                        weko суть что UDP send под виндой подвисает
                    
                
                
                    
                        weko
                    
                    
                        acetone тебя тут все ждут))
                    
                
                
                    
                        Vort
                    
                    
                        orignal: onon: weko: может это и не send_to виноват
                    
                
                
                    
                        orignal
                    
                    
                        а он еще живуой?
                    
                
                
                    
                        weko
                    
                    
                        orignal: да
                    
                
                
                    
                        orignal
                    
                    
                        Vort а там больше ничего нету
                    
                
                
                    
                        weko
                    
                    
                        однако не активен у нас тут
                    
                
                
                    
                        orignal
                    
                    
                        вот же ж ... девопс
                    
                
                
                    
                        Vort
                    
                    
                        SSU2Server::Send _не_ висит...
                    
                
                
                    
                        orignal
                    
                    
                        а что же тогда?
                    
                
                
                
                    
                        Vort
                    
                    
                        а вот надо искать, что
                    
                
                
                    
                        orignal
                    
                    
                        так может они суммарно дают
                    
                
                
                    
                        orignal
                    
                    
                        каждый по отдельности меньше миллисекунды
                    
                
                
                    
                        Vort
                    
                    
                        0мс+1мс
                    
                
                
                    
                        orignal
                    
                    
                        по хорошему надо микросекунды бы замерять
                    
                
                
                    
                        Vort
                    
                    
                        в [] таймстампы миллисекундные
                    
                
                
                    
                        Vort
                    
                    
                        [334742026] LOCATION 13 | SSU2Server::HandleResendTimer started
                    
                
                
                    
                        Vort
                    
                    
                        [334742262] LOCATION 0 | SSU2Server::Send started
                    
                
                
                    
                        Vort
                    
                    
                        что-то сожрало 236 мс ещё до вызова send`а
                    
                
                
                    
                        Vort
                    
                    
                        я наверно туплю
                    
                
                
                    
                        Vort
                    
                    
                        там же два Send`а
                    
                
                
                    
                        Vort
                    
                    
                        а я поставил вывод только в один из них
                    
                
                
                    
                        Vort
                    
                    
                        сейчас и во второй воткну
                    
                
                
                    
                        onon
                    
                    
                        Давайте сделаем бан роутера при сильном превышении "нормальной нагрузки", нормальную нагрузку будем определять как среднюю по остальным роутерам...
                    
                
                
                    
                        orignal
                    
                    
                        там же просто итератор
                    
                
                
                    
                        Vort
                    
                    
                        говорю же - не везде поставил вывод. исправляю
                    
                
                
                    
                        weko
                    
                    
                        атаки продолжаются?
                    
                
                
                    
                        Vort
                    
                    
                        пока я исправляю своё логирование, погуглил про UDP в винду и кое что вспомнил
                    
                
                
                    
                        Vort
                    
                    
                        в винде*
                    
                
                
                    
                        orignal
                    
                    
                        weko ну вот сегодня у меня 78K тоннелей было
                    
                
                
                    
                        weko
                    
                    
                        пиздец
                    
                
                
                    
                        onon1
                    
                    
                        А уменя позавчера 230к
                    
                
                
                    
                        weko
                    
                    
                        джависты что думают?
                    
                
                
                    
                        Vort
                    
                    
                        orignal: насколько я понимаю, в винде можно сделать неблокирующие сокеты. они не будут асинхронными - но будут плевать ошибку в тех случаях, когда блокирующий должен заблокироваться
                    
                
                
                    
                        Vort
                    
                    
                        короч я на 99% уверен что именно это и надо сделать
                    
                
                
                    
                        Vort
                    
                    
                        перевести сокет в неблокирующий режим
                    
                
                
                    
                        orignal
                    
                    
                        так везде можно
                    
                
                
                    
                        Vort
                    
                    
                        ну и всё. будет как в линуксе
                    
                
                
                    
                        orignal
                    
                    
                        они в asio и так неблокирующие
                    
                
                
                    
                        Vort
                    
                    
                        тогда дальше копать надо
                    
                
                
                    
                        orignal
                    
                    
                        onon1 ты че лимит в миллион поставил?))
                    
                
                
                    
                        onon1
                    
                    
                        Ну да
                    
                
                
                    
                        Vort
                    
                    
                        я просто думаю, что они могут быть асинхронные, но блокирующие
                    
                
                
                    
                        orignal
                    
                    
                        <degs>  stackoverflow.com/questions/70717081/high-udp-communication-latency-because-of-audio-rendering-windows-c   
                    
                
                
                    
                        orignal
                    
                    
                        во
                    
                
                
                    
                        orignal
                    
                    
                        насколько я знаю asio вегда открывает как неблокирущий
                    
                
                
                    
                        acetone
                    
                    
                        weko: orignal: что-то стряслось? почему все ждут?)
                    
                
                
                    
                        Vort
                    
                    
                        10-15мс. хе. тут секунды...
                    
                
                
                    
                        weko
                    
                    
                        acetone: когда к нам вернёшься!
                    
                
                
                    
                        orignal
                    
                    
                        не знаю
                    
                
                
                    
                        orignal
                    
                    
                        что то все тебя спрашивают ))
                    
                
                
                    
                        onon1
                    
                    
                        Ацетон, спасибо, что починил майора сайт
                    
                
                
                    
                        onon1
                    
                    
                        Как без рук был.
                    
                
                
                    
                        acetone
                    
                    
                        onon1: веко маякнул)
                    
                
                
                    
                        orignal
                    
                    
                        Vort суть в том что проблема видимо есть
                    
                
                
                    
                        acetone
                    
                    
                        orignal: славное было время на зоне, вспоминаю порой!)
                    
                
                
                    
                        acetone
                    
                    
                        сидел по 16 часов в ирке
                    
                
                
                    
                        weko
                    
                    
                        acetone: повысь лимит на роутерах
                    
                
                
                    
                        weko
                    
                    
                        по туннелям
                    
                
                
                    
                        weko
                    
                    
                        хы)
                    
                
                
                    
                        orignal
                    
                    
                        ну да а теперь у тебя клеймо девопс ))
                    
                
                
                    
                        orignal
                    
                    
                        acetone ага обновись до транка и повысь лимит транзитов до 100K
                    
                
                
                    
                        acetone
                    
                    
                        weko: сейчас зайду на сервер, говори чего кого менять, я уже плохо помню
                    
                
                
                    
                        Vort
                    
                    
                        так не только лимит важен. вообще обновлять надо узел
                    
                
                
                    
                        weko
                    
                    
                        limits.transitunnels
                    
                
                
                    
                        acetone
                    
                    
                        Vort: здравствуй! Раз в месяц-два захожу накатывать новую версию i2pd на сервере
                    
                
                
                    
                        orignal
                    
                    
                        но в страх только 64K
                    
                
                
                    
                        acetone
                    
                    
                        благо, р4сас еще собирает под Debian 10!
                    
                
                
                    
                        Vort
                    
                    
                        :)
                    
                
                
                    
                        weko
                    
                    
                        65535 поставь если не последний коммит у тебя
                    
                
                
                    
                        weko
                    
                    
                        всё равно хватать не будет но лучше так
                    
                
                
                    
                        acetone
                    
                    
                        weko: сделал
                    
                
                
                    
                        weko
                    
                    
                        ну и вебконсоли чтобы не рестартать
                    
                
                
                    
                        orignal
                    
                    
                        слушайте так может это как раз onon1  и забивает сеть тоннелями?))
                    
                
                
                    
                        orignal
                    
                    
                        не ну там бы жеалтельно собрать чтобы баги пофиксить
                    
                
                
                    
                        onon
                    
                    
                        Черт, меня спалилию
                    
                
                
                    
                        acetone
                    
                    
                        weko: ага, дело говоришь. Роутер стоит 2.50.2, так что обновляться тоже не на что (из готового)
                    
                
                
                    
                        orignal
                    
                    
                        из транка надо
                    
                
                
                    
                        orignal
                    
                    
                        вот откуда такое количество тразитов в принципе
                    
                
                
                    
                        weko
                    
                    
                        постепенно увеличивается количество
                    
                
                
                    
                        orignal
                    
                    
                        мне кажется столько во всей сети нет
                    
                
                
                    
                        weko
                    
                    
                        явно кто то вручную меняет
                    
                
                
                    
                        orignal
                    
                    
                        и что то мне подсказывает кто ))
                    
                
                
                    
                        weko
                    
                    
                        а мне что-то подсказывает, что мы знаем под какими никами заходил данный персонаж
                    
                
                
                    
                        acetone
                    
                    
                        orignal: нашел у себя виртуалку с deb10 и достаточным кол-вом ресурсов для сборки. Собираю транк
                    
                
                
                    
                        orignal
                    
                    
                        ага
                    
                
                
                    
                        relaybot
                    
                    
                        13mittwerkz: ого ацетон тут
                    
                
                
                    
                        weko
                    
                    
                        acetone: ответь в лс пожалуйста
                    
                
                
                    
                        orignal
                    
                    
                        могу собранный дать для 10
                    
                
                
                    
                        onon1
                    
                    
                        Ацетон, чтобы нормально работало, там нужно ещё изменения в коде сделать.
                    
                
                
                    
                        onon1
                    
                    
                        А так не будет нормально работать под нагрузкой.
                    
                
                
                    
                        relaybot
                    
                    
                        13mittwerkz: acetone почему ты так редко появляешься?
                    
                
                
                    
                        orignal
                    
                    
                        работает же
                    
                
                
                    
                        relaybot
                    
                    
                        13mittwerkz: здесь
                    
                
                
                    
                        Vort
                    
                    
                        таки подтверждаю, что это Send тупит:  paste.i2pd.xyz/?d19cd4112b8d604b#F37FigSkziszgT75G34xetNo6FKuZ1zQkHRQ18ecG3LK  
                    
                
                
                    
                        Vort
                    
                    
                        теперь попробую понять, почему
                    
                
                
                    
                        acetone
                    
                    
                        orignal: о, будет супер) у меня до сих пор не собрался еще
                    
                
                
                    
                        acetone
                    
                    
                        как выйдет Debian 13, надо будет собраться с силами на обновление
                    
                
                
                    
                        orignal
                    
                    
                        ты качать будешь долььше чем соерется
                    
                
                
                    
                        acetone
                    
                    
                        orignal: все, собрался)
                    
                
                
                    
                        acetone
                    
                    
                        тысячи чертей, собрал с дебагом. совсем все позабыл)
                    
                
                
                    
                        orignal
                    
                    
                        ну а чем мешает дебаг?>
                    
                
                
                    
                        orignal
                    
                    
                        у меня все с дебагом
                    
                
                
                    
                        orignal
                    
                    
                        без дебага только если для собрки не хваатет памяти
                    
                
                
                    
                        Vort
                    
                    
                        cpu больше жрать будет скорее всего
                    
                
                
                    
                        orignal
                    
                    
                        столько же
                    
                
                
                    
                        acetone
                    
                    
                        все, сейчас буду рестартоваться)
                    
                
                
                    
                        Vort
                    
                    
                        такс. добавил socket.non_blocking (true); посмотрю, что из этого выйдет
                    
                
                
                    
                        onon
                    
                    
                        А жабоводы под виндой какие функции дёргают?
                    
                
                
                    
                        onon
                    
                    
                        Может у них такая же проблема?
                    
                
                
                    
                        Vort
                    
                    
                        а там абстракции скорее всего
                    
                
                
                    
                        weko
                    
                    
                        У жабоводов это делает джавамашина
                    
                
                
                    
                        Vort
                    
                    
                        надо в саму java лезть чтобы понять
                    
                
                
                    
                        orignal
                    
                    
                        дак это
                    
                
                
                    
                        orignal
                    
                    
                        переделать на асихронные не проблема
                    
                
                
                    
                        Vort
                    
                    
                        orignal: короч я думаю, надо переделывать SSU2 или на неблокирующие или на асинхронные
                    
                
                
                    
                        orignal
                    
                    
                        так переделай для пробы
                    
                
                
                    
                        Vort
                    
                    
                        и это же не просто вызовы поменять, надо иметь нормальную логику для ситуаций, когда система перегружена
                    
                
                
                    
                        Vort
                    
                    
                        я переделал на non_blocking 
                    
                
                
                    
                        Vort
                    
                    
                        сейчас проверяю
                    
                
                
                    
                        orignal
                    
                    
                        лучше на async_send
                    
                
                
                    
                        Vort
                    
                    
                        чем лучше?
                    
                
                
                    
                        onon
                    
                    
                        чем  non_blocking, очевидно же
                    
                
                
                    
                        orignal
                    
                    
                        тем что твой non_blocking будет кидать ошибку
                    
                
                
                    
                        Vort
                    
                    
                        в общем, с non-blocking бага нету. ничего не залипает
                    
                
                
                    
                        Vort
                    
                    
                        а вот как переделать на async - я пока что не знаю
                    
                
                
                    
                        orignal
                    
                    
                        так ты проверь результат sendto
                    
                
                
                    
                        Vort
                    
                    
                        ну я понимаю, что он _может_ кидать и иногда будет. но у меня пока что пинг просто стал нормальным и всё
                    
                
                
                    
                        Vort
                    
                    
                        я не агитирую за non-blocking
                    
                
                
                    
                        Vort
                    
                    
                        не против проверить и async
                    
                
                
                    
                        Vort
                    
                    
                        просто ещё не разбирался с ним
                    
                
                
                    
                        orignal
                    
                    
                        заменить на async_sendto
                    
                
                
                    
                        orignal
                    
                    
                        но там надо буфер сохранять
                    
                
                
                    
                        Vort
                    
                    
                        так коллбек же наверно надо?
                    
                
                
                    
                        Vort
                    
                    
                        ну вот...
                    
                
                
                    
                        orignal
                    
                    
                        коллбэк можно пустой
                    
                
                
                    
                        orignal
                    
                    
                        давай я попробую поставить non_blocking
                    
                
                
                    
                        orignal
                    
                    
                        разумеется через boost::asio
                    
                
                
                    
                        Vort
                    
                    
                        так я уже ставил, уже проверил
                    
                
                
                    
                        Vort
                    
                    
                        лучше скажи, что именно для async надо
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> но там надо буфер сохранять"
                    
                
                
                    
                        Vort
                    
                    
                        вот это я хз как
                    
                
                
                    
                        orignal
                    
                    
                        ты boost::asio испльзовал?
                    
                
                
                    
                        Vort
                    
                    
                        да
                    
                
                
                    
                        Vort
                    
                    
                        boost::asio::ip::udp::socket& SSU2Server::OpenSocket (const boost::asio::ip::udp::endpoint& localEndpoint)
                    
                
                
                    
                        Vort
                    
                    
                        после socket.set_option (boost::asio::socket_base::send_buffer_size (SSU2_SOCKET_SEND_BUFFER_SIZE));
                      
                
                
                    
                        Vort
                    
                    
                        socket.non_blocking (true);
                    
                
                
                    
                        Vort
                    
                    
                        и всё
                    
                
                
                    
                        orignal
                    
                    
                        отлично
                    
                
                
                    
                        orignal
                    
                    
                        теперь все таки сделай проверку результата sendto
                    
                
                
                    
                        Vort
                    
                    
                        надо и async протестировать
                    
                
                
                    
                        weko
                    
                    
                        продолжаю тему python и i2p, я думаю что основная проблема будет не в ресурсах CPU, а RAM ... пока не знаю насколько.
                    
                
                
                    
                        orignal
                    
                    
                        ксттаи есть же
                    
                
                
                    
                        orignal
                    
                    
                        SSU2: Send exception
                    
                
                
                    
                        Vort
                    
                    
                        ну да
                    
                
                
                    
                        Vort
                    
                    
                        наверно поэтому у меня ничего и не сдохло
                    
                
                
                    
                        orignal
                    
                    
                        а в логах нету?
                    
                
                
                    
                        Vort
                    
                    
                        ну я debug логи не включал
                    
                
                
                    
                        Vort
                    
                    
                        просто проверил, что пинги не тупят и всё
                    
                
                
                    
                        orignal
                    
                    
                        там error будет
                    
                
                
                    
                        orignal
                    
                    
                        предлагаю non_blocking под #ifdef win32 сделать
                    
                
                
                    
                        Vort
                    
                    
                        не нашёл Send exception
                    
                
                
                    
                        Vort
                    
                    
                        но это не значит, что его не будет
                    
                
                
                    
                        Vort
                    
                    
                        кстати так просто на async перейти не получилось
                    
                
                
                    
                        orignal
                    
                    
                        m_SocketV4.send_to (bufs, to, 0, ec);
                    
                
                
                    
                        Vort
                    
                    
                        там 4 параметр не ошибка, а какой-то токен
                    
                
                
                    
                        orignal
                    
                    
                        он тебе этот ec поставит
                    
                
                
                    
                        Vort
                    
                    
                        так что даже не компилируется
                    
                
                
                    
                        orignal
                    
                    
                        ну понятное длео
                    
                
                
                    
                        orignal
                    
                    
                        главная проблема там буфера
                    
                
                
                    
                        orignal
                    
                    
                        так что давай сделай с #ifdef и коммить
                    
                
                
                    
                        Vort
                    
                    
                        знаю, что сделаю. возьму чистый код, воткну туда non_blocking и поставлю на основной узел
                    
                
                
                    
                        orignal
                    
                    
                        да
                    
                
                
                    
                        orignal
                    
                    
                        хуже не станет в любом случае
                    
                
                
                    
                        Vort
                    
                    
                        уж там то вылезет ошибка под нагрузкой
                    
                
                
                    
                        Vort
                    
                    
                        если она вообще умеет это делать
                    
                
                
                    
                        orignal
                    
                    
                        но для UDP слать асихронно бы не хотелось
                    
                
                
                    
                        Vort
                    
                    
                        ну нормальный non-blocking - это тоже годится. надо делать перепосылки при ошибке
                    
                
                
                    
                        orignal
                    
                    
                        для UDP то зачем?
                    
                
                
                    
                        Vort
                    
                    
                        а вот такой половинчатый, что забиваем на ошибки - это хз
                    
                
                
                    
                        orignal
                    
                    
                        перепосылки этот как раз надо асинхронно
                    
                
                
                    
                        orignal
                    
                    
                        я считаю что для UDP правильно если мы забиваем на ошибки
                    
                
                
                    
                        Vort
                    
                    
                        если мы знаем, что нифига не послалось, то не надо это обходными путями выяснять
                    
                
                
                    
                        orignal
                    
                    
                        другое дело что если их много надо завершать сессию
                    
                
                
                    
                        orignal
                    
                    
                        возможно
                    
                
                
                    
                        Vort
                    
                    
                        но вполне вероятно что такой вариант случается раз в год
                    
                
                
                    
                        Vort
                    
                    
                        а если ещё и буфер побольше поставить...
                    
                
                
                    
                        weko
                    
                    
                        раз в год и палка стреляет ))
                    
                
                
                    
                        Vort
                    
                    
                        сейчас она стреляет каждую минуту... )
                    
                
                
                    
                        weko
                    
                    
                        я к тому, что всё равно нельзя оставлять
                    
                
                
                    
                        weko
                    
                    
                        что бы там не было )
                    
                
                
                    
                        Vort
                    
                    
                        если можно снизить шанс косяка в 100000 раз, то это вполне стоит сделать
                    
                
                
                    
                        Vort
                    
                    
                        а идеальный вариант - это я всегда поддерживаю. но обычно он - в будущем
                    
                
                
                    
                        weko
                    
                    
                        надо если есть баг его фиксить полностью
                    
                
                
                    
                        weko
                    
                    
                        Vort: ну вот записать надо тогда
                    
                
                
                    
                        orignal
                    
                    
                        давай PR короче
                    
                
                
                    
                        onon1
                    
                    
                        А можно пофиксить симптом, и в коде дабавить TODO =)
                    
                
                
                    
                        Vort
                    
                    
                        orignal: так, может, и в линуксе бывают такие же зависания?
                    
                
                
                    
                        Vort
                    
                    
                        чем в линуксе помешает non-blocking?
                    
                
                
                    
                        Vort
                    
                    
                        по логике, если он и так не блокируется, то хуже не станет :)
                    
                
                
                    
                        orignal
                    
                    
                        не будет ли жор проца
                    
                
                
                    
                        Vort
                    
                    
                        потестировать стоит
                    
                
                
                    
                        weko
                    
                    
                        проще проверить
                    
                
                
                    
                        Vort
                    
                    
                        вот и я сейчас тестировать буду. перезагружаю узел
                    
                
                
                    
                        Vort
                    
                    
                        пока что ексепшенов не вижу
                    
                
                
                    
                        Vort
                    
                    
                        у меня подозрение, что blocking может вообще не использовать весь буфер
                    
                
                
                    
                        Vort
                    
                    
                        то есть, тормоза, возможно, были из-за переполнения буфера размером в 1 пакет
                    
                
                
                    
                        orignal
                    
                    
                        да вполне
                    
                
                
                    
                        orignal
                    
                    
                        так что давай PR
                    
                
                
                    
                        Vort
                    
                    
                        так надо линуксы проверить
                    
                
                
                    
                        Vort
                    
                    
                        может и там лучше будет
                    
                
                
                    
                        Vort
                    
                    
                        можно сделать PR для всех платформ, затем проверить линукс и если станет хуже - воткнуть ifdef
                    
                
                
                    
                        orignal
                    
                    
                        да. давай так и сделаем
                    
                
                
                
                    
                        orignal
                    
                    
                        вмержил
                    
                
                
                    
                        orignal
                    
                    
                        счас проверим
                    
                
                
                    
                        weko
                    
                    
                        так может лучше сначала провенрить а потом сливать?
                    
                
                
                    
                        Vort
                    
                    
                        блин ) ну это же моя везучесть. полезли ексепшены )
                    
                
                
                    
                        Vort
                    
                    
                        [28/Feb/2024:18:58:56 +0200]@172/error - SSU2: Send exception: Операция на незаблокированном сокете не может быть завершена немедленно to 217.155.203.186:54122
                    
                
                
                    
                        Vort
                    
                    
                        но я всё равно продолжаю тест
                    
                
                
                    
                        Vort
                    
                    
                        лог потом только чистить придётся
                    
                
                
                    
                        Vort
                    
                    
                        узел, кстати, работает нормально
                    
                
                
                    
                        Vort
                    
                    
                        NTCP2 ( 2367 ) SSU2 ( 2354 )
                    
                
                
                    
                        Vort
                    
                    
                        так что вполне можно просто заткнуть ошибку пока что
                    
                
                
                    
                        onon1
                    
                    
                        А релиз скоро?
                    
                
                
                    
                        orignal
                    
                    
                        надо деда спросить когда у них
                    
                
                
                    
                        onon1
                    
                    
                        Если время есть, лучше бы сделать обработчик, если нет, TODO =)
                    
                
                
                    
                        orignal
                    
                    
                        weko ну откатим если что
                    
                
                
                    
                        orignal
                    
                    
                        и что должен делать этот обработчик?
                    
                
                
                    
                        onon1
                    
                    
                        Перепосылоать
                    
                
                
                    
                        Vort
                    
                    
                        пока что единственный побочный эффект - загаженный лог )
                    
                
                
                    
                        orignal
                    
                    
                        пееросылать это значит асихронная отправка
                    
                
                
                    
                        orignal
                    
                    
                        что медленно
                    
                
                
                    
                        Vort
                    
                    
                        интересно, что ексепшены идут волнами
                    
                
                
                    
                        Vort
                    
                    
                        вот сейчас 3 минуты нет ни одного
                    
                
                
                    
                        orignal
                    
                    
                        завсит от загрузки твоей сети значит
                    
                
                
                    
                        Vort
                    
                    
                        так я делал тест с iperf3, полностью канал упирал - не было ексепшенов
                    
                
                
                    
                        Vort
                    
                    
                        сейчас забит процентов на 60 - иногда лезут
                    
                
                
                    
                        Vort
                    
                    
                        скорее всего, дело в загрузке CPU 
                    
                
                
                    
                        onon
                    
                    
                        Что дольше, попытаться переотправить тот же пакет, или пересобрать его, пока другие отправляются?
                    
                
                
                    
                        Vort
                    
                    
                        и, может, это можно вылечить большим буфером. надо будет и это проверять
                    
                
                
                    
                        orignal
                    
                    
                        да проверь поставь в 1 мег
                    
                
                
                    
                        Vort
                    
                    
                        4 поставлю. уже ставил. и посмотрю, уменьшится ли количество ексепшенов
                    
                
                
                    
                        orignal
                    
                    
                        работает под лиукнсом нормально
                    
                
                
                    
                        onon
                    
                    
                        Под нагрузкой проверял?
                    
                
                
                    
                        orignal
                    
                    
                        на той машине большая нагрука именно на SSU
                    
                
                
                
                    
                        Vort
                    
                    
                        а вот это важно
                    
                
                
                    
                        Vort
                    
                    
                        If no buffer space is available within the transport system to hold the data to be transmitted, sendto will block unless the socket has been placed in a nonblocking mode.
                    
                
                
                    
                        orignal
                    
                    
                        то есть таки размер буфера
                    
                
                
                    
                        Vort
                    
                    
                        вот сейчас на 4 мегах тестирую
                    
                
                
                    
                        Vort
                    
                    
                        за 5 минут аптайма не вылезло. жду дальше
                    
                
                
                    
                        onon1
                    
                    
                        Я же говорил, ацетон нагрузку держать не будет.
                    
                
                
                    
                        orignal
                    
                    
                        так это я отвалился
                    
                
                
                    
                        orignal
                    
                    
                        а не он
                    
                
                
                    
                        Vort
                    
                    
                        интересно. сейчас у меня на узле заметно больше Sent:, чем раньше
                    
                
                
                    
                        orignal
                    
                    
                        ну логично
                    
                
                
                    
                        Vort
                    
                    
                        допустим, Transit 1600 Recv 1800 Sent 2000
                    
                
                
                    
                        orignal
                    
                    
                        потому что тред не тормозит
                    
                
                
                    
                        Vort
                    
                    
                        а раньше так не было. получается, ssu2 у меня был конкретно поломан
                    
                
                
                    
                        orignal
                    
                    
                        у меня всегда Sent было больше
                    
                
                
                    
                        Vort
                    
                    
                        кстати, 40 минут аптайма - ни одного ексепшена. смотрю дальше
                    
                
                
                    
                        Vort
                    
                    
                        это на 4 меговых буферах
                    
                
                
                    
                        orignal
                    
                    
                        отлично
                    
                
                
                    
                        orignal
                    
                    
                        но надо только начиная с O ставить
                    
                
                
                    
                        Vort
                    
                    
                        можешь как-то узнать, при каких значениях буферов бывают креши?
                    
                
                
                    
                        Vort
                    
                    
                        чтобы понимать, какие варианты доступны
                    
                
                
                    
                        orignal
                    
                    
                        дело не крэшах
                    
                
                
                    
                        Vort
                    
                    
                        ну... можно и в цикле ставить, как я предлагал, но всё же
                    
                
                
                    
                        orignal
                    
                    
                        а в памяти
                    
                
                
                    
                        orignal
                    
                    
                        ты ставишь когда по 4мега
                    
                
                
                    
                        orignal
                    
                    
                        это +8 к потребляемой памяти
                    
                
                
                    
                        Vort
                    
                    
                        так ты ж говорил что может ексепшен кинуть при установке большого буфера. или не может?
                    
                
                
                    
                        Vort
                    
                    
                        надо оба фактора учесть
                    
                
                
                    
                        orignal
                    
                    
                        так проверять 
                    
                
                
                    
                        orignal
                    
                    
                        там же можно код ошибки передавать
                    
                
                
                    
                        Vort
                    
                    
                        про память согласен - вопрос в том, сколько не жалко
                    
                
                
                    
                        orignal
                    
                    
                        ну если кто то ставит X значит ему не жалко
                    
                
                
                    
                        orignal
                    
                    
                        а L наоброт жалко
                    
                
                
                    
                        Vort
                    
                    
                        ну и надо понизить уровень лога для эксепшена "Операция на незаблокированном сокете не может быть завершена немедленно"
                    
                
                
                    
                        Vort
                    
                    
                        он нужен, но не как error
                    
                
                
                    
                        Vort
                    
                    
                        может, warn
                    
                
                
                    
                        Vort
                    
                    
                        "<~orignal> но надо только начиная с O ставить" можно начать с такого варианта, а потом подкручивать значения при необходимости
                    
                
                
                    
                        orignal
                    
                    
                        да можно просто info
                    
                
                
                    
                        Vort
                    
                    
                        так сколько для X стоит ставить? 1,2,4 мега?
                    
                
                
                    
                        onon
                    
                    
                        Через 5 лет будем чинить проблему больших задержек из-за переполнения буфера, никто и не вспомнит, зачем буфер увеличивали.
                    
                
                
                    
                        Vort
                    
                    
                        это же UDP, тут переполнение не из-за перегрузки сети, как я понимаю
                    
                
                
                    
                        Vort
                    
                    
                        а из-за тормозов внутри операционки
                    
                
                
                    
                        Vort
                    
                    
                        короч я не думаю, что будет хуже, чем сейчас
                    
                
                
                    
                        orignal
                    
                    
                        для X 4 
                    
                
                
                    
                        orignal
                    
                    
                        для L 128 K
                    
                
                
                    
                        orignal
                    
                    
                        остальные промежутоные
                    
                
                
                    
                        onon1
                    
                    
                        Под нагрузкой сыпет ошибками на стандартном буфере
                    
                
                
                    
                        orignal
                    
                    
                        мы  на работе ставим буфера 4M но это только для мультикаста 
                    
                
                
                    
                        Vort
                    
                    
                        или просто по лимиту bandwidth. + защита от бешеных значений
                    
                
                
                    
                        Vort
                    
                    
                        будет место на 1 секунду лага
                    
                
                
                    
                        Vort
                    
                    
                        onon1: линукс? какой флаг/скорость?
                    
                
                
                    
                        onon1
                    
                    
                        XR (2167.23 KiB/s)
                    
                
                
                    
                        orignal
                    
                    
                        Vort минимум 128K максимум 4M остальное пропроциальнально bandwidth
                    
                
                
                    
                        onon1
                    
                    
                        Debian
                    
                
                
                    
                        onon1
                    
                    
                        212992
                    
                
                
                    
                        Vort
                    
                    
                        значит, когда не сыпало, то узел лагал. понятно
                    
                
                
                    
                        orignal
                    
                    
                        ага давайте буфер поднимать
                    
                
                
                    
                        orignal
                    
                    
                        вводим две контанты MIN и MIAX
                    
                
                
                    
                        Vort
                    
                    
                        "минимум 128K максимум 4M остальное пропроциальнально bandwidth" хороший вариант
                    
                
                
                    
                        orignal
                    
                    
                        все что P и выше 4M
                    
                
                
                    
                        orignal
                    
                    
                        L всегда 128K
                    
                
                
                    
                        Vort
                    
                    
                        подозреваю, что когда другие узлы заметят, что мой узел уже не глючит, то быстренько его в лимит упрут )
                    
                
                
                    
                        orignal
                    
                    
                        так у меня все упелись
                    
                
                
                    
                        onon1
                    
                    
                        На 1703936 байтах ексепшены, вроде сыпать перестал. Но это пока не точно.
                    
                
                
                    
                        orignal
                    
                    
                        это почти 2 мега
                    
                
                
                    
                        Vort
                    
                    
                        onon1: стала ли на узел выше нагрузка с non-blocking + новым буфером, чем была до этого?
                    
                
                
                    
                        onon1
                    
                    
                        Пока различий не вижу
                    
                
                
                    
                        Vort
                    
                    
                        у меня чуть выше трафик и чуть выше загрузка CPU. видимо, раньше перепосылки SSU2 лагали, "экономя" CPU
                    
                
                
                    
                        Vort
                    
                    
                        ещё у меня до этого были "шипы" на графике коннектов. теперь нету. но это не точно
                    
                
                
                    
                        Vort
                    
                    
                        кажется, что узел "мягче" работает. возможно, эффект confirmation bias )
                    
                
                
                    
                        onon1
                    
                    
                        Вот уже пол часа нету ошибок с буфером 1,7 продолжаю наблюдение.
                    
                
                
                    
                        Vort
                    
                    
                        у меня полтора часа нету на буфере 4М
                    
                
                
                    
                        onon1
                    
                    
                        Я пытаюсь нащупать нижнее значение
                    
                
                
                    
                        onon1
                    
                    
                        На 16 метрах тоже ошибок нет.
                    
                
                
                    
                        onon1
                    
                    
                        Но опять же, нагрузка не максимальная.
                    
                
                
                    
                        Vort
                    
                    
                        для максимальной нагрузки может понадобиться несколько дней аптайма и несколько пережитых волн атак
                    
                
                
                    
                        Vort
                    
                    
                        я заметил, что другие узлы "прилипают" к моему, заметив, что он держит атаку
                    
                
                
                    
                        Vort
                    
                    
                        опять же не точно
                    
                
                
                    
                        Vort
                    
                    
                        наверно из-за долго висящих сессий
                    
                
                
                    
                        onon1
                    
                    
                        Я пока разницы на узлах "с" и "без" особо не вижу.
                    
                
                
                    
                        Vort
                    
                    
                        речь о non+blocking + большой буфер?
                    
                
                
                    
                        onon1
                    
                    
                        Да
                    
                
                
                    
                        onon1
                    
                    
                        Может ещё разгонится, нужно больше времени. Через сутки более реальные результаты будут.
                    
                
                
                    
                        onon1
                    
                    
                        Может на линуксах этот эффект не столь значителен.
                    
                
                
                    
                        Vort
                    
                    
                        а может и не в ОС дело. у меня же комп постоянно нагружен
                    
                
                
                    
                        Vort
                    
                    
                        вот и лезут всякие баги
                    
                
                
                    
                        orignal
                    
                    
                        ну так что рещили сколько ставим минимум?
                    
                
                
                    
                        Vort
                    
                    
                        это вообще очень со многим софтом на моём компе так
                    
                
                
                    
                        onon
                    
                    
                        Хм, попробую наверное собрать на слабой машинке.
                    
                
                
                    
                        orignal
                    
                    
                        а я на P4
                    
                
                
                    
                        Vort
                    
                    
                        orignal: да нормальный вариант 128к минимум
                    
                
                
                    
                        Vort
                    
                    
                        совместим с нынешним состоянием )
                    
                
                
                    
                        Vort
                    
                    
                        а для более скоростных узлов уже идут эксперименты )
                    
                
                
                    
                        orignal
                    
                    
                        у меня есть лучше идея
                    
                
                
                    
                        orignal
                    
                    
                        сделать параметр в конфиген
                    
                
                
                    
                        Vort
                    
                    
                        вообще, мне кажется, что надо решить, какой мы позволяем максимальный лаг
                    
                
                
                    
                        Vort
                    
                    
                        orignal: дефолтное значение _очень_ нужно
                    
                
                
                    
                        Vort
                    
                    
                        а переопределить конфигом особо прошаренным юзерам - это можно
                    
                
                
                    
                        Vort
                    
                    
                        дефолтное динамическое то есть
                    
                
                
                    
                        Vort
                    
                    
                        в зависимости от буквы
                    
                
                
                    
                        orignal
                    
                    
                        от bandwidth на самом деле
                    
                
                
                    
                        Vort
                    
                    
                        ну да
                    
                
                
                    
                        Vort
                    
                    
                        просто я к тому, что надо и дефолт и переопределение
                    
                
                
                    
                        orignal
                    
                    
                        uint64_t GetBandwidthLimit () const { return m_BandwidthLimit; };
                    
                
                
                    
                        orignal
                    
                    
                        даже функция есть
                    
                
                
                    
                        onon1
                    
                    
                        1703936 похоже мало для Х
                    
                
                
                    
                        orignal
                    
                    
                        а сколько надо? таки 4M?
                    
                
                
                    
                        onon1
                    
                    
                        Может тогда заодно и TCP "разогнать"? Сделать опцию в конфиге, кто на отдельном сервере разворачивает, включит...
                    
                
                
                    
                        onon1
                    
                    
                        Я пока увеличил ещё в 2 раза до 3,4 пока тестирую.
                    
                
                
                    
                        orignal
                    
                    
                        неее с TCP нельзя
                    
                
                
                    
                        orignal
                    
                    
                        там же на каждую сессиб свой сокет
                    
                
                
                    
                        onon1
                    
                    
                        Почему?
                    
                
                
                    
                        orignal
                    
                    
                        это много памяти надо
                    
                
                
                    
                        Vort
                    
                    
                        с TCP 4 тыщи коннектов да 4 мегабайта - это будет 16 гигов RAM жрать. наверно )
                    
                
                
                    
                        Vort
                    
                    
                        не проверял :D
                    
                
                
                    
                        orignal
                    
                    
                        да и не надо там столько
                    
                
                
                    
                        Vort
                    
                    
                        а вот те шипы коннектов, о которых я говорил и которых теперь нету:  paste.i2pd.xyz/?a1f0021b984948ac#uRNm3t23Z1SdZpP4CLsZuyEdmw3eFizAy6CCdT8DwhP  
                    
                
                
                    
                        Vort
                    
                    
                        я и раньше замечал, как у меня из-за раздач торрентов отваливались SSU2 и они же видимо переходили в NTCP2 сразу же
                    
                
                
                    
                        Vort
                    
                    
                        скорее всего, это и создавало шипы на графике
                    
                
                
                    
                        orignal
                    
                    
                        я счас дегса озадачил
                    
                
                
                    
                        onon1
                    
                    
                        tcp_tw_reuse интересная опция...
                    
                
                
                    
                        orignal
                    
                    
                        у нас бывали жалобы на задержки фида по мультикасту
                    
                
                
                    
                        orignal
                    
                    
                        мы все валили на рыночные спайки
                    
                
                
                    
                        onon
                    
                    
                        3,4 тоже не хватает. Попробую 4
                    
                
                
                    
                        orignal
                    
                    
                        старб сразу 16 не мучайся ))
                    
                
                
                    
                        onon1
                    
                    
                        на 16 пока не видел ошибок
                    
                
                
                    
                        onon
                    
                    
                        Роутер настроил мне 52 входящих и 63 исходящих туннеля....
                    
                
                
                    
                        orignal
                    
                    
                        в одном деситнейшине?
                    
                
                
                    
                        orignal
                    
                    
                        ну я же вчера объяснял почему
                    
                
                
                    
                        onon
                    
                    
                        Я просто думал их больше 16 не будет
                    
                
                
                    
                        orignal
                    
                    
                        нельзя задать больше 16
                    
                
                
                    
                        orignal
                    
                    
                        но если у тебя 16 то в какой то момент будет 32
                    
                
                
                    
                        orignal
                    
                    
                        потому что перестраиваются
                    
                
                
                    
                        onon
                    
                    
                        Когда туннель testFailed он перестраивается
                    
                
                
                    
                        onon
                    
                    
                        А потом он возвращается в строй
                    
                
                
                    
                        orignal
                    
                    
                        нет
                    
                
                
                    
                        onon
                    
                    
                        У меня да
                    
                
                
                    
                        orignal
                    
                    
                        он еще одного теста ждем
                    
                
                
                    
                        orignal
                    
                    
                        если второй раз не зафелился то возвращается
                    
                
                
                    
                        onon
                    
                    
                        =)
                    
                
                
                    
                        onon
                    
                    
                        Ну я заметил такую закономерность, может в коде оно не так.
                    
                
                
                    
                        onon
                    
                    
                        А, тогда всё правильно, у меня они просто не фейлятся.
                    
                
                
                    
                        onon
                    
                    
                        Поймал интересное исключение SSU2: Send exception: Invalid argument to 0.0.0.0:0
                    
                
                
                    
                        orignal
                    
                    
                        а ну это старая проблема
                    
                
                
                    
                        orignal
                    
                    
                        откуда оно берется пока не понтяно
                    
                
                
                    
                        onon
                    
                    
                        Акакеры акакуют
                    
                
                
                    
                        orignal
                    
                    
                        неее это где то проверка не стоит
                    
                
                
                    
                        orignal
                    
                    
                        дед говорит у них буфер в 256K
                    
                
                
                    
                        onon
                    
                    
                        Дед прав, проблема bufferbloat начала появляться, когда в свичи и хабы начали пихать буфер больше метра.
                    
                
                
                    
                        onon
                    
                    
                        Но там были медленные процы...
                    
                
                
                    
                        onon
                    
                    
                        А у нас, вроде, быстрые?
                    
                
                
                    
                        onon
                    
                    
                        Или не всегда?
                    
                
                
                    
                        onon
                    
                    
                        Я тут подумал, если у нас 3к активных коннектов, и они нам одновременно пришлют по 1КБ, получится 3 метра?
                    
                
                
                    
                        onon
                    
                    
                        На 4 метрах также периодически высыпает ошибки
                    
                
                
                    
                        onon
                    
                    
                        Не знаю, следствие ли это атаки туннелями
                    
                
                
                    
                        onon
                    
                    
                        Количество туннелей растет, ошибки в лог сыплются.
                    
                
                
                    
                        onon
                    
                    
                        Поднял до 5.
                    
                
                
                    
                        orignal
                    
                    
                        мне кажется выше 1M поднимать не стоит