Si las operaciones de E/S por segundo son su cuello de botella principal y está utilizando Linux, hay un truco fácil que solo le cuesta la memoria. Use un montaje tmpfs para organizar sus grabaciones RRD.
Todas las operaciones de E/S se realizarán en la memoria y no incurrirán en ninguno de los cuellos de botella encontrados al hacer E/S de disco (esto es incluso más rápido que usar discos de estado sólido).A continuación, puede utilizar un trabajo cron y rsync para copiar solo los RRD modificados en el disco una vez cada pocos minutos.
Crear los directorios
bash-4.2# mkdir /mnt/rrd-reads
bash-4.2# mkdir /mnt/rrd-writes
Crear un sistema de archivos de RAM 500 MB de máxima con opciones apropiadas
bash-4.2# mount -t tmpfs -o size=500m,mode=0750,uid=collectd,gid=collectd none /mnt/rrd-writes
bash-4.2# echo "none /mnt/rrd-writes tmpfs size=500m,mode=0750,uid=collectd,gid=collectd 1 2" >> /etc/fstab
Copiar los viejos ficheros RRD en el nuevo punto de montaje
bash-4.2# cp -a /var/lib/collectd/rrd/* /mnt/rrd-writes
Configurar la aplicación RRD-escritura para escribir en el nuevo punto de montaje
bash-4.2# sed -i -e 's/DataDir "\/var\/lib\/collectd\/rrd"/DataDir "\/mnt\/rrd-writes"/' /etc/collectd/collectd.conf
Configurar una tarea programada para sincronizar sólo los RRDs modificados en el disco una vez cada 2 minutos
bash-4.2# echo "*/2 * * * * collectd rsync -a /mnt/rrd-writes/* /mnt/rrd-reads/ ; sync" > /etc/cron.d/rrd-sync
No olvide copiar su guardado RRD fil es en el punto de montaje antes de ¡inicia su aplicación de escritura rrd! Es posible que necesite editar el script de inicio para ese servicio para asegurarse de que los archivos estén allí antes de que comience. Si comienza sin los archivos en su lugar, se crearán nuevos y se confundirá una vez que el directorio de lectura se sobrescriba con los RRD vacíos.
Si en algún momento necesita cambiar el tamaño montan los tmpfs, que puede hacer que sobre la marcha:
bash-4.2# mount -t tmpfs -o remount,size=850m /mnt/rrd-writes
Si se trata de E/S de la envolvente, no que sea bueno? Significa que puede tomar una solución de hardware, como RAID, discos de estado sólido y varias máquinas para rastrear datos no relacionados. – JasonSmith
mi punto también ... la pregunta es qué tan bien se está usando el HW ... el uso de la memoria es bastante óptimo ... una base de datos (al final del día) también tiene que escribir cosas en el disco, pero dado que es un propósito mucho más general, dudo que pueda hacerlo tan eficientemente como rrdtool ... –