IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/03/22
~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN_
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
onon
plap
poriori
profetikla
qend
segfault
teeth
tetrimer_
uis
un
unlike
user
vade
weko
whothefuckami
orignal Vort сделал я наконец чтобы создавались сообщения нормальной длины
Vort orignal: окей, поставлю сбор данных по памяти. проверю, станет ли меньше больших пакетов во время пиков
Vort кстати, заметил одну станность: у меня почему-то сборка даже со сбором данных на Visual Studio потребляет в 2 раза меньше CPU, чем та же версия, но собранная через CI
Vort из CI брал i2pd-cmake-x64-clang.exe - вроде, там даже релиз выбран, то есть должен быть -O3
Vort слишком большая разница выходит. особенно учитывая, что в VS нету подержки ускорений AESNI
Vort хотя может быть, что я просто где-то ошибся
Vort странно, что я теперь наблюдаю постоянный уровень 16к блоков, даже без всплесков, - около 100 штук
Vort пример: 8: 1493776 (89 * 16784)
Vort интересно, где они были раньше. 62к в таком количестве не существовало
Vort их постоянно было раньше около 10 штук. и только во время пиков количество прыгало до 50-100 штук
Vort есть три предположения: 1. характер нагрузки поменялся. 2. где-то неверно выбирается размер блока. 3. что-то я не учитываю
Vort надо будет перепроверить WrapECIESX25519Message / WrapECIESX25519MessageForRouter . на них у меня подозрение
Vort потому что гонит 16к, а не 62к
Vort и с прошлым коммитом такого не было
Vort хотя странно. 62к оттуда много не было, не должно и 16к быть много
Vort хех. сообразил кое что. одно из отличий - у меня сейчас запущен для тестов qBittorrent. наверно это он даёт такой эффект
Vort так что похоже тут вариант #3 - "я кое что не учёл"
Vort хотя вариант с торрентами тоже вызывает вопросы. на тех раздачах, что я тестирую, скорости не то что килобайты в секунду - там килобайты в минуту. для чего в таком случае нужны 16к - непонятно
orignal торренты да если они гонят датаграммы
Vort по-моему нет там датаграм. обычные "TCP" соединения
Vort но их много разве что
Vort видимо, ещё где-то обрезание размера требуется )
Vort хотя может иначе и не выйдет, не знаю
orignal стримы там пакет 1700 с чем то
orignal это точно датаграммы
Vort а, я думал речь об UDP-подобных SAM коннектах
Vort ну даже если и 1.7к, откуда тогда 16к?
Vort в принципе это не так уж важно, но можно и разобраться
Vort и вообще есть ощущение, что они текут
Vort 0: 8895520 (530 * 16784)
Vort 530 штук уже наплодилось
orignal ну 16K мы же выяснили откуда
orignal они реально передаются через траспорты
Vort говорю же - через торрент у меня сейчас течёт практически ничего
Vort нет там таких чисел. большинство коннектов - это 511 байт туда, 86 байт обратно. отлуп наверное
orignal а транзита что ли у тебя нету?
Vort есть транзит. но он у меня был и раньше
Vort а такой горы пакетов не было. появилась только когда я врубил торрент
Vort ну и последний коммит поставил
Vort но я думаю коммит не виноват
Vort мне вот только не нравится, сколько коннектов qBittorrent делает
orignal ну просто попал на такой тоннель
Vort похоже, без рисования графика не обойтись :(
orignal ну и в чем мораль?
Vort в том, что это очень похоже на утечку в SAM
orignal так ты скажи там стримы или датаграммы?
orignal понимаешь сэм с госткойном у меня особо н течет
orignal а вот если там датаграммы то вполне
Vort как поточнее это проверить?
Vort в коде STREAM ACCEPT и STREAM CONNECT
Vort но я не уверен, что это 100%ный признак
Vort SESSION CREATE STYLE=STREAM
orignal тогда непонятно
Vort особенность торрента в том, что он спамит коннектами. пир не отвечает - через некоторое время опять попытка
orignal что течет сэм это возможно
Vort но коннекты сами по себе, похоже, не текут
Vort их около сотни сейчас
orignal так не коннектами а заспросами лизсетов
Vort стримы, точнее
orignal у R4SAS -а на reg.i2p та же беда кстати
Vort LeaseSets: 25
Vort если они текут, то возможно
Vort суть же не в том, что он много шлёт, а в том, что где-то что-то не чистится
orignal не сами лизсеты
orignal а их запросы
Vort он много слал и час назад и два часа назад. а блоки всё копятся и копятся
orignal надо будет поразиьраться
Vort разве запрос не должен удаляться по таймауту?
Vort если надо - вырублю сейчас торрент и посмотрю на график. но состояние проблемы потеряется ессно
orignal должен
orignal но видимо где то бага есть
orignal потому что reg постоянно гоняет запросы и отжирает память
Vort ну и торрент клиент опенсорсный - можешь при желании сам собрать и пронаблюдать
Vort так что - вырубать торрент клиент или нет?
Vort почти уверен, что блоки исчезнут
Vort ну 16к которые
orignal да. поробуй без него
orignal так смотри я и на госткойне могу посмотреть
orignal я кстати замечал что как его включаеш сраз памяти много отжирает
Vort а он тоже хренову тучу коннектов (стримов) спамит?
Vort ну "сразу" - не проблема. проблема в наклонной линии
orignal он спамит запросами лизсетов
orignal и останавлиает на 10 линках
Vort выключил, подожду 5 минут чтобы график был красивее )
Vort блоки исчезли вместе с SAM сессией: paste.i2pd.xyz/?e9029cb49080926f#DXbRPE7SvYS1DBkP3msPbPf9XK5qaYE9Sy523hMSf1vx
orignal то есть ты считаешь что это сэм создает блоки по 62K?
Vort 16к
orignal ну 16K
Vort да, очень на это похоже
orignal ладно поизучаю запрос лизсета
Vort и не чистит за собой. точнее чистит, но когда вся сессия уничтожается
orignal там же excluded заполняется
orignal я посмотрю
orignal а не может быть что все эти стримы были открыты?
Vort открыто было около 100-150
Vort а блоков накопилось 600
orignal я к тому что висеть могло в стримых тех
Vort сейчас кое что спрошу
Vort я просто одну вкладку посмотрел, а вторую - нет
Vort вот так было на ~500 блоках
Vort на второй вкладке должно было быть столько же, да?
orignal не знаю
Vort ну там где уже сами адреса
Vort ну по крайней мере, с точки зрения программы-клиента стримов было 150
Vort вот что в логах было на момент выключения торрентов
Vort $ grep -c "Stream read error" /e/lc.txt 166
Vort 166 стримов было, судя по всему
Vort на момент выключения
orignal ну вот они и очистили
Vort [2023-03-22 12:05:00] a:58230141 f:50263712
Vort 0: 10053616 (599 * 16784)
Vort сколько 16к блоков на 1 стрим должно быть?
Vort при условии, что данные там почти не текли
orignal по моему мнению нисколько
orignal надо разбираться откуда они
Vort угу
R4SAS Vort: я же говорил что в CI собирается дебаг
R4SAS релиз был только в MSYS2
Vort R4SAS: так msys2 я и брал - cmake, clang
Vort и вот по сравнению с локально собранным MSVC, он в 2 раза медленнее
Vort по поводу утечки - я так подумал - может, она и не специфична для SAM, может течёт любой дестинейшен.но прокси, к примеру, я так масштабно просто не нагружал. да и не особо знаю, как
Vort вот как выглядит разница в загрузке CPU: paste.i2pd.xyz/?3320d29b3a3b8fb4#6vLsesjzTpU1xoXDRA7CbqVbLfZ9Mhs3bTUK7HQaY2Pv
Vort ну и как обычно - может, дело не в i2pd, а в каких-то неучтённых мной факторах
R4SAS конпеляция пакета для deb с помошью cmake + clang
R4SAS в 2 потока
R4SAS с гнусом не получается компилировать более чем с одним потоком
R4SAS и да, это на малине
Vort по-моему, это была одна из целей создания clang - чтобы работал шустрее, чем gcc
Vort и я разок уже убедился в этом, когда gcc вообще не смог собрать бинарник. правда, это было не с i2pd
R4SAS ну, мы то знаем что у нас и гнусом, и шлангом соберется
R4SAS ибо где то пакеты и шлангом собираются... на фрее вроде как
R4SAS фрее/фряхе*
Vort посмотрел я статистику по блокам ещё раз - теперь блок 62к вообще (в ТОП-48) не находится. похоже, последний коммит их добил окончательно. ну может где-то иногда и будут всплывать, но это уже мелочи
orignal могу
orignal polistern же говорила что бывает что ботэ шлет датаграммы по 22 килобайта
Vort ну то есть, это будет редкость - как и должно было быть изначально
weko orignal: вот известно, что l-n-s пропал, кто такой villain тогда?
R4SAS weko: это он и есть
weko а как вот
weko если он пропал
orignal l-n-s = villain
weko да это понятно
weko я про то почему он тут
weko если он пропал
orignal баунсер
orignal у R4SAS-а
weko аа, понятно
polistern Vort, это редкость сейчас, т.к. мало узлов и почты. Всё может измениться. Причём внезапно)) Я могу мельче нарезать пакеты, если это чему-то поможет.
weko это вопрос к тому что 64К это слишком много выходит?
weko i2plib.exceptions.CantReachPeer
weko моя любимая ошибка теперь
Vort на мой взгляд, сам по себе размер - не проблема. проблема была в том, что создавался объект намного больших размеров, чем реально было нужно
weko ну тогда ладно
weko главное чтобы нагрузки на память не было слишком сильной
Vort ну да, сейчас в пиках должно мегабайт на 5 меньше потребление быть
Vort хотя ещё вопрос в том, насколько необходимость этих пиков обоснована. но пока что не стоит в это лезть, я думаю
Vort сейчас бы конскую утечку, найденную с помощью торрента вычислить
weko <weko> i2plib.exceptions.CantReachPeer
weko <weko> моя любимая ошибка теперь
weko это я тестирую свой код ... ошибка когда сервер ещё видимо лиссет не опубликовал, а клиент уже коннектится.
weko что странно, ведь у меня клиент коннектится только тогда, когда i2pd возвращает что статус ок
polistern Ну если чего мне надо будет подкрутить в боте - дайте знать.
weko можно в SAM TCP порты сделать ))
weko тоесть в стриминге
polistern weko, вроде полно всяких обвязок. Не подходят?
weko понятно, что можно сделать, и я сделаю, просто это пока что тестовый код
weko я отметил что странно что так долго публикуется
weko я считаю что статус ОК для серверного должен возвращаться только тогда, когда лиссет опубликован
weko ещё - SAM сокет который коннектор отображается как unknown до того как найдётся лиссет, потом уже stream, думаю стоит назвать как нибудь "connector"