Oleg
думаю, сейчас выяснится что там не блокировка loop'а, а просто open_connect иногда дольше обычного выполняется
Denis
Проявляется в том что корутины все выполняются раза в 2 дольше
Alex
как замерял время выполнения корутин?
Oleg
Проявляется в том что корутины все выполняются раза в 2 дольше
все корутины, которые внутри себя делают reader.read?
Andrew
можешь код показать?
Я предполагаю что read застревает в ожидании заполнения буфера
Denis
Нет, корутины выполняют запросы в базы данных через aiodbc
Denis
Обычно весь цикл опроса проходит секунд за 30-40
Denis
Но периодически занимает 80
Alex
может у тебя просто база не выдерживает нагрузки? кстати aiodbc честно асинхронный или просто в потоке очередь фигачит?
Denis
Ну и это коррелирует с тормозами забикс сервера куда шлю результаты через open connection
Denis
Да, пул потоков там
Oleg
почти все aio*-либы для стораджей это обертки с threadpool'ом вокруг синхронных либ
Denis
Коррелирует очень явно
Улан
Ребята в чем разница npm-appium и python-appium-client, это просто разные клиенты?
noName🐈
Как сделать в питоне подобие структуры в шарпе?
Denis
Код приема смогу кинуть через 10 минут, отошёл на обед)
noName🐈
Может есть какая то аналогия?
Alex
уже настроил 😊😊
и благодаря тебе мы ловим лулзы уже второй день.
Улан
в том что npm-appium - пакет для node.js?
Хм, установка у npm-appium значительное время занимает в отличии от python-appium-client вот и интересуюсь, первый почти час занял и не установился еще, а второй меньше минуты занял.
Maxim
Нода она такая
Alex
бессмысленная и беспощадная
Tishka17
а питоновский клиент мог попросить компилятор =D
Tishka17
уже настроил 😊😊
через unixsocket?
Denis
asyn def recv_data(reader,size): data = b'' while len(data) < size: chunk = await reader.read(size-len(data)) if not chunk: return b'' data += chunk return data
Denis
вот так читаю
Denis
собственно если дольше обычного происходит open_connect или чтение - оно не должно аффектить на другие корутины в лупе же.
Tishka17
ну да
Oleg
через unixsocket?
у которого внутри tcp
Alex
бля ну не начинайте снова
Tishka17
=D
Tishka17
ага
а зачем так?
Stanley
а зачем так?
в мануалах которые я читал, так написано)
Tishka17
окей
Tishka17
я думал было осмысленное решение
Alex
я думал было осмысленное решение
есть же поверье, что юникс сокеты работают быстрее
Stanley
я думал было осмысленное решение
я не настолько крут в линуксе чтоб принимать таие решения 😁
Улан
бессмысленная и беспощадная
Спасибо за ответ, мучился с гуглом.
Tishka17
есть же поверье, что юникс сокеты работают быстрее
да я даже склонен согласиться с ним
Tishka17
только это не говорит что надо так делать
Alex
это просто отсылка к дискуссии выше
Tishka17
те полпроцента выигрыша ничто по сравнению с невозможностью горизонтально масштабироваться
Alex
что иногда может быть таки нужно
Oleg
те полпроцента выигрыша ничто по сравнению с невозможностью горизонтально масштабироваться
это может иметь смысл если, например, в одном контейнере nginx и uwsgi
Oleg
масштабированию это не помешает
Tishka17
до 30% разница же доходит
Да? На каких пакетах?
Andrew
Да? На каких пакетах?
Частая установка новых подключений допустим
Tishka17
масштабированию это не помешает
Помешает, nginx становится не один
Tishka17
Частая установка новых подключений допустим
А. Так nginx вроде держит соединение
Artyem
ну + еще управление доступом при помощи fs permissions.
и возможность не парится с пересечением портов, всё по свои директориям, это может быть удобно
Oleg
Помешает, nginx становится не один
ну да, кому-то может такое и нужно
Alex
угу
Andrew
А. Так nginx вроде держит соединение
Ну не всегда можно использовать nginx и пул коннектов
Tishka17
Глобально-то понятно
Tishka17
Я именно в разрезе задачи
Tishka17
ну да, кому-то может такое и нужно
Ну тогда становится не просто tcp, а tcp + unixsocket. Что явно не станет быстрее
Andrew
Ну тогда становится не просто tcp, а tcp + unixsocket. Что явно не станет быстрее
Станет даже так) Не отправляются tcp подтверждения
🍁 Jaŭhien
Станет даже так) Не отправляются tcp подтверждения
Разве юникс сокет настолько быстрей?
Oleg
Ну тогда становится не просто tcp, а tcp + unixsocket. Что явно не станет быстрее
Не станет. Я имел в виду, что если у тебя изначально по каким-то причинам внутри контейнера есть и nginx, и uwsgi. То между nginx'ом и uwsgi имеет смысл использовать unix socket вместо tcp-сокета
Andrew
Разве юникс сокет настолько быстрей?
Ну доли процента, как Тишка изначально сказал
Andrew
Так tcp между нодами остаётся
Да, и к ним ещё добавляется tcp до wsgi
Tishka17
Да, и к ним ещё добавляется tcp до wsgi
Эм. Я про tcp vs tcp+unix, а не tcp+tcp