sonnenblen.de - Das unabhängige Sun User Forum Der Treffpunkt für Sun-Fans seit 2001
  Übersicht   Forum   Hilfe Suche Einloggen Registrieren   *
Suche
Google
Erweiterte Suche
Willkommen Gast. Bitte einloggen oder registrieren.
24. Mai 2012, 18:26:02

Einloggen mit Benutzername, Passwort und Sitzungslänge
Letzte 5 Shouts:
09. April 2012, 22:24:40
Genau! dir auch noch knappe 35 Minuten Rest-Ostern Wink und denen dies noch vor 0 Uhr lesen ebenso ein frohes Rest-Ostern Wink
08. April 2012, 12:25:29
Falls heute noch jemand hier vorbei schaut: Frohe Ostern!  :-)
14. März 2012, 02:18:10
Wet,Wetter,abgesoffen? Wink *scnr*
21. September 2011, 17:02:09
USENET? - Tolles Ding!
11. September 2011, 15:09:12
Super Wetter!
Spenden
Anzeige
Berechtigungen

Anzeige
Seiten: [1] 2   Nach unten
  Drucken  
Autor Thema: Kompression funktioniert nicht (richtig)  (Gelesen 2051 mal)
Bentsch
Gast
« am: 02. Januar 2009, 10:58:58 »

Hallo,

ich bin noch ein ziemlicher Solaris-Neuling und habe seit einigen Monaten einen OpenSolaris-Server laufen, auf den mit Windows- und Mac-Systemen zugegriffen wird. Und ich habe es bisher nicht geschafft, dass die Kompression mit ZFS richtig funktioniert.

Derzeit habe ich auf meinem System (OpenSolaris 2008.11, Asus P5W DH Deluxe-Mainboard, Core 2 Duo 5300, 4 GB RAM) mit einem RAID-Z1 aus 5 Platten mit je einem 1 TB eine Kompressionsrate von 1.00 bis 1.01. Die Kompression ist also aktiviert, aber der Kompressionsfaktor ist immer in einem niedrigen einstelligen Prozentbereich. Ich habe alle Optionen getestet, ob Standard-lzjb oder gzip, das Ergebnis sieht immer ähnlich schlecht aus. So sehe ich zwar, dass das System mit der Kompression bei gzip-9 deutlich mehr beschäftigt ist als wenn ich mit lzjb komprimiere, aber dann bekomme ich beispielsweise einen Faktor von 1.03 statt 1.02 mit gzip.

Und natürlich versuche ich nicht, bereits komprimierte Dateien noch einmal zu komprimieren und bekomme deshalb einen so schlechten Wert. Den meisten Platz brauchen unkomprimierte Audio- und Videodateien, und auch beim Rest der mehreren 10.000 Dateien handelt es sich um "Standarddateien" wie Textdateien, Bilder, pdfs ...

Als Beispiel habe ich eben einen Ordner mit 600 MB an Audiodateien im .wav-Format einmal mit lzjb und einmal mit gzip-9 komprimiert. Mit lzjb hat er gar nicht komprimiert und einen Faktor von 1.00, mit gzip-9 habe ich eine Kompression von 1.02 erreicht. (In Windows bekomme ich mit WinRAR die halbe Dateigröße)

Es ist mir also ein Rätsel, warum ich die Kompression aktivieren kann, sie dann aber trotzdem nicht funktioniert. Ich habe die Sache mit der Kompression mit RAID-Z1 und  RAID-Z2 getestet, auf OS 2008.5 und OS 2008.11, mit Dutzenden file systems und allen Kompressionsoptionen, bekomme aber immer das gleiche Ergebnis. Hat jemand nen Vorschlag, was ich noch versuchen könnte oder woran es liegen könnte?

Danke im Voraus,
Beni
Gespeichert
sonnenblen.de - Das unabhängige Sun User Forum
« am: 02. Januar 2009, 10:58:58 »

 Gespeichert
