Size: a a a

Golang Developers — русскоговорящее сообщество

2021 April 14

A

Alexander in Golang Developers — русскоговорящее сообщество
А с пулом и с баунсером?
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Что не так с баунсером то? Конфиг стоить на 160 коннектов что в баунсере что в дефолтном пуле.
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Так не работает. Выбирает меньшее из 2-х зол.
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Да и какой смысл? Альтарнатива 2-м баунсерам?
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Баунсер и пул делают совсем разные вещи.
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
prepared statements пробовал отключать?
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Я бы даже сказал, что баунсер и пул делают обратные вещи :)
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
В transactions mode все стоит.
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Вот что происходит когда баунсер с пулом вместе
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Значит работают вместе
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Вот их результат

100 connections

┌─────────┬───────┬───────┬───────┬───────┬──────────┬─────────┬───────┐
│ Stat    │ 2.5%  │ 50%   │ 97.5% │ 99%   │ Avg      │ Stdev   │ Max   │
├─────────┼───────┼───────┼───────┼───────┼──────────┼─────────┼───────┤
│ Latency │ 19 ms │ 22 ms │ 29 ms │ 34 ms │ 22.77 ms │ 3.19 ms │ 93 ms │
└─────────┴───────┴───────┴───────┴───────┴──────────┴─────────┴───────┘
┌───────────┬────────┬────────┬────────┬────────┬─────────┬─────────┬────────┐
│ Stat      │ 1%     │ 2.5%   │ 50%    │ 97.5%  │ Avg     │ Stdev   │ Min    │
├───────────┼────────┼────────┼────────┼────────┼─────────┼─────────┼────────┤
│ Req/Sec   │ 3781   │ 3845   │ 4347   │ 4467   │ 4298.11 │ 168.18  │ 3317   │
├───────────┼────────┼────────┼────────┼────────┼─────────┼─────────┼────────┤
│ Bytes/Sec │ 284 kB │ 289 kB │ 326 kB │ 335 kB │ 322 kB  │ 12.6 kB │ 249 kB │
└───────────┴────────┴────────┴────────┴────────┴─────────┴─────────┴────────┘

Req/Bytes counts sampled once per second.

516k requests in 120.07s, 38.7 MB read
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Т.е выходит что баунсер только хуже делает?
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Вот с баунсером график
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Вот с пулом драйвера
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
А вот что происходит у pgxpool
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
И вот его результаты
100 connections

┌─────────┬──────┬──────┬───────┬───────┬─────────┬─────────┬───────┐
│ Stat    │ 2.5% │ 50%  │ 97.5% │ 99%   │ Avg     │ Stdev   │ Max   │
├─────────┼──────┼──────┼───────┼───────┼─────────┼─────────┼───────┤
│ Latency │ 7 ms │ 8 ms │ 16 ms │ 19 ms │ 9.02 ms │ 2.09 ms │ 68 ms │
└─────────┴──────┴──────┴───────┴───────┴─────────┴─────────┴───────┘
┌───────────┬────────┬────────┬────────┬────────┬──────────┬─────────┬────────┐
│ Stat      │ 1%     │ 2.5%   │ 50%    │ 97.5%  │ Avg      │ Stdev   │ Min    │
├───────────┼────────┼────────┼────────┼────────┼──────────┼─────────┼────────┤
│ Req/Sec   │ 9175   │ 9359   │ 10727  │ 11087  │ 10542.35 │ 562.22  │ 6981   │
├───────────┼────────┼────────┼────────┼────────┼──────────┼─────────┼────────┤
│ Bytes/Sec │ 688 kB │ 702 kB │ 805 kB │ 831 kB │ 791 kB   │ 42.2 kB │ 524 kB │
└───────────┴────────┴────────┴────────┴────────┴──────────┴─────────┴────────┘

Req/Bytes counts sampled once per second.

1265k requests in 120.57s, 94.9 MB read
источник

АО

Александр Орешкин... in Golang Developers — русскоговорящее сообщество
Я совсем запутался. Если судить по кол-ву запросов, то без баунсера лучше. Но правильно ли это?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Баунсер сделан для того чтоб выравнивать соединения с разных инстансов проекта, локальный пул для того чтоб у тебя в проекте не создавалась очередь запросов, обе эти штуки преследуют разные цели
источник