Xeon Performance bei gzip

22/02/2008 - 09:39 von Ralf Gross | Report spam
Hallo,

ich bin gerade etwas irritiert wegen des relativ geringen Durchsatz, den ich
erhalte, wenn ich Daten auf einem Sever mit gzip komprimiere (Backup).

Der Server besitzt 2 Xeon CPUs und 6 GB RAM (Debian Etch, x86_64).

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 8
cpu MHz : 2800.178
cache size : 2048 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc
pni monitor ds_cpl est cid cx16 xtpr lahf_lm
bogomips : 5605.07
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:


Ein einfacher Test mit dd (sda ist auf einem Hardware RAID 5):

foobar:/server# dd if=/dev/sda bs=1M count000 > /dev/null
15000+0 Datensàtze ein
15000+0 Datensàtze aus
15728640000 Bytes (16 GB) kopiert, 66,6727 Sekunden, 236 MB/s

Nun mit gzip:

foobar:/server# dd if=/dev/sda bs=1M count000 | gzip -3 - >/dev/null
15000+0 Datensàtze ein
15000+0 Datensàtze aus
15728640000 Bytes (16 GB) kopiert, 476,778 Sekunden, 33,0 MB/s


Wàhrend des Vorgangs sehe ich, daß wechselnd eine CPU mit 100% ausgelastet ist.
Der Duchsatz sinkt dazwischen aber auch für làngere Zeit auf ~15 MB/s, steigt
dann auch mal auf ~70 MB/s.

Auf anderen Servern erhalte ich deutlich höhere Werte zwischen 50 und 80 MB/s.
Darunter sind auch Server mit àlteren Xeon CPUs und singel CPU Systeme. Der
Server ist praktisch im idel Betrieb, es laufen keine anderen CPU intensiven
Anwendungen.

Gibt es da Kernel Parameter die ich tunen sollte? Der Wert kommt mir für solch
ein Dual Xeon System etwas niedrig vor.

Ralf
 

Lesen sie die antworten

#1 Arthur Erhardt
22/02/2008 - 15:03 | Warnen spam
Ralf Gross wrote:
Hallo,

ich bin gerade etwas irritiert wegen des relativ geringen Durchsatz, den ich
erhalte, wenn ich Daten auf einem Sever mit gzip komprimiere (Backup).

Der Server besitzt 2 Xeon CPUs und 6 GB RAM (Debian Etch, x86_64).



[cpuinfo]

Ein einfacher Test mit dd (sda ist auf einem Hardware RAID 5):

foobar:/server# dd if=/dev/sda bs=1M count000 > /dev/null
15000+0 Datensàtze ein
15000+0 Datensàtze aus
15728640000 Bytes (16 GB) kopiert, 66,6727 Sekunden, 236 MB/s

Nun mit gzip:

foobar:/server# dd if=/dev/sda bs=1M count000 | gzip -3 - >/dev/null
15000+0 Datensàtze ein
15000+0 Datensàtze aus
15728640000 Bytes (16 GB) kopiert, 476,778 Sekunden, 33,0 MB/s


Wàhrend des Vorgangs sehe ich, daß wechselnd eine CPU mit 100% ausgelastet ist.
Der Duchsatz sinkt dazwischen aber auch für làngere Zeit auf ~15 MB/s, steigt
dann auch mal auf ~70 MB/s.


Völlig normal, wenn die Eingabedaten verschieden sind.

Auf anderen Servern erhalte ich deutlich höhere Werte zwischen 50 und 80 MB/s.



Dein Meßergebnis ist nicht aussagekràftig, da Du ja verschiedene Datensàtze
auf verschiedenen Rechnern komprimierst.

Kleines Beispiel von anderswo:
model name : Intel(R) Xeon(R) CPU L5335 @ 2.00GHz
stepping : 11
cpu MHz : 1995.072
cache size : 4096 KB
...

:~> dd if=/dev/zero bs=1M count 0 of=test1
:~> dd if=/dev/urandom bs=1M count 0 of=test2

:~> time gzip -c1 test1 > /dev/null

real 0m1.590s
user 0m1.480s
sys 0m0.108s

:~> time gzip -c1 test2 > /dev/null

real 0m11.898s
user 0m11.785s
sys 0m0.112s

Um das zu verstehen solltest Du Dich mit dem in gzip verwendeten
Algorithmus auseinandersetzen.
Wenn Du nur Leistungsvergleiche anstellen willst, nimm die gleichen
Eingabedaten von einem ausreichend schnellen Medium (bei genug RAM:
/dev/shm/) und verwirf die Ausgabe von gzip, das minimiert die Aus-
wirkungen von Ein- und Ausgabe auf das Meßergebnis.
Sollte Dir nach einem parallelen gzip sein weil Du mehr als eine CPU
hast, such nach pigz17.c.gz

Grüße,

Arthur

arthur dot erhardt at pit dot physik dot uni dash tuebingen dot de
*pgp key available* dg7sea

A physicist is an atom's way of knowing about atoms.

Ähnliche fragen