~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest7184
Leopold
Most2
Nausicaa
Ruskoye_911
Vort
acetone
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
un
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"