Schlechte Packrate

Lord_Icon

Member
ich bin derweilen dran, etliche Daten zu packen und entsprechend zu backupen.

Ein Script hab ich mir auch shcon geschrieben, was mehr oder weniger gut klappt.
Zumindest werden die Daten gesichert, die ich brauche.


Zum Verständniss erstmal.

Ein Rechner, wo mehrere container (mit dd erzeugt) leigen. Diese sollen gepackt werden.
In den Containern liegen z.b. die MYSQL Datenbanken oder aber meine Kundendaten oder aber die System daten. Diese Container werden von Xen "angesprochen" und entsprechend verwaltet. (an den Admin = nein = denke nicht, das es hier in die Rubrik Virtualiserieung gehört)

Das komische daran ist, das obwohl weniger Daten vorhanden sind = das die Datei im gepackten Zustand weit aus größer ist. Derweilen kann ich mir das nicht erklären, warum das so ist.

Tatsachen / Beipiel:
Code:
Name		Größe		Benutzt		gepackt auf	Packrate

email 		10.000 MB	   156 MB	   122 MB	-21,794 %
MYSQL		10.000 MB	   230 MB	    36 MB	-84,347 %
Kundendaten	50.000 MB	 3.100 MB	 4.995 MB	+37,937 %
System		40.000 MB	19.000 MB	36.258 MB	+47,597 %

Email und Mysql Daten haben eine schöne Packrate. Die restlichen 2 Datein sind aber fast doppelt so groß geworden. Wieso ist das so ?

Packen tut ich die Datein mit
Code:
tar zcvf
 
Nicht alle Datenströme lassen sich gleich gut packen. Beispielsweise lassen sich verschlüsselte Daten, bei denen die Redundanz sehr niedrig ist, sehr schlecht packen. Bei einigen Packverfahren werden die Resultate dann sogar größer, wie du ja selbst gesehen hast.
Dass sich die Datenbank und E-Mails so gut packen lassen, liegt einfach daran dass diese genügend Redundante Informationen (bei E-Mails z. B. Sprache) enthalten, die gepackt werden können.
 
Du hasts mit GZip gepackt, alternative kannst du BZip2 versuchen. Viel Hoffnung mach ich dir da allerdings nicht.

Mails und Datenbanken (Dumps?) sind reiner Text welcher sich ideal komprimieren lässt. Kundendaten und System sind bei den Größenordnungen wohl hauptsächlich Binärdaten, welche sich nur schwer komprimieren lassen.
Im ungünstigsten Fall (wie bei dir) erzeugst du mit dem Versuch zu komprimieren mehr Overhead als was die eigentlichen Daten kleiner werden.

Edit: Da war wohl jemand schneller. tztztz ;)
 
nee... ich vermute, das das irgendwas am filesystem liegt.

Ich hab jetzt INNERHALB des Containers diese Datein gesichert. Gleicher befehl.

Jetzt sind die Kundendaten von
4,995 MB auf 2,279 MB geschrumpft.

Tatsächlich belegt waren ja 3.100 MB. So soll es sein.

Aber woran liegt es denn ?
 
Dein "Container" beinhaltet auch den vermeintlich "freien" Platz, während du innerhalb der Umgebung nur die tatsächlich vorhandenen Dateien packst...

Tatsächlich wurden die Daten in deinem 1. Post also von 50.000 MB auf 4.995 MB und von 40.000 MB auf 36.258 MB komprimiert.
 
öhmm,,,, ich glaube du hast was verwechselt.
Du hast jetzt 2 Dinge verwechselt.

Einmal habe ich die Daten gepackt, die in /srv/www/htdocs liegen.
Und einmal die container Datei wo GENAU diese Daten drin liegen.


Also nochmal:
Wenn ich die Container Datei packe dann bekomme ich folgende packwerte.
(in dieser container datei liegen ausschließlich nur die Daten von /srv/... drin.
Code:
Name		Größe		Benutzt		gepackt auf	Packrate

Kundendaten	50.000 MB	 3.100 MB	 4.995 MB	+37,937 %

Wenn ich aber in die container Datei reingehe und von dort aus packe, dann erhalte ich eine wesendlich kleinere gepackte Datei:
Code:
tar zcvf kundendaten.tar.gz srv/

Name		Benutzt		gepackt auf	Packrate

Kundendaten	 3.100 MB	 2.279 MB	-26,483 %


Die Übersicht:
Code:
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/sda1              40G   21G   17G  55% /
udev                  1,1G  184K  1,0G   1% /dev
/dev/sda3             9,9G  156M  9,2G   2% /var/spool/mail
/dev/sda4              50G  3,1G   44G   7% /srv
/dev/sda5             9,9G  230M  9,2G   3% /var/lib/mysql



Soo.. nun kenne ich mich in den Filesystem nicht so geanu aus. Ext3 ist das sys, was ich verwende.
Löscht denn Linux die Datei WIRKLICH oder ist es da wie Windows... sprich. wird nur aus dem index gelöscht = Datei ist aber noch da, bis es überschrieben wird.
Denn das würde das ganze ja erklären.
Aber so weit ich es weiß, löscht Linux die Daten ja sauber raus. (?)
 
hmm.. nö. Is bei mir anders angekommen.

Tatsächlich wurden die Daten in deinem 1. Post also von 50.000 MB auf 4.995 MB und von 40.000 MB auf 36.258 MB komprimiert.

Du vergleichst hier = 50.000 MB = Die Kundendaten /srv
und die = 40.000 MB = die Systemdaten /

Das sind ja 2 verschiede container.

In meine letzten Postings habe ich aber auschließlich von der 50 GB Container Datei gesprochen. Denn sonst hätte ich ja 2 verschiedene Grundvorausetzungen. Sprich ein direkter Vergleich wäre somit nicht gegeben.

aber diskusion beendet. Bringt ja keine Punkte, ob ich jetzt was missverstanden habe oder du tatsächlich was anderes meinst. Denke mal, das spätestens jetzt mit dieser Erklärung alle unklarkeiten gelöst sind.
Zumindest was mich + Roger Wilco angeht.
ich + Ext3 is ja noch als offen
 
Also ich seh da eine Aufzählung und kein Vergleich.
Allerhöhstens ein Vergleich zwischen komprimiert und unkomprimiert. Aber keinesfalls zwischen /srv und / ;)
 
Back
Top