~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
                        
                    
                    
                        Vort
                    
                    
                        "<onon1> Ну, а если на том конце кто-то медленный" - уменьшать окно стрима
                    
                
                
                    
                        Vort
                    
                    
                        "<weko> onon1: это в стримах отправка пучками" - это при полностью заполненном окне такое происходит что ли? откуда берутся пучки?
                    
                
                
                    
                        weko
                    
                    
                        Да когда окно заполнено
                    
                
                
                    
                        weko
                    
                    
                        Когда ACK приходит
                    
                
                
                    
                        Vort
                    
                    
                        ack`и, вроде, идут с интервалом 1/10 от RTT
                    
                
                
                    
                        Vort
                    
                    
                        пучки большими быть не должны. если я правильно понимаю
                    
                
                
                    
                        weko
                    
                    
                        1/10 окна получается тогда
                    
                
                
                    
                        Vort
                    
                    
                        максимум - 128. то есть, около 12 пакетов в ACK`е в среднем при полном окне
                    
                
                
                    
                        Vort
                    
                    
                        неужели это создаёт проблемы для SSU2 ?
                    
                
                
                    
                        weko
                    
                    
                        Не ебу
                    
                
                
                    
                        weko
                    
                    
                        Про ssu2 ничего не говорил и без понятие
                    
                
                
                    
                        Vort
                    
                    
                        отправлять чётко по одному пакету - это какая-то дурость. при адекватном алгоритме отправки всегда будут небольшие всплески
                    
                
                
                    
                        Vort
                    
                    
                        вопрос в том, какие всплески допустимы, а какие - нет
                    
                
                
                    
                        weko
                    
                    
                        Ну не обязательно чётко по одному
                    
                
                
                    
                        weko
                    
                    
                        Ну можно сделать что максимум 1/10 окна за раз
                    
                
                
                    
                        Vort
                    
                    
                        допустим, SSU2 окно почему-то не справляется. допустим, не будем разбираться, почему. какой размер очереди нужен сверху, чтобы ему помочь?
                    
                
                
                    
                        Vort
                    
                    
                        сейчас я сделал 2 секунды. допустим, это дохрена. можно попробовать сделать меньше - к примеру, 2 * RTT
                    
                
                
                    
                        Vort
                    
                    
                        меня только беспокоит, что если криво вычислим RTT, то будут проблемы
                    
                
                
                    
                        Vort
                    
                    
                        ну и минимум-максимум ограничение ещё добавить можно. допустим, от 100мс до тех же 2 сек
                    
                
                
                    
                        weko
                    
                    
                        Не нужна никакая очередь вообще. Не поможет никакая
                    
                
                
                    
                        weko
                    
                    
                        Хотя, по времени может и имеет смысл
                    
                
                
                    
                        weko
                    
                    
                        А может и нет
                    
                
                
                    
                        weko
                    
                    
                        Тут сложнее, но всё равно есть какой то размер
                    
                
                
                    
                        weko
                    
                    
                        А значит всё равно будет дроп
                    
                
                
                    
                        Vort
                    
                    
                        по-хорошему, надо чинить стримы, чтобы не отправляли больше, чем надо и SSU2, чтобы давал окно достаточного размера. но если это не починено - вопрос, что тогда
                    
                
                
                    
                        weko
                    
                    
                        Ну надо чтобы стримы имели ту штуку которая нормально изучает допустимый размер окга
                    
                
                
                    
                        weko
                    
                    
                        Забыл
                    
                
                
                    
                        weko
                    
                    
                        Вроде onon говорил
                    
                
                
                    
                        weko
                    
                    
                        Если это она
                    
                
                
                    
                        Vort
                    
                    
                        короч, очередь - это запасной вариант, когда что-то пошло не так
                    
                
                
                    
                        Vort
                    
                    
                        и вот надо сделать так, чтобы в таком случае очередь не вредила сильно
                    
                
                
                    
                        Vort
                    
                    
                        сделал размер очереди зависящим от RTT:
                    
                
                
                
                    
                        Vort
                    
                    
                        проверять надо хорошо, потому что я уже допускал ошибки в похожих местах (да и сейчас несколько сделал и уже выловил)
                    
                
                
                    
                        Vort
                    
                    
                        с этим коммитом дропы (транзита) начинаются при лаге > 3 * RTT
                    
                
                
                    
                        Vort
                    
                    
                        но на всякий случай сделал ещё плюс мин-макс лимиты 200..2000мс
                    
                
                
                    
                        Vort
                    
                    
                        дропы своих пакетов начинаются при достижении половины этого значения: 1.5 * RTT
                    
                
                
                    
                        Vort
                    
                    
                        RED пока что не делал, надо бы вначале динамический размер полноценно оттестировать
                    
                
                
                    
                        tetrimer
                    
                    
                        Vort: собрал, запустил... Вроде живет и работает.
                    
                
                
                    
                        Vort
                    
                    
                        хорошо, спасибо
                    
                
                
                    
                        tetrimer
                    
                    
                        Навскидку - стримы с rtt=8000 - стали быстрее переходить в рабочее состояние или закрываться.
                    
                
                
                    
                        tetrimer
                    
                    
                        МОжет и раньше было, но сейчас - как только появляются отличные от нуля значения в колонке Buf - стрим в следующий момент из статистики пропадает (закрывается).
                    
                
                
                    
                        tetrimer
                    
                    
                        Некоторые такие стримы - доживают до следующего запроса статистики (3-5 сек).
                    
                
                
                    
                        tetrimer
                    
                    
                        А, нет: есть долгоживущие заклинившие.
                    
                
                
                    
                        tetrimer
                    
                    
                        3780621586 [12]X 4uk....b32.i2p 2874 1675 1 0 188 8000 1 1
                    
                
                
                    
                        tetrimer
                    
                    
                        3780621586 [13]X 4uk....b32.i2p 3353 1675 1 0 188 8000 1 1
                    
                
                
                    
                        tetrimer
                    
                    
                        Две минуты уже висит почти не меняясь.
                    
                
                
                    
                        tetrimer
                    
                    
                        Пропал.
                    
                
                
                    
                        onon
                    
                    
                        Вот скажи ворту, чтобы разбирался с такими вот зависшими стримами.
                    
                
                
                    
                        tetrimer
                    
                    
                        Так я давно говорю, что надо их как-то более агрессивно сбрасывать по времени неактивности.
                    
                
                
                    
                        onon
                    
                    
                        А то он не совсем понимает зачем нужно окно в стримах и предлагает странные вещи.
                    
                
                
                    
                        Vort
                    
                    
                        "<onon> А то он не совсем понимает зачем нужно окно в стримах и предлагает странные вещи." 1. какие вещи? 2. какое отношение окно имеет к зависанию стримов?
                    
                
                
                    
                        Vort
                    
                    
                        3. так я этим и занимаюсь уже многие месяцы - гоняю баги
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: судя по графикам, узел "666" очень необычно отреагировал на мой коммит
                    
                
                
                    
                        Vort
                    
                    
                        возможно, коммит какую-то проблему создал, но, вероятнее, он какую-то проблему проявил
                    
                
                
                    
                        tetrimer
                    
                    
                        Я пока наблюдаю.
                    
                
                
                    
                        tetrimer
                    
                    
                        Стримы к локальным ресурсам - вроде как появляются и трафик идет. 
                    
                
                
                    
                        tetrimer
                    
                    
                        Client Tunnels: 84 Transit Tunnels: 0 - забанили?
                    
                
                
                    
                        tetrimer
                    
                    
                        На полчаса - кто банит?
                    
                
                
                    
                        onon1
                    
                    
                         Vort, 1. разные странные вещи, я уже указывал какие. 2. Похоже, что никакого, поэтому и предлагаю.
                    
                
                
                    
                        tetrimer
                    
                    
                        На третий раз забанили гораздо быстрее.
                    
                
                
                    
                        tetrimer
                    
                    
                        То-ли вручную банят, то-ли работа какого-то умного алгоритма.
                    
                
                
                    
                        Vort
                    
                    
                        onon: "разные странные вещи" - какая самая странная из них?
                    
                
                
                    
                        Vort
                    
                    
                        "Похоже, что никакого, поэтому и предлагаю" - разбираться с проблемами надо, а не избегать их. по крайней мере, пока есть возможность
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: мой коммит дал какой-то необычный эффект. на моём узле такого нету, так что нужна будет дополнительная информация
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: можешь подсказать, много ли отметок [queue: на вкладке Transports в разделе SSU2 ?
                    
                
                
                    
                        Vort
                    
                    
                        "Transit Tunnels: 0 - забанили?" - скорее всего, это упор в лимит. скорее всего, по трафику. почему это происходит - надо разбираться
                    
                
                
                    
                        Vort
                    
                    
                        запущу сейчас у себя OfR узел - послежу за его поведением. но дополнительная информация по "666" всё равно желательна
                    
                
                
                    
                        onon1
                    
                    
                        Vort: onon: "разные странные вещи" - какая самая странная из них? - Та что бесконечный буфер не будет заполняться, если в него пихать много пакетов.
                    
                
                
                    
                        Vort
                    
                    
                        не припоминаю такого. бесконечных буферов не было и нету. "конец" задаётся лимитами по времени
                    
                
                
                    
                        Vort
                    
                    
                        про то, что не будет заполняться - я не мог говорить, иначе не было бы смысла ставить ограничение по времени
                    
                
                
                    
                        Vort
                    
                    
                        что мог сказать - это то, что на моём узле заполнение очередей - явление очень редкое
                    
                
                
                    
                        Vort
                    
                    
                        если есть цитата - могу попробовать вспомнить, что я тогда имел в виду
                    
                
                
                    
                        Vort
                    
                    
                        ещё что мог сказать - это то, что если количество пакетов соответствует ширине канала, то да, заполнения очереди быть не должно. но в этом я не полностью уверен
                    
                
                
                    
                        Vort
                    
                    
                        и это соответствует ситуации на моём узле. скорее всего, возможности отдельного канала превышаются редко
                    
                
                
                    
                        onon1
                    
                    
                        Про стоячие волны почитай. А сейчас нет очередей потому, что большинство узлов - медленные, со старым cc на стримах, как начнут обновляться - заметишь, но будет поздно.
                    
                
                
                    
                        Vort
                    
                    
                        сейчас ресурсы сети забиты почти полностью. так что сильно скорость не прыгнет. может, раза в 2, не больше
                    
                
                
                    
                        Vort
                    
                    
                        если контроль на стримах действительно реагирует на перегрузку, то больше существующих возможностей сети он не запросит
                    
                
                
                    
                        Vort
                    
                    
                        но на всякий случай я всё же уменьшил размер очередей в 5-10 раз (в коммите ac9d92c6)
                    
                
                
                    
                        Vort
                    
                    
                        для обычного значения RTT в 125мс размер буфера с этим коммитом будет на 400мс
                    
                
                
                    
                        tetrimer
                    
                    
                        Vort: > много ли отметок [queue - Вообще ни одной нет, по крайней мере сейчас.
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: повышенное количество сфейлившихся туннелей на графике подтверждается и в консоли?
                    
                
                
                    
                        Vort
                    
                    
                        ну и 5 тыщ аж SSU2 сессий - тоже подтверждается?
                    
                
                
                    
                        tetrimer
                    
                    
                        SSU сейчас было 4К с чем-то
                    
                
                
                    
                        tetrimer
                    
                    
                        SSU2 ( 4977 )
                    
                
                
                    
                        Vort
                    
                    
                        вот. это необычно
                    
                
                
                    
                        tetrimer
                    
                    
                        Это же парсится вывод консоли через lynx.
                    
                
                
                    
                        Vort
                    
                    
                        а с фейлами что - там failed или test failed ?
                    
                
                
                    
                        tetrimer
                    
                    
                        Это в туннелях. Сейчас там 38
                    
                
                
                    
                        Vort
                    
                    
                        failed или test failed ?
                    
                
                
                    
                        tetrimer
                    
                    
                         2351854770:me => m4~Q => m~80 => M9hl => ( 86ms ) failed, 6 KiB
                    
                
                
                    
                        tetrimer
                    
                    
                           1849615484:me => NMF2 => lCS5 => failed (exploratory), 1496 KiB
                    
                
                
                    
                        tetrimer
                    
                    
                           592235795:me => 4Xp7 => 6k59 => ngLo => failed, 5 KiB
                    
                
                
                    
                        Vort
                    
                    
                        то есть, в основном, просто failed? без test failed?
                    
                
                
                    
                        tetrimer
                    
                    
                        Мне казалось, что test failed в другом месте пишутся. Сейчас гляну
                    
                
                
                    
                        Vort
                    
                    
                        они и там бывают
                    
                
                
                    
                        tetrimer
                    
                    
                        Сейчас - не видно.
                    
                
                
                    
                        Vort
                    
                    
                        я уже думаю, может мой код как-то не так собрался. слишком подозрительный эффект. но пока что надо разбираться с тем что есть (чтобы не упустить проблему/баг)
                    
                
                
                    
                        Vort
                    
                    
                        tetrimer: какой уровень логирования у узла?
                    
                
                
                    
                        tetrimer
                    
                    
                        Сейчас error. Могу переключить.
                    
                
                
                    
                        Vort
                    
                    
                        поставь пожалуйста warn на минутку
                    
                
                
                    
                        tetrimer
                    
                    
                        ПОставил
                    
                
                
                    
                        tetrimer
                    
                    
                        19:36:36@595/warn - SSU2: Unexpected message type 111 from 82.65.186.186:12379 of 135 bytes
                    
                
                
                    
                        tetrimer
                    
                    
                        19:36:36@595/warn - SSU2: Unexpected message type 186 from 23.128.248.24:7777 of 78 bytes
                    
                
                
                    
                        tetrimer
                    
                    
                        Пошло куча вот таких сообщений
                    
                
                
                    
                        Vort
                    
                    
                        надо будет проверить, много ли сыпет "SSU2: Outgoing messages queue to **** is semi-full" в лог
                    
                
                
                    
                        tetrimer
                    
                    
                        Пока - ни одного нет.
                    
                
                
                    
                        Vort
                    
                    
                        ну там вместо **** хеш (адрес) узла
                    
                
                
                    
                        tetrimer
                    
                    
                        В исходниках - такого сообщения тоже нет.
                    
                
                
                    
                        tetrimer
                    
                    
                        Может я чего-то не то скачал?
                    
                
                
                    
                        Vort
                    
                    
                        проверь, пожалуйста, что находится на строчке 404 в SSU2Session.cpp
                    
                
                
                    
                        tetrimer
                    
                    
                         403                         packet->payloadSize = CreateAckBlock (packet->payload, extraSize);
                    
                
                
                    
                        tetrimer
                    
                    
                            404                         ackBlockSent = true;
                    
                
                
                    
                        tetrimer
                    
                    
                            405                         if (packet->payloadSize + 12 < m_MaxPayloadSize)
                    
                
                
                    
                        tetrimer
                    
                    
                        Точно не то.
                    
                
                
                    
                        Vort
                    
                    
                        это какой-то не тот код
                    
                
                
                    
                        Vort
                    
                    
                         github.com/Vort/i2pd/commit/ac9d92c681996e87c2db9da73a2920b934045f97#diff-506cabbe2bfef062c29b5beeb38ae0e5de33c3d172dd7d41c26ccde35d661c1bR404     
                    
                
                
                    
                        Vort
                    
                    
                        вот что должно быть
                    
                
                
                    
                        Vort
                    
                    
                        if (!msg || msg->IsExpired (ts) || msg->GetEnqueueTime() + m_MsgLocalExpirationTimeout < mts)
                    
                
                
                    
                        tetrimer
                    
                    
                        Нда, не тот код стянул.
                    
                
                
                    
                        Vort
                    
                    
                        ну, значит, это не из-за ошибки в моём коммите =)
                    
                
                
                    
                        tetrimer
                    
                    
                        То-то у меня и не сходилось версии коммитов...
                    
                
                
                    
                        Vort
                    
                    
                        ветка называется ssu2_lag
                    
                
                
                    
                        Vort
                    
                    
                        там это единственный коммит
                    
                
                
                    
                        tetrimer
                    
                    
                        Вроде нашел. Сейчас пересоберу
                    
                
                
                    
                        tetrimer
                    
                    
                        Vort: Version: 2.46.1-448-gac9d92c6
                    
                
                
                    
                        tetrimer
                    
                    
                        Похоже?
                    
                
                
                    
                        Vort
                    
                    
                        ага, нормально, это я тег просто не перенёс
                    
                
                
                    
                        tetrimer
                    
                    
                        20:00:51@595/warn - SSU2: Outgoing messages queue size to KdxTiPkN7P1T3zv8QSRNw3hJmqLK71LKl5PEIYDg0m
                     
                
                
                    
                        tetrimer
                    
                    
                        8= exceeds 500
                    
                
                
                    
                        tetrimer
                    
                    
                        Это?
                    
                
                
                    
                        tetrimer
                    
                    
                        Или надо именно semi-full?
                    
                
                
                    
                        Vort
                    
                    
                        это точно после перезапуска?
                    
                
                
                    
                        tetrimer
                    
                    
                        Не факт, кстати.
                    
                
                
                    
                        tetrimer
                    
                    
                        20:06 запуск был. Значит это от предыдущей
                    
                
                
                    
                        tetrimer
                    
                    
                        20:21:45@860/warn - SSU2: Outgoing messages queue to pnQP is semi-full (size = 3, lag = 106, rtt = 22)
                    
                
                
                    
                        tetrimer
                    
                    
                        20:21:45@860/warn - SSU2: Outgoing messages queue to pnQP is semi-full (size = 4, lag = 214, rtt = 22)
                    
                
                
                    
                        tetrimer
                    
                    
                        20:21:45@860/warn - SSU2: Outgoing messages queue to pnQP is semi-full (size = 5, lag = 235, rtt = 22)
                    
                
                
                    
                        Vort
                    
                    
                        если эти сообщения относительно редки, то всё в порядке
                    
                
                
                    
                        Vort
                    
                    
                        у меня бывает минут по 10 нету ни одного
                    
                
                
                    
                        Vort
                    
                    
                        похоже, "поджатие" очереди прошло успешно
                    
                
                
                    
                        tetrimer
                    
                    
                        Ага, ну тогда подождем до завтра и посмотрим.
                    
                
                
                    
                        relaybot
                    
                    
                        13HDpgaupUF: hi