AMD Dual-Opteron server (2) - Debian GNU/Linux

ico První testovanou 64bitovou distribucí byl Debian GNU/Linux 3.1 Sarge, na kterém také proběhlo několik malých výkonnostních testů.

24.8.2005 07:00 | Ondřej Čečák | přečteno 13516×

O Debianu

Debian GNU/Linux je svobodná a volně šiřitelná linuxová distribuce, která je vyvíjena dobrovolníky po celém světě. Za Debianem nestojí žádná komerční firma; vývojáři jsou vázáni společenskou smlouvou, která svobodu distribuce zajišťuje i pro budoucnost.

Více o nedávno vydané verzi Sarge si můžete přečíst v už vydaném článku.

Debian Sarge byl oficiálně vydán pro jedenáct architektur, AMD64 mezi nimi bohužel chybí. Minimálně rok zpět byl repositář s balíčky pro AMD64 na stroji Alioth, už tato verze byla poměrně použitelná a funkčnost se stále zlepšovala. Bohužel kvůli dost zpožděnému vydání nové stabilní verze Debianu bylo ovšem jeho začlenění do větve stable odloženo a není jisté, jestli se ve verzi 3.1 (Sarge) vůbec objeví. Nicméně příští verze (codename Etch) by oficiální port pro architekturu AMD64 obsahovat měla.

Neoficiální port lze už delší dobu stáhnout z amd64.debian.net a zhruba týden po oznámení, že Sarge se stal novou stabilní verzí, byla neoficiální větev AMD64 označena jako stable také. Obsahuje podobně jako svůj oficiální protějšek téměř patnáct a půl tisíce balíčků jenom s tím rozdílem, že některé problémové byly odstraněny.

Bezpečnost portu AMD64 bylo v plánu udržovat rovnou díky security.debian.org, což se také ve středu 3. srpna stalo (oznámení ve vývojářské konferenci). Staré bezpečnostní opravy byly nakumulovány do jednoho velkého DSA; nová oznámení se už budou vztahovat i na AMD64. 11. srpna byla podpora security týmem Debianu oznámena oficiálně.

Zkušenosti z instalace

Cíl snažení s každou distribucí bude poměrně jednoduchý – co nejsnadněji nainstalovat systém na SATA disky, které se budou zrcadlit v poli RAID 1. Ve stejném poli bude kromě systémového ještě jeden oddíl, který se bude rovněž zrcadlit a kde bude LVM s několika systémovými svazky. Protože nás zajímá serverová instalace, bude nutné nakonfigurovat síť a nainstalovat pár základních služeb (DNS, web, SQL databáze, MTA, ftp a třeba verzovací systém). Pokaždé nelze očekávat luxus myši nebo pořádného monitoru, takže bude výhodná textová instalace ekvivalentní grafické.

Teď už ale zpět k vlastní instalaci Debianu. Systém jsem instaloval pomocí síťové instalace – stačí stáhnout pouze cca 130 MB obraz CD, na kterém je kromě jádra základní systém. Další balíčky se už podle potřeby stahují z Internetu.

Sarge má na rozdíl od starého Woodyho nový instalátor, který umožňuje poměrně pohodlnou instalaci. Není dostupný přímo v grafické podobě (v XFree nebo X.org), ale běží ve framebufferu a je vzhledem podobný ncurses.

Instalátor samotný je poměrně mocný, kromě základního nastavení zobrazování, klávesnice a sítě dokáže poměrně sofistikovaně rozdělit disk – na vytvořených oddílech můžou být vytvořeny různé souborové systémy (ext3, ReiserFS, XFS a další) a přímo v nástroji na dělení disku je možné vytvořit RAID a na něm klidně LVM.

Bohužel se mi nepovedlo přimět LILO ani GRUB (který je mimochodem výchozí bootloader, proto aby se nenainstaloval musí buďto něco v instalačním procesu selhat, nebo je nutné před instalací zavaděče vybrat volbu "jít zpět", případně zvolit expertní instalaci) k tomu, aby byly schopné zavést systém s root oddílem na souborovém systémemu XFS. Proto jsem z jednoho ze swapových oddílů udělal dočasně root s filesystémem EXT3 a po nastartování systém "přelil" na oddíl s XFS.