linus83
Sobl Bachelor
***
Offline Offline

Beiträge: 144


« Antworten #1 am: 15. Januar 2009, 08:39:10 »

komprimiert zfs auch nachträglich alles, wenn man auf einen vorhandenen Dateisystem die Kompression anschaltet? Das müsste mal ausprobieren. Wenn ich Zeit habe, werde ich es mal machen, aber leider nur auf USB-Sticks, das sollte aber kein Unterschied sein.

Gruß
Gespeichert
dominik
Sobl Bachelor
***
Offline Offline

Beiträge: 182


Me, myself & I


WWW
« Antworten #2 am: 15. Januar 2009, 11:45:51 »

linus:

Nein, tut es nicht. Allerdings macht ZFS ein copy-on-write, das heisst wenn Du die Kompression einschaltest, werden alle neu geschriebenen Blöcke komprimiert.


Gruss
Dominik
Gespeichert
erisch
Moderatoren
Sobl Guru
*****
Offline Offline

Beiträge: 758


TurboSPAAAAAG


WWW
« Antworten #3 am: 15. Januar 2009, 13:18:32 »

gzip und Konsorten sind Entropiecodierer, damit lassen sich auch unkomprimierte Video/Audidaten nicht effektiv komprimieren. Dafuer braucht man Kodiersysteme mit Dekorrelationsalgorithmen (JPEG fuer Bilder z.B.). Das laesst sich aber in ne Disk-Compression nicht einbauen.

Wenn RAR das besser macht liegt das vielleicht daran, dass die quasi-intelligent kodieren, allerdings glaube ich nicht, dass das fuer on-the-fly compression geeignet ist (jedes mal 100% CPU last beim Diskzugriff)

Mfg. Erisch
Gespeichert
linus83
Sobl Bachelor
***
Offline Offline

Beiträge: 144


« Antworten #4 am: 15. Januar 2009, 14:54:26 »

Also dann kann das "Problem" darin liegen, das die Kompression evtl. zu einen spätern Zeitpunkt eingeschaltet wurde und schon Daten auf den Datenträger waren. Dann braucht es sehr viele neue Blöcke, damit was merkt.

Ich habe zumindest gelesen, dass bis zu einen Faktor von 5 bei log-Files drin ist. Ein Kumpel macht das und ist eigenlich sehr zufrieden. Was er erreicht muss ich mal erfragen. Gut reiner Text lässt sich auch mit einfachen Verfahren recht gut komprimieren.
Gespeichert
sonnenblen.de - Das unabhängige Sun User Forum
« Antworten #4 am: 15. Januar 2009, 14:54:26 »

 Gespeichert
erisch
Moderatoren
Sobl Guru
*****
Offline Offline

Beiträge: 758


TurboSPAAAAAG


WWW
« Antworten #5 am: 15. Januar 2009, 15:22:45 »

mein Post bezog sich eher auf den Ursprungs-Post
Gespeichert
Bentsch
Gast
« Antworten #6 am: 18. Januar 2009, 09:56:39 »

Die Kompression habe ich immer aktiviert, bevor ich die Dateien kopiere, daran kann es also nicht liegen.

erisch: Dass ich bei solchen Dateien keinen Faktor 2,3 oder 5 erwarten kann, weiß ich, aber die Kompression macht ja fast gar nichts, egal bei welchen Dateien. Ich habe wie gesagt nicht nur Audio- und Videodateien im file system, und trotzdem zeigt er mir bei der compressratio einen Wert von 1.00 an. Weil er selbst Dateien, die sich ziemlich gut komprimieren lassen sollten, mit nur wenigen Prozent komprimiert. Gibt es vielleicht so was wie ne gut geeignete Testdatei zum Download, mit der ich meine Kompressionsrate mit jemand anderem vergleichen könnte?
Gespeichert
dominik
Sobl Bachelor
***
Offline Offline

Beiträge: 182


Me, myself & I


