Al servidor on allotgem les webs, l’Apache cada vegada anava més lent.
Un apachectl fullstatus ens mostrava molts workers en estat L (“Logging”) esperant obtenir accés a disc.
Vam descobrir que el problema era el Munin, a mida que havíem anat afegint nodes i gràfiques, el rendiment havia anat baixant. Cada node té unes 80 bases de dades RRD, depenent del nombre de gràfiques; si monitoritzem uns 50 nodes, són uns 4000 fitxers RRD a actualitzar cada 5 minuts i l’accés a disc comença a ser un problema.

Per solucionar-ho vam moure les bases de dades a la memòria RAM
reducció de iowait
a la gràfica es veu clarament com va desaparèixer l’espera per accedir al disc (iowait)

Configurar munin + tmpfs

per reduir l’espai usat, no esta de més esborrar els RRD antics que ja no s’utilitzin

# find /var/lib/munin/ -type f -name "*.rrd" -mtime +120 -delete
# du -sh /var/lib/munin
305M    /var/lib/munin

fem una còpia de la carpeta

# cp -ra /var/lib/munin/ /var/lib/munin-cache

afegim a /etc/fstab una partició tmpfs prou gran per posar-hi /var/lib/munin i amb l’uid i gid de l’usuari munin

tmpfs                  /var/lib/munin  tmpfs   uid=108,gid=111,size=512M,mode=755 0 0

la muntem i hi copiem les dades

# rm -rf /var/lib/munin/*
# mount /var/lib/munin
# cp -ra /var/lib/munin-cache/* /var/lib/munin/

ara tenim les bases de dades RRD a la RAM, l’accés a disc ja no hauria de ser un problema, però si s’apaga el servidor es perden les dades de la RAM, per tant cal programar un cron que vagi copiant les dades a disc

posem a /etc/cron.hourly/munin-cache

#!/bin/sh
# hem posat /var/lib/munin a la RAM, cal copiar-ho a /var/lib/munin-cache
# per no perdre les dades en cas de reiniciar.
cp -ra /var/lib/munin/* /var/lib/munin-cache/

i ho fem executable

# chmod +x /etc/cron.hourly/munin-cache

per que es restauri automàticament la còpia a l’engegar, afegim a /etc/rc.local

# cp -ra /var/lib/munin-cache/* /var/lib/munin/