Při této příležitosti se hodí poznamenat, že pokud při tomto přesunu (mimo samotného zavaděče – zvolil jsem LILO – je nutné zpravidla upravit initrd jádra atp.) uděláte jedinou chybu, budete muset opět bootovat ze servisního oddílu vytvořeného instalací. Knoppix sice nastartuje bez problémů, ale chroot do 64bitového prostředí neproběhne úplně – není možné spouštět programy na disku. Protože jsem navíc nainstaloval systém pomocí síťové instalace, neměl jsem po ruce 64bitový rescue režim.

Po úspěšném nainstalování systému je další konfigurace poměrně jednoduchá. Zmíním pouze nastavení zdrojů pro apt, které jsou definovány v souboru /etc/apt/sources.list:

#deb file:///cdrom/ sarge main deb http://ftp.de.debian.org/debian-amd64/debian/ stable main contrib non-free #deb-src http://ftp.de.debian.org/debian-amd64/debian/ stable main contrib non-free deb http://security.debian.org/ sarge/updates main contrib non-free

V případě, že jste nainstalovali verzi 3.1r0, opravte chybu v repositáři pro bezpečností opravy – místo testing by mělo být sarge, případně stable. Protože byla oficiálně podpora pro záplaty přidána nedávno, může také řádek v příkladu uvedený jako poslední chybět úplně.

Instalace programů už je snadná, defaultním programem pro správu balíčků je aptitude. U všech nainstalovaných služeb byla funkční výchozí konfigurace; konfigurační soubory byly bohatě okomentované. Za celou dobu jsem narazil jenom na dvě nepříjemnosti – nepochopitelně striktní nastavení přístupových práv na adresář /tmp (který je pro většinu služeb klíčový) a speciální soubor /dev/null (díky čemuž neproběhla správně konfigurace PostgreSQL; zasekla se na polovině a musela být po nastavení práv pro zápis dokončena).

Verze vybraného software

Testy výkonnosti

Na závěr jsem provedl několik malých testů výkonosti. Vše bylo samozřejmě provedeno na distribuci Debian. Používaný software byl až na výjimky použit přímo z balíčků distribuce. Úvodem se také hodí poznamenat, že aplikace, které neběží ve více vláknech, těžko využijí více procesorů.

Při kompilování jádra jsem jednak ověřil rychlost a jednak zjistil, že zkompilovat plné distribuční jádro Debianu na vyšších verzích není žádný med, proto jsem v konfiguraci vypnul pouze několik zbytečností a stačilo mi, že kernel šel bez závažných problémů přeložit.

# rozbalení zdrojových kódů
time tar xjf linux-2.6.12.4.tar.bz2

real    0m19.132s
user    0m15.129s
sys     0m1.859s
# komprimace souboru obsahující samé nuly s velikosti 512 MB
time bzip2

real    0m20.134s
user    0m19.606s
sys     0m0.511s

Při překladu jádra je potřeba nastavit nástroji make pomocí přepínače -j počet úkolů, které poběží současně. Pokud kompilujete jádro dle "The Debian way" (tedy do balíčku), máte situaci trochu jinou – make-kpkg nepodporuje parametr -j, ale přímo v dokumentaci je popsáno, jak docílit stejného chování pomocí proměnné shellu.

Verze jádra byla tedy 2.6.12.3 (všechny testy proběhli na tomto jádře) a .config jádra je dost veliký, protože vychází z defaultních voleb distribučního kernelu Debianu.

Postupným testováním jsem došel k tomu, co se obecně tvrdí – ideální počet simultánních operací je o jedničku vyšší než počet procesorů.


time CONCURRENCY_LEVEL="1" make-kpkg --revision benchmark.1 kernel_image

real    11m41.737s
user    10m7.672s
sys     1m29.146s

time CONCURRENCY_LEVEL="2" make-kpkg --revision benchmark.1 kernel_image

real    10m9.855s
user    10m39.580s
sys     1m58.895s

time CONCURRENCY_LEVEL="3" make-kpkg --revision benchmark.1 kernel_image

real    6m44.168s
user    10m45.377s
sys     2m1.451s

