Mar 22 2009

bonnie++: linux filesystem benchmark

Tag: Debian,HW Tunning,LinuxJens @ 01:00

Jak otestovat výkonnost souborového systému na linuxu? Je lepší ext3, ReiserFS, JFS nebo XFS? Jaký RAID použít a jako ho nastavit? Odpověď není jednoduchá, vždy záleží na konkrétní situaci a na konkrétních požadavcích. Jedno je ale jasné, většina z nás chce dosáhnout maximálního výkonu při zachování bezpečnosti uložených dat. To jak otestovat výkonnost filesystému na linuxu je předmětem tohoto článku.

Utilita bonnie++

Tato jednoduchá utilitka testuje zvolený filesystém tím že na něj vytvoří různými způsoby poměrně velké souboru (ve výchozím stavu 2 * velikost RAM po 1 GB — tedy 8 GB RAM = 16 * 1GB souborů), které následně čte a přepisuje. Toto všechno měří a počítá rychlosti jednotlivých operací, navíc v dalších testech umí vyvářet různé (volitelné) množství souborů a adresářů, ke kterým různě přistupuje (mazání a čtení). Otestuje tedy i schopnost filesystému rychle přistupovat k adresářům a souborům.
Instalace bonnie je na Debianu velmi jednoduchá, i ve stable existuje balíček bonnie++:

# apt-get install bonnie++

Spuštění je téměř stejně jednoduché jako instalace, vytvoříte si na testovaném FS nějaký adresář (například /var/bonnie):

# mkdir -m 0777 /var/bonnie
# bonnie++ -d bonnie -u root:root

a už to jede …, výsledek testu se pak zobrazí v textovém formátu přibližně takto (důležitý pro další zpracování je poslední řádek):

jens,16G,62748,98,180566,53,79826,14,71269,94,230871,21,614.8,0,16,31768,100,+++++,+++,+++++,+++,31162,99,+++++,+++,+++++,+++

Tomuto bonnie říká CSV formát, zároveň s utilitou bonnie++ se vám taky nainstalují bon_csv2html a bon_csv2txt. První převádí CSV formát do přehledné HTML tabulky a druhý generuje textovou tabulku.
bon_csv2html lze použít následovně:

# echo "jens,16G,62748,98,180566,53,79826,14,71269,94,230871,21,614.8,0,16,31768,100,+++++,+++,+++++,+++,31162,99,+++++,+++,+++++,+++" | bon_csv2html > bonnie.html

Výsledný soubor bonnie.html je výsledková tabulka s popisky a s výsledky (ke každému testu rychlost a zatížení CPU), pokud provedeme více testování, pak si všechny výsledné řádky dáme do jednoho souboru, např. bonnie.txt a vygenerujete si výsledkovou tabulku pro všechny testy:

# cat bonnie.txt | bon_csv2html > bonnie.html

Při použiti bon_csv2txt získáváte textový výstup:

Version  1.03e      ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jens            16G 62748  98 180566  53 79826  14 71269  94 230871  21 614.8   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
jens             16 31768 100 +++++ +++ +++++ +++ 31162  99 +++++ +++ +++++ +++

Je důležité říci, co znamenají hodnoty ++++ a +++ ve výsledku benchmarku: tento výsledek znamená, že test proběhl tak rychle (méně jako 500ms), že nebylo možně vyhodnotit správnou hodnotu a proto raději nevypíše nic, než nevypovídající číslo. Z tohoto důvodu je třeba parametry spuštění ještě lehce upravit tak, aby benchmark vyvořil více souborů a aby naměřil nějaké relevantní hodnoty. Vetšinou se s tím setkáte u create testů, které vytváří soubory a adresáře. Proto nastavte parametr -n například takto:

# bonnie++ -d bonnie -u root:root -n 16:10000:16:64

Důležité odkazy na bonnie++:


Mar 14 2009

Debian: jak změnit výchozí editor

Tag: Debian,LinuxJens @ 17:31

Debian (Etch i Lenny) používá ve výchozím stavuj editor nano. Toto lze jednoduše změnit pomocí utility update-alternatives. Pokud tedy chcete používat například vi nebo vim namísto nano, tak hurá do toho.

# update-alternatives --config editor

Tento příkaz vám pak dá na výběr, začátečník si pak může vybrat třeba i iterní editor který používá Midnight Commander: mcedit.

franta:~# update-alternatives --config editor

There are 5 alternatives which provide `editor'.

  Selection    Alternative
-----------------------------------------------
          1    /bin/ed
 +        2    /bin/nano
          3    /usr/bin/vim.tiny
*         4    /usr/bin/vim.basic
          5    /usr/bin/mcedit-debian

Press enter to keep the default[*], or type selection number:

Další zajímavá věc, které s tímto tak trochu souvisí je, že v poslední době se ve výchozí instalaci Midnight Commanderu (mc) používá také nano jako výchozí editor. To je poměrně nepříjemné, protože nano mě přijde oproti mcedit jaksi nepřívětivé. Toto lze však také velmi jednoduše změnit, v konfiguraci mc si zaškrtnete use internal edit (viz obrázek).

debian mcedit use internal editor