Auf einer Website mit ziemlich hohem Datenverkehr, die in virtuellen Containern (VMware) ausgeführt wird und keinen lokalen Speicher hat, ist es uns gelungen, den Durchsatz (Anforderungen pro Sekunde) erheblich zu steigern, indem wir von der direkten Protokollierung in Protokolldateien (die sich im Remotenetzwerkspeicher befinden) zu wechseln rsyslogd .
Im Wesentlichen haben wir von der synchronen zur asynchronen Protokollierung gewechselt. Die Webserver-Mitarbeiter schreiben mit syslog (3) in einen Speicherpuffer, und rsyslogd (8) sendet die Daten parallel und in ihrem eigenen Tempo an eine tatsächliche Datei, sodass Prozesse beim Protokollieren keine E / A blockieren.
So weit, ist es gut. Das Problem ist, dass gelegentlich das Schreiben von rsyslogd verhindert wird (z. B. ein vorübergehender / längerer Netzwerkausfall) und der eingehende Puffer schnell voll wird.
Meine Fragen sind:
- Kann ein Client jemals blockieren, wenn er mit syslog (3) in rsyslogd schreibt ?
- Gibt es eine Möglichkeit, die rsyslogd- Statistiken anzuzeigen , z. B. wie groß / voll der Puffer ist?
- Gibt es eine Möglichkeit, den eingehenden Puffer von rsyslogd zu vergrößern ?