Při vyšším počtu současných úkolů už nedochází k výraznějšímu zlepšení (jednotky sekund), při nastavení velkého počtu navíc zřejmě kvůli režii dochází k mírnému zpomalení.

Na nově zkompilovaném jádru jsem spustil syntetický test Opstone Vector Scalar-Product Benchmark prostřednictvím binárního programu optimalizovaného pro AMD Opteron (tedy 64-bit a instrukční sady SSE a SSE2), který měl otestovat výkon operací v plovoucí čárce. Ve 32bitech dosáhl 2,68 Gflops (5,14 špička), v 64bitech 1,31 Gflops (2,37 špička). Hodnoty pro srovnání můžete najít na výše uvedené adrese, poznamenám jenom, že byl opět vytěžován pouze jeden procesor.

Rychlost šifrování jsem zkoušel nejprve pomocí program John The Ripper:

john --test

Benchmarking: Standard DES [64/64 BS]... DONE
Many salts:     407993 c/s real, 408789 c/s virtual
Only one salt:  386916 c/s real, 386916 c/s virtual

Benchmarking: BSDI DES (x725) [64/64 BS]... DONE
Many salts:     14102 c/s real, 14102 c/s virtual
Only one salt:  13966 c/s real, 13966 c/s virtual

Benchmarking: FreeBSD MD5 [32/64]... DONE
Raw:    3600 c/s real, 3604 c/s virtual

Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE
Raw:    294 c/s real, 294 c/s virtual

Benchmarking: Kerberos AFS DES [48/64 4K]... DONE
Short:  252030 c/s real, 252030 c/s virtual
Long:   693231 c/s real, 693231 c/s virtual

Benchmarking: NT LM DES [48/64 4K]... DONE
Raw:    2153678 c/s real, 2153678 c/s virtual

A následně pomocí OpenSSL:

openssl speed rsa1024

OpenSSL 0.9.7e 25 Oct 2004
built on: Sat Dec 18 09:38:01 CET 2004
options:bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) aes(partial)
blowfish(ptr2)
compiler: gcc -fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H
-DOPENSSL_NO_KRB5 -DOPENSSL_NO_IDEA -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -m64
-DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
rsa 1024 bits   0.0009s   0.0001s   1128.6  18169.9

Opět je vytěžován pouze jeden procesor, takže pokud test spustíte současně dvakrát (openssl speed rsa1024 > openssl1.out & openssl speed rsa1024 > openssl2.out &), dostanete přibližně dvojnásobný výsledek.

Rychlost I/O prověřil jednak hdparm (protože testuje pouze lineární čtení, je potřeba brát výsledek s rezervou) a pak tiobench (výsledek; jako souborový systém byl použit XFS, který má mimochodem na rozdíl od ostatních souborových systémů podporu pro paralelní zpracování dat, což se příznivě projevuje na výkonu u víceprocesorových strojů).

Na závěr jsem spustil databázový test DBD z MySQL pro MySQL a PostgreSQL s výchozím nastavením (výsledek). Důležité je zmínit, že tento test nelze použít pro srovnání, která z databází je rychlejší.

Závěr

S Debianem jsem byl spokojený – až na installer vše fungovalo dle mých představ. Nicméně musím přiznat, že Debian používám už delší dobu, takže mi některé pro někoho zvláštní věci mohou připadat zcela normální.

Komerční sdělení:
Tento server (skladem, k dodání okamžitě) nabízíme v našem Linux Shopu za 55.000 Kč včetně DPH, s nainstalovaným Linuxem (serverová instalace) za 60.000 Kč. Na přání jsme schopni postavit prakticky libovolný server s dual-opteronem dle požadavků – např. ve dražší variantě s SCSI disky, střední variantě s deskou MSI K8N Master2-FAR (4x SATA, 2x PATA, 2 Gbit síťové karty, 1x PCI Express x4 slot, 2x PCI Express x16, podpora až pro 12 GB paměti), to vše v 2U case nebo toweru (hot-swap cage i non hot-swap).

Debian GNU/Linux 3.1 "Sarge" pro AMD64 lze získat v Linux CD Shopu.
Online verze článku: http://www.linuxsoft.cz/article.php?id_article=931