|
|
|
Ограничения pgbouncer
|
|||
|---|---|---|---|
|
#18+
Столкнулся с тем, что pgbouncer не может отдать больше 200Мбит/секунду и 30krps, при этом CPU Usage ~25%. При этом, если я соединяюсь с pg напрямую, то отдаю до 600Мбит. Все запросы простенькие вида Код: sql 1. 3 pgbouncer-а отдают на треть меньше, чем pg напрямую. А городить схему, где их будет 4 - не вижу смысла. Напрямую соединяться не хочется, потому что используется ~ 230 экземпляров сервера приложений, каждый из которых держит по одному соединению. Может я куда-то не туда смотрю? Куда копать? Postgresql 9.3.10 Pgbouncer 1.6.1 Linux 3.13.0-68-generic Mem: 12Gb, 12 CPU На диск нагрузка практически нулевая. net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 -- С наилучшими пожеланиями, Иван Евтухович ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 23:32 |
|
||
|
Ограничения pgbouncer
|
|||
|---|---|---|---|
|
#18+
Ivan EvtuhovichСтолкнулся с тем, что pgbouncer не может отдать больше 200Мбит/секунду и 30krps, при этом CPU Usage ~25%. При этом, если я соединяюсь с pg напрямую, то отдаю до 600Мбит. Все запросы простенькие вида Код: sql 1. 3 pgbouncer-а отдают на треть меньше, чем pg напрямую. А городить схему, где их будет 4 - не вижу смысла. Напрямую соединяться не хочется, потому что используется ~ 230 экземпляров сервера приложений, каждый из которых держит по одному соединению. Может я куда-то не туда смотрю? Куда копать? Postgresql 9.3.10 Pgbouncer 1.6.1 Linux 3.13.0-68-generic Mem: 12Gb, 12 CPU На диск нагрузка практически нулевая. net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 -- С наилучшими пожеланиями, Иван Евтухович Под такой трафик надо уже вдумчиво его настраивать. На 10Gbit сетке у меня он до 5Gbit я настраивал на 1 процессе pgbouncer и все равно не было 100%CPU на pgbouncer. Сетевые настройки похожи на ваши (чуток побольше просто): # increase Linux autotuning TCP buffer limit to 64MB net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 У pgbouncer: ;; buffer for streaming packets pkt_buf = 524288 ;; In-kernel buffer size (linux default: 4096) tcp_socket_buffer = 8388608 Основная задача настройки сделать так чтобы 99.99% ответов на запрос от базы влезало в pkt_buf у pgbouncer, а tcp_socket_buffer был раз в 5-10 больше чем pkt_buf (а дальше пусть ядро разбирается как это все отправлять клиенту). PS: еще если сервер нагруженный то помогает renice -n -20 для Pgbouncer (чтобы у него процессор никто не отьедал (а то все начинают оптом тормозить в итоге). PPS: pgbouncer после смены подобных сетевых настроек стоит жестко перезапускать (через stop/start). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 05:03 |
|
||
|
Ограничения pgbouncer
|
|||
|---|---|---|---|
|
#18+
Максим, спасибо за ответ. С вашими настройками производительность осталась та же. Я предполагаю, что это какое-то ограничение на количество пакетов в секунду на виртуальном сетевом интерфейсе (используется облако селектел). Сделаю гибридную схему, где часть будет напрямую ходить, а часть через pgbouncer. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 06:48 |
|
||
|
Ограничения pgbouncer
|
|||
|---|---|---|---|
|
#18+
Ivan EvtuhovichМаксим, спасибо за ответ. С вашими настройками производительность осталась та же. Я предполагаю, что это какое-то ограничение на количество пакетов в секунду на виртуальном сетевом интерфейсе (используется облако селектел). Сделаю гибридную схему, где часть будет напрямую ходить, а часть через pgbouncer. Код: plaintext 1. 2. 3. 4. 5. Про облако ничего не скажу у меня всегда под базу только bare hardware (и уж тем более когда речь идет о гигабитном траффике). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 07:16 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=101&tid=1997599]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 384ms |

| 0 / 0 |
