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/