WWW
« Antworten #7 am: 19. Januar 2009, 08:23:15 »

Zitat
root@sbsubs170 # zfs get compressratio zonedata_sbsubs170/ubs175_oradata
NAME                               PROPERTY       VALUE                              SOURCE
zonedata_sbsubs170/ubs175_oradata  compressratio  2.36x                              -

Das sind die Werte einer Oracle 10 OLTP Datenbank mit eingeschalteter ZFS compression.

Und hier noch das Zone-Root (Sol10U6) der gleichen Installation:

Zitat
root@sbsubs170 # zfs get compressratio zonehome_sbsubs170/ubs175_zone
NAME                            PROPERTY       VALUE                           SOURCE
zonehome_sbsubs170/ubs175_zone  compressratio  1.57x                           -


Gruss
Dominik
Gespeichert
erisch
Moderatoren
Sobl Guru
*****
Offline Offline

Beiträge: 758


TurboSPAAAAAG


WWW
« Antworten #8 am: 21. Januar 2009, 16:52:13 »

Gibt es vielleicht so was wie ne gut geeignete Testdatei zum Download, mit der ich meine Kompressionsrate mit jemand anderem vergleichen könnte?

dd if=/dev/zero of=/path/to/testfile bs=1024 count=1048576

gibt dir ne 1GB grosse Datei voll mit Nullen, laesst sich also prima komprimieren.

Mfg. Erisch
Gespeichert
Bentsch
Gast
« Antworten #9 am: 02. Februar 2009, 08:50:36 »

erisch, danke für den Tipp. Ich habe für diesen Test drei neue Dateisysteme erstellt, ein unkomprimiertes, eines mit der Standardkompression und eines mit gzip-5. Mit zfs get compression bekomme ich entsprechend die Werte compression=off, "on" und "gzip". Ich habe die Testdatei im unkomprimierten Dateisystem erstellt und danach in die zwei anderen kopiert. Und jeweils zeigt er mir eine compressratio von 1.00 an ...  Huh
Gespeichert
sonnenblen.de - Das unabhängige Sun User Forum
« Antworten #9 am: 02. Februar 2009, 08:50:36 »

 Gespeichert
dominik
Sobl Bachelor
***
Offline Offline

Beiträge: 182


Me, myself & I


WWW
« Antworten #10 am: 02. Februar 2009, 09:01:15 »

Bentsch:

Hast auch was reinkopiert? Nur eine dumme Frage, weil ohne was reinzukopieren zeigt er immer 1.00x an

Zitat
# zfs create tank/test
# zfs set compression=on tank/test
# zfs get compression tank/test
NAME                     PROPERTY     VALUE                    SOURCE
tank/test  compression  on                       local
# zfs get compressratio tank/test
NAME                     PROPERTY       VALUE                    SOURCE
tank/test  compressratio  1.00x                    -

Gruss
Dominik
Gespeichert
Bentsch
Gast
« Antworten #11 am: 02. Februar 2009, 12:42:34 »

Keine dumme, eine absolut berechtigte Frage :-) Ja, ich habe die Testdatei in jedes Filesystem einmal kopiert. Hier noch mal die Schritte dieses Tests:
1. Drei Dateisysteme erstellt, eines ohne Kompression, eines mit Standardkompression, eines mit gzip. zfs get compression zeigt die richtigen Werte, also off, on und gzip.
2. Die Testdatei mit dem Befehl dd if=/dev/zero of=/path/to/testfile bs=1024 count=1048576 im unkomprimierten Filesystem erstellt.
3. Von dort per Kopieren und Einfügen in die anderen zwei Dateisysteme eingefügt
4. zfs get compressratio zeigt für alle drei Dateisystem 1.00x an
Gespeichert
dominik
Sobl Bachelor
***
Offline Offline

Beiträge: 182


Me, myself & I


WWW
« Antworten #12 am: 02. Februar 2009, 14:17:00 »

Seltsame Sache. Kann das hier so nachvollziehen (Solaris 10 Update 6):

Zitat
# dd if=/dev/zero of=/tmp/test.dmp bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
# cp /tmp/test.dmp /tank/test
# zfs get compressratio tank/test
NAME                     PROPERTY       VALUE                    SOURCE
# ls -al
total 7
drwxr-xr-x   2 root     root           3 Feb  2 14:10 .
drwxr-xr-x   3 root     root           3 Feb  2 08:58 ..
-rw-r--r--   1 root     root     1073741824 Feb  2 14:10 test.dmp
root@sbsubs180 # du -sh
   2K   .
# tar cf test.tar /usr/openwin
# zfs get compressratio tank/test
NAME                     PROPERTY       VALUE                    SOURCE
tank/test  compressratio  1.28x                    -
# rm test.tar
# zfs get compressratio tank/test
NAME                     PROPERTY       VALUE                    SOURCE
tank/test  compressratio  1.00x                    -

Vielleicht liegt es daran, dass das leere File so stark komprimiert werden kann, dass die Anzeige "unsinnige" Werte ausgeben würde? Evtl. kann da ein Blick in den Sourcecode helfen.


Gruss
Dominik
Gespeichert
batschul
Sobl Newbie
*
Offline Offline

Beiträge: 21

Ich mag keine Signaturen!


WWW
« Antworten #13 am: 03. Februar 2009, 18:46:30 »

Keine dumme, eine absolut berechtigte Frage :-) Ja, ich habe die Testdatei in jedes Filesystem einmal kopiert. Hier noch mal die Schritte dieses Tests:
1. Drei Dateisysteme erstellt, eines ohne Kompression, eines mit Standardkompression, eines mit gzip. zfs get compression zeigt die richtigen Werte, also off, on und gzip.
2. Die Testdatei mit dem Befehl dd if=/dev/zero of=/path/to/testfile bs=1024 count=1048576 im unkomprimierten Filesystem erstellt.
3. Von dort per Kopieren und Einfügen in die anderen zwei Dateisysteme eingefügt
4. zfs get compressratio zeigt für alle drei Dateisystem 1.00x an

pfiffiges beispiel ;-), /dev/zero ist hier der schluessel

also wenn kompression nicht angeschaltet ist wird ZFS all die bloecke fuer die 0en allokieren und schreiben

aber, wenn kompression angeschaltet ist (per default nur fuer meta daten an) dann ist mit diesem
beispiel alles anders.

Die komprimierung findet im SPA (storage pool allocator) statt, in der write I/O pipeline,
dh. wir nehmen den write, komprimieren den block and da alles 0en sind, kehren wir sofort
wieder zurueck mit einem zero block pointer (kein block allociert/zu schreiben),
dies passiert fuer alle bloecke in dieser 'testfile' datei.

Das resultat ist das wir eine dnode fuer die datei ondisk anlegen welche keine data blocks hat.
die "groesse" der datei ist im data teil znode_phys innerhalb der dnode gespeichert.

hth
frankB
Gespeichert
Kaurik
Global Moderator
Sobl Guru
*****
Offline Offline

Beiträge: 858

Holidays in the Sun


WWW
« Antworten #14 am: 03. Februar 2009, 21:09:59 »

Da ich zwar überhaupt keine Ahnung von ZFS habe, aber neugierig bin, möchte ich mal was fragen:

Heisst das, dass die Kompression gar nicht stattfindet, weil das File gar nicht geschrieben, sondern lediglich der Platz allokiert wird?

Claus
Gespeichert

Computer sind doof. Aber sie schaffen Arbeit.
Seiten: [1] 2   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC
TinyPortal v0.9.8 © Bloc
Prüfe XHTML 1.0 Prüfe CSS
sonnenblen.de, mood-indigo.org, unixforum.net und realcomputers.org sind Projekte der steinbruch.info GbR

Google war zuletzt hier 18. Mai 2012, 03:08:28