Su un sito Web a traffico piuttosto elevato in esecuzione in contenitori virtuali (VMware) e privo di memoria locale, siamo riusciti ad aumentare la velocità effettiva (richieste al secondo) in modo significativo passando dalla registrazione direttamente ai file di registro (che risiedono nella memoria di rete remota) a rsyslogd .
Essenzialmente siamo passati dalla registrazione sincrona a quella asincrona. I lavoratori del web server scrivono usando syslog (3) su un buffer di memoria e rsyslogd (8) invia i dati a un file reale in parallelo e al proprio ritmo, quindi i processi non si bloccano su IO durante la registrazione.
Fin qui tutto bene. Il problema è che a rsyslogd a volte viene impedito di scrivere (ad esempio un'interruzione di rete momentanea / prolungata) e il buffer in entrata si riempie rapidamente.
Le mie domande sono:
- Un client può mai bloccare quando scrive su rsyslogd usando syslog (3) ?
- C'è un modo per guardare le statistiche di rsyslogd , ad esempio quanto è grande / pieno il buffer?
- C'è un modo per aumentare le dimensioni del buffer in arrivo rsyslogd ?