Como posso monitorar o tamanho da fila de aceitação?

3

Eu tenho uma hipótese: às vezes, as conexões TCP chegam mais rápido do que o meu servidor pode accept() delas. Eles fazem fila até que a fila transborda e, em seguida, há problemas.

Como posso confirmar que isso está acontecendo?

Posso monitorar o tamanho da fila de aceitação ou o número de transbordamentos? Existe um contador exposto em algum lugar?

    
por Phil Frost 07.12.2016 / 19:17

1 resposta

0

Sysdig fornecerá algumas dessas informações no final de cada accept syscall, como o argumento queuelen . Também mostra o tamanho da fila como queuemax .

7598971 21:05:30.322229280 1 gunicorn (6451) < accept fd=13(<4t>127.0.0.1:45882->127.0.0.1:8003) tuple=127.0.0.1:45882->127.0.0.1:8003 queuepct=0 queuelen=0 queuemax=10

Tanto quanto eu saiba, ele não fornece nenhum mecanismo para saber exatamente quando ou quantas vezes a fila transbordou. E seria complicado integrar isso com monitoramento periódico por collectd ou similar.

    
por 08.12.2016 / 14:15