Size: a a a

2020 December 11

ВС

Владимир Столяров... in Go-go!
Dmitry
спасибо, погляжу
подумываю взять мейлрушный вебсокет сервер, вроде как, они держат 3 млн соединений
и вот там описанное выше испольуется
источник

D

Dmitry in Go-go!
Владимир Столяров
можно встать select-ом на 2 канала: с сообщениями и с time.After
при получении сообщения из 1-го append-ить его в слайс (и если там >N элементов, отправлять их), при срабатывании time.After просто отправлять все сообщения
ну вот примерно сейчас так и есть
только for бесконечный на канале приема сообщения для отправки и потом чтение канала до нуля пока там что-то есть и отправка пачкой
источник

EE

Eugene Eliseev in Go-go!
никто старый впа не отучал от правки лимитов?
происходит тут: https://github.com/kubernetes/autoscaler/blob/vpa-release-0.8/vertical-pod-autoscaler/pkg/utils/vpa/limit_and_request_scaling.go#L65
но при правке получаю неожиданные результаты, никто не заморачивался? может, чего-то ещё не учитываю?
источник

D

Dmitry in Go-go!
за идеи спасибо, буду изучать
источник

DP

Daniel Podolsky in Go-go!
Dmitry
сообщения пишутся в канал горутины на отправку каждому клиента
как только приходит сообщение то горутина выгребает все что есть в канале и высылает одной пачкой
Скорее всего - там не успевает накопиться
источник

D

Dmitry in Go-go!
успевают, я логировал размер канала, практически в потолок уходит (256 буфер)
источник

DP

Daniel Podolsky in Go-go!
Тогда идеи кончились, надо изучать pprof
источник

@

@mr_tron in Go-go!
ну надо уточнить что там за нода. а может там микроинстанс амазона
источник

D

Dmitry in Go-go!
https://pastebin.com/N75NyGiJ
вот pprof

нода - параллелс виртуалка, 8 гиг памяти, проц 4 ядра
источник

D

Dmitry in Go-go!
i7 на хост машине стоит
источник

@

@mr_tron in Go-go!
ну у вас мусора дофига генерится
источник

D

Dmitry in Go-go!
а как это видно ?
источник

@

@mr_tron in Go-go!
много времени занимают вызовы связанные с работой GC
источник

RA

Roman Andreev in Go-go!
Dmitry
господа
а кто-то юзает https://github.com/gorilla/websocket ?
сколько коннектов выдерживает при активном общении клиентов между собой ?
у меня на 2к коннектах которые раз в 10 секунд шлют сообщение которое потом рестранслируется остальным проц уходит в 99% нагрузки,pprof говорит что основная нагрузка идет на syscall.Syscall
пальцем в небо, конечно, но вроде как на одновременное постоянное подключение нужен файловый дескриптор. Возможно вы вычерпываете количество доступных процессу дескрипторов и он ждет их освобождение? у centrifugo с таким сталкивался (правда я не смотрел pprof и достоверно не могу сказать из-за чего была задержка)
источник

D

Dmitry in Go-go!
Roman Andreev
пальцем в небо, конечно, но вроде как на одновременное постоянное подключение нужен файловый дескриптор. Возможно вы вычерпываете количество доступных процессу дескрипторов и он ждет их освобождение? у centrifugo с таким сталкивался (правда я не смотрел pprof и достоверно не могу сказать из-за чего была задержка)
вы имеете ввиду ulimit на системе ?
источник

RA

Roman Andreev in Go-go!
Dmitry
вы имеете ввиду ulimit на системе ?
ага
источник

ВС

Владимир Столяров... in Go-go!
да не, при исчерпании дескрипторов по-моему начинают сыпаться ошибки
источник

D

Dmitry in Go-go!
если бы я его исчерпал процесс бы упал просто too many open files
источник

RA

Roman Andreev in Go-go!
Dmitry
если бы я его исчерпал процесс бы упал просто too many open files
хм, тогда мимо, сорь
источник

Z

Zver in Go-go!
Dmitry
https://pastebin.com/N75NyGiJ
вот pprof

нода - параллелс виртуалка, 8 гиг памяти, проц 4 ядра
А виде блок схемы?
источник