Profiling dei dischi

Seguendo l'ottimo libro “PostgreSQL performance” di Gregory Smith, ho fatto un po' di test di profilazione del disco. Sono partito dal test di impostazione del readahead.

Bonnie++ su server jagom

Ho creato una partizione di 35GB ad hoc, scrivendo un file di 4G (il default di bonnie++ = doppio della RAM) e ho settato il readahead sia per le partizioni fisiche che quelle LVM.

Ho ripetuto i test con i valori: 256, 4096, 16384. Li ho fatti sia con bonnie++ pacchettizzato Debian Wheezy, sia con bonniee++2 (1.97 in realtà) scaricato e compilato.

Inizialmente credevo che il pacchetto Debian avesse la versione 1, invece aveva la 1.96. Poco male perché il test con bonnie++2 ha anche il flag “-c 4” = 4 processi in concorrenza. Gli altri parametri consentono invece di saltare alcuni test che a detta di Gregory sono poco significativi oggi. Per lo meno riferendosi all'attività di PostgreSQL.

Ecco un esempio:

# mount /dev/befair-test/part1 /mnt/test/
# blockdev --report # vedere lo stato attuale di dischi/partizioni fisiche
# blockdev --setra 16384 /dev/xvdc
# blockdev --setra 16384 /dev/befair-test/part1
# su - fero # non eseguire bonnie++ da root
$ /usr/sbin/bonnie++ -d /mnt/test/ -f -n 0 | tee ~/`hostname`.bonnie.ra16384 && cd /opt/bonnie++-1.97.1/ && ./bonnie++ -d /mnt/test/ -f -n 0 -c 4 | tee ~/`hostname`.bonnie2.ra16384

Oltre a questi ne ho fatto uno mettendo nice -n-5:

# nice
# 0
# # rimanendo root ma con l'opzione -u di bonnie++... (unica via per settare il nice adjustement)
# nice -n-5 ./bonnie++ -x20 -d /mnt/test/ -f -n 0 -c 4 -u fero | tee ~fero/`hostname`.bonnie2.ra16384.nice-5

Ho poi messo i risultati in formato html colorato con il simpatico script bon_csv2html con questa riga di bash:

# for i in `ls jagom.org.bonnie2.*`; do /opt/bonnie++-1.97.1/bon_csv2html $i > $i.html; done #bonnie++ da sorgente
# for i in `ls jagom.org.bonnie.*`; do bon_csv2html $i > $i.html; done # bonnie++ di Debian

Infine messo i risultati in /var/www/befair/bonnie/ accessibile tramite http://www.befair.it/bonnie/