Em um site de alto tráfego em execução em contêineres virtuais (VMware) e com falta de armazenamento local, conseguimos aumentar significativamente a taxa de transferência (solicitações por segundo), passando de fazer logon diretamente em arquivos de log (que residem no armazenamento de rede remoto) para rsyslogd .
Basicamente, passamos do log síncrono para o assíncrono. Os funcionários do servidor da Web gravam usando syslog (3) em algum buffer de memória e o rsyslogd (8) envia os dados para um arquivo real em paralelo e em seu próprio ritmo, para que os processos não bloqueiem o IO durante o logon.
Por enquanto, tudo bem. O problema é que ocasionalmente o rsyslogd é impedido de gravar (por exemplo, uma interrupção momentânea / prolongada da rede) e o buffer de entrada é preenchido rapidamente.
Minhas perguntas são:
- Um cliente pode bloquear ao gravar no rsyslogd usando o syslog (3) ?
- Existe uma maneira de analisar as estatísticas do rsyslogd , por exemplo, qual é o tamanho do buffer?
- Existe uma maneira de aumentar o tamanho do buffer de entrada rsyslogd ?