170 похожих чатов

Так, я по ходу не совсем понимаю как там алхимия

и базы данных работают. Может кто-нибудь помочь с такой проблемой:
TimeoutError: QueuePool limit of size 20 overflow 10 reached, connection timed out, timeout 30
Коннекты в эндпоинтах создаются так — в глобальный app прокидывается Session(который фабрика сессий) и в самих эндпоинтах Session вызывается и я получаю сессия для эндпоинта, а затем ее уже использую. Я что-то делаю не так или дело в том, что нагрузка такая большая?

14 ответов

20 просмотров

а закрываешь session?

Илья-Власов Автор вопроса
Tishka17
а закрываешь session?

Да, я открываю через контекстный менеджер, через два даже: async with self.request.app['session_pull']() as session: async with session.begin():

Илья Власов
Да, я открываю через контекстный менеджер, через д...

так, асинкио. А в какой момент это вызывается?

Илья-Власов Автор вопроса
Tishka17
так, асинкио. А в какой момент это вызывается?

Внутри эндпоинта, потом я дергаю уже внутреннюю функцию для работой с бд и передаю туда сессию

Илья Власов
Внутри эндпоинта, потом я дергаю уже внутреннюю фу...

а сколько времени занимает обработчик и сколько rps?

Илья Власов
Внутри эндпоинта, потом я дергаю уже внутреннюю фу...

выглядит как будто действительно нагрузка, но нужно больше данных

Илья-Власов Автор вопроса
Tishka17
а сколько времени занимает обработчик и сколько rp...

Ну примерно 10-50мс в зависимости от эндпоинта, рпс где-то 1-2тысячи на реплику

Илья-Власов Автор вопроса
Илья Власов
Ну примерно 10-50мс в зависимости от эндпоинта, рп...

Так блин, я криво посчитал, рпс 200 на реплику, суммарный где-то 1-2 тысячи

Илья-Власов Автор вопроса
Tishka17
что ж ты сразу молчал =)

То есть, все-таки нагрузка?(

Илья Власов
То есть, все-таки нагрузка?(

ну давай посчитаем. 50мс на один запрос. Значит без конкурентности ты можешь обрабатывать 20 запросов. У тебя 2к RPS, значит это дает 100 конкурентных запросов. А у тебя лимит 30 соединений. =)

Илья-Власов Автор вопроса
Tishka17
ну давай посчитаем. 50мс на один запрос. Значит ...

Ну мы в джва раза снизили нагрузку и вроде пропали такие ошибки. А на что увеличение конкурентных запросов влияет? Я понимаю, что больше соединений можно открыть, но наверняка это не бесплатно все

Илья Власов
Ну мы в джва раза снизили нагрузку и вроде пропали...

каждое соединение будет кушать ресурсы СУБД, если много чтений (то есть без транзакций всё) - вероятно pgbouncer какой-нибудь поможет иметь много клиентских соединений и мало реальных с сервером БД

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта