Postfix zu langsam

Der TE hat aber nach wie vor noch keine Dinge wie Dateisystem und Mount-Optionen genannt. Wer weiß...

Evtl. hilft ja die fstab hier weiter:

Code:
proc /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/md/0 none swap sw 0 0
/dev/md/1 /boot ext3 defaults 0 0
/dev/md/2 / ext4 defaults 0 0
/dev/md/3 /home ext4 defaults 0 0

Die war allerdings schon drauf, ich habe ein Debian Squeeze Minimalsystem 64bit vom Hoster geladen, da bei Linux/Debian ich mich eigentlich immer darauf verlassen konnte das die Partitionierungen alle in Ordnung waren. Nun, das ist wohl hier entweder ein Trugschluss, oder die HDDs sind wirklich Schrott und man möchte in erster Linie nur Massenhaft Geld verdienen mit schlechter Hardware.
Ach ist das alles ein Mist.......

Mfg topoh
 
Ich würde aus persönlicher Erfahrung heraus auf das Dateisystem tippen.

Ich hab 2 Hetzner Server (beide mit Debian Squeeze, einmal ext3 und einmal ext4) und bei dem mit ext4 bricht die IO Performance bisweilen extrem ein.

Lass mal iotop laufen während viele Mails verarbeitet werden... wenn da weit oben irgendwas mit [jbd2/md...] steht, dann hast du das Problem gefunden.
 
Ok, ich hab hier mal einen kleinen Snapshot mit iotop gemacht im Normalbetrieb ohne das einer Mail versendet:

Code:
Total DISK READ: 2.27 K/s | Total DISK WRITE: 165.64 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   41.41 K/s  0.00 %  2.28 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 102.74 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s    9.65 K/s  0.00 %  0.79 % [jbd2/md2-8]
  
Total DISK READ: 10.78 K/s | Total DISK WRITE: 187.25 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   22.13 K/s  0.00 %  3.22 % [jbd2/md2-8]
  
Total DISK READ: 19.30 K/s | Total DISK WRITE: 42.02 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s    2.84 K/s  0.00 %  0.95 % [jbd2/md2-8]
  
Total DISK READ: 13.63 K/s | Total DISK WRITE: 910.54 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   38.05 K/s  0.00 %  1.12 % [jbd2/md2-8]
  
Total DISK READ: 12.49 K/s | Total DISK WRITE: 122.31 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   24.97 K/s  0.00 %  1.89 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 99.64 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s    8.52 K/s  0.00 %  0.86 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 144.56 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   11.93 K/s  0.00 %  1.83 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 682.22 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   48.24 K/s  0.00 %  0.97 % [jbd2/md2-8]

So wie ich das versteh sollte das wohl nicht sein mit dem jbd2! Und wenn das jetzt schon im Normalbetrieb auftaucht, möchte ich lieber erst gar nicht wissen wie es beim Mailversand aussieht :-(

Ok, was kann man konkret machen? Doch Bitte Bitte bei Hetzner wegen einer anderen HDD oder gibt es noch Optionen für die EXT4? Ich möchte ungern neu installieren, vor allem weiss ich im Moment gar nicht wohin mit den Usern darauf! und immer einen Umzug mit 24 Std, Ausfall der Domain machen die sicherlich nicht mit.

Mfg topoh
 
Es gibt keinen Weg ein Dateisystem auzutauschen wenn der Server läuft. So oder so was du auch immer machst muss eine Downtime eingeplant werden .


Gebe deinen Kunden doch die Info das etwas gemacht werden muss und geben denen zb bis Samstag Zeit . Dann können die sich auf eien Downtime einrichten bis der Server dann eben wieder geht :)


Am besten machst das System neu !
 
Was wohl "relativ schmerzlos" möglich wäre: Vollständiges Backup ziehen, danach im Rescuesystem die Partition neu mit ext3 aufbauen, Backup zurückspielen.

Die Downtime für den Rescuemodus bleibt natürlich.
 
So, wie schon befürchtet, habe ich mal 4 Snapshots nur beim Mailversand gemacht:

Code:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 1174.80 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   19.30 K/s  0.00 % 99.99 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 780.83 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s  113.41 K/s  0.00 % 99.13 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 1351.87 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s  105.47 K/s  0.00 % 98.33 % [jbd2/md2-8]
  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 1225.14 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   30.63 K/s  0.00 % 99.99 % [jbd2/md2-8]
  
Total DISK READ: 580.83 B/s | Total DISK WRITE: 867.84 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  508 be/3 root        0.00 B/s   16.45 K/s  0.00 % 99.21 % [jbd2/md2-8]

Das ist eine Katastrophe ! Daran liegt es wohl definitiv. Kann man auch nur die beiden EXT4 killen ? Also die beiden:

/dev/md/2 / ext4 defaults 0 0
/dev/md/3 /home ext4 defaults 0 0

und dann daraus in gleicher Größe entsprechende EXT3 machen? Macht das Sinn, bringt es den erforderlichen Schub wieder? Natürlich wenn man die Daten davor sichert.

Mfg topoh
 
Also ich halte solche Sachen für höchst gewagt, bin da aber auch kein Experte drin.
Was mich viel mehr wundert: Ich betreue derzeit drei Hetzner-Server aktiv und die laufen auch mit ext4 - allerdings ohne derartige Probleme, im Gegenteil. Wobei ich auch nie mit ext3 verglichen habe.

Edit:
Hier mal die Werte von einem EX 4S, dessen Platten jeweils gerade 10 IOPS hatten, also nicht wirklich viel zu tun (aber halt auch nicht komplett im Idle).

Code:
root@web3 ~ # dd if=/dev/zero of=testfile bs=32k count=50000 oflag=sync
50000+0 records in
50000+0 records out
1638400000 bytes (1.6 GB) copied, 34.6346 s, 47.3 MB/s

root@web3 ~ # dd if=/dev/zero of=testfile bs=4k count=50000 oflag=sync
50000+0 records in
50000+0 records out
204800000 bytes (205 MB) copied, 29.5341 s, 6.9 MB/s

root@web3 ~ # dd if=/dev/zero of=testfile bs=1M count=2000 oflag=sync
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 13.718 s, 153 MB/s

Also selbst bei dem Test mit 4 KB ist die Performance noch deutlich besser als beim TE.
 
Last edited by a moderator:
Code:
root@web3 ~ # dd if=/dev/zero of=testfile bs=32k count=50000 oflag=sync
50000+0 records in
50000+0 records out
1638400000 bytes (1.6 GB) copied, 34.6346 s, 47.3 MB/s

Ja was ist denn bei meinem los? Ich hab doch auch den EX4 mit 16GB Speicher, wieso bringt der bei mir diese schlechten Werte. Ist dann evtl. meine HDD defekt? Boha ey 34 sec. und 47 MB/s ist ja ein Traum!

Ich ruf da morgen an und frag was da los ist, wobei die ersten Supportmails mich nicht versöhnlich stimmten, pure Ignoranz und keine Hilfe bei Rootservern, nur Ausreden das sie nicht helfen können und das obwohl ich bereit war auch für den Service zu bezahlen (Quantität statt Qualität).

mfg topoh
 
Ich halte den Wechsel auf EXT3 erstmal nicht für zielführend, weil ich denke, dass damit nur an den Symptomen gewerkelt wird.

Der jdb2-Thread ist für das Journaling des Filesystems zuständig. Das Journal ist ein kleiner Bereich (default 128MB), in dem die Änderungen kompakt reingeschrieben werden, bevor sie dann aufwendig in möglicherweise vielen Verzeichnissen und Dateien vorgenommen werden. Man kann das Journal zwar abschalten, aber eigentlich will man das nicht, weil das Journal einen kompletten Filesystemcheck nach einem Crash überflüssig macht. EXT3 nutzt aber auch ein Journal, d.h. mit dem Wechsel auf EXT3 ändert sich inhaltlich gar nicht so viel (der Thread nennt sich dann einfach [kjournald]).

Die 99% bei iotop sind nicht das Problem, da wir ja über eine schreiblastige Nutzung reden. Als problematisch sehe ich eher, dass dabei nur 16-113 KB/sec Durchsatz erreicht werden. Und damit sind wir wieder bei der Performance der Platte.

Am Output von parted sieht man, dass die Platte zum Server hin mit 512 Byte großen Sektoren arbeitet, aber intern mit 4096 Byte großen Sektoren läuft. Für mich ist noch nicht endgültig ersichtlich, ob da nicht ein Problem mit dem Alignment vorliegt.

EXT3/EXT4 arbeiten per Default mit 4K Blocks, d.h. jeder I/O wird als Block von 4K an die Platte übergeben. Die Blockgröße kann man bei der Erzeugung des Filesystems festlegen. Zur Sicherheit kann man das nochmal verifizieren:

Code:
# dumpe2fs -h /dev/md/0
...
Block size:               4096
Fragment size:            4096
...

Wenn hier 4096 auftaucht, dann ist die Größe schonmal passend. Jetzt kommt es noch drauf an, dass die 4K vom Server auch genau in die 4K der Platte kommen. Wenn das nämlich nicht passgenau zusammentrifft, dann

  1. müssen zuerst zwei Sektoren von der Platte eingelesen werden
  2. die ersten 512 Bytes vom Server an die letzten 512 Bytes des ersten Sektors kopiert werden
  3. die folgenden 3584 Bytes vom Server an die ersten 3584 Bytes vom zweiten Sektor kopiert werden
  4. beiden Sektoren wieder zurückgeschrieben werden

Das ist auf http://www.thomas-krenn.com/de/wiki/Partition_Alignment ganz anschaulich dargestellt.

Leider ist die Ausgabe von parted durch die Anzahl der Gigabytes nicht mehr genau genug. Nach dem Aufruf von parted läßt sich mit nachfolgenden Kommandos die Ausgabe auf die Anzahl der Sektoren umschalten und für sda anzeigen:

Code:
select /dev/sda
unit s
print

Das Alignment stimmt, wenn die unter Start aufgeführten Zahlen (das "s" am Ende natürlich weglassen) glatt durch 8 teilbar sind. Das oben beschrieben Problem tritt auf, wenn das nicht glatt aufgeht. Ich vermute, dass hier insbesondere die Partition Nummer 3 das Problem hat.
 
Und der Support hat dann eine Glaskugel mit dem er deinen Fehler analysiert? .. :rolleyes:

Was soll denn das jetzt, so komme ich doch nicht weiter, solch ähnliche Sprüche habe ich schon vom Support erhalten. Da wo eigentlich die Experten sitzen, hoch ausgebildete Informatiker, die den ganzen Tag nichts anderes machen, wenn die nicht wissen was zu tun ist und woran es liegen kann, bzw eine Lösung des Problems wissen, wer dann?

Und selbst wenn ich ein Managed Server hätte, dann müssten die ja auch eine Lösung wissen! Und ich bin ja auch nicht abgeneigt die Leute halt dafür auch zu bezahlen, auch wenn ich einen Root Server habe. Ich habe in einem anderen Forum schon geschrieben, es reicht ein Führerschein um ein Auto fahren zu können, ich muss kein KFZ Mechatroniker sein dazu um zu wissen und zu verstehen wie man Motoren zerlegt und wie die Elektrik eines Autos funktioniert!

Genau so kann ich erwarten das ein Support gegen Endgeldleistung auch einem Hilft der "NUR" einen Root Server gemietet hat.

Und außerdem, woher willst du Wissen ob es mein Fehler war? Ich habe einfach ein Minimalsystem Debian Squeeze 64 Bit als Image von denen genommen, die Partitionen bestanden also schon alle. Das ich das so gemacht habe, kann man mir vorwerfen ohne Kontrolle weiter alles installiert zu haben, ja da war ich evtl. naiv zu glauben Hetzner erstellt nur gute Images. Ohne Selbstkontrolle geht wohl heute im Linux Bereich nichts mehr.

Ok wollen jetzt nicht weiter Offtoppic werden hier.

Mfg topoh
 
Kleine Anmerkung: Alle drei von mir betreuten Hetzner-Server wurden ebenfalls mit Debian 64-bit als Minimal-Image installiert und haben eine korrekte Blockgröße. Ich denke, dass dort irgendwo der Fehler liegt.

Kannst du einmal die Leseperformance testen und ggf. prüfen, ob das Problem auch außerhalb des RAID-Verbunds auftritt? Letzteres geht allerdings wohl kaum ohne das Ding ins Rescue zu versetzen und dann die Platten einzeln zu mounten und das zu testen.
 
Ich halte den Wechsel auf EXT3 erstmal nicht für zielführend, weil ich denke, dass damit nur an den Symptomen gewerkelt wird.

EXT3/EXT4 arbeiten per Default mit 4K Blocks, d.h. jeder I/O wird als Block von 4K an die Platte übergeben. Die Blockgröße kann man bei der Erzeugung des Filesystems festlegen. Zur Sicherheit kann man das nochmal verifizieren:

Code:
# dumpe2fs -h /dev/md/0
...
Block size:               4096
Fragment size:            4096
...

Wenn hier 4096 auftaucht, dann ist die Größe schonmal passend. Jetzt kommt es noch drauf an, dass die 4K vom Server auch genau in die 4K der Platte kommen. Wenn das nämlich nicht passgenau zusammentrifft, dann

Tja, das funktioniert schon mal gar nicht bei mir! Hier ist wohl was defekt?:

Code:
dumpe2fs 1.41.12 (17-May-2010)
dumpe2fs: Bad magic number in super-block while trying to open /dev/md/0
Couldn't find valid filesystem superblock.

Mfg topoh
 
Kleine Anmerkung: Alle drei von mir betreuten Hetzner-Server wurden ebenfalls mit Debian 64-bit als Minimal-Image installiert und haben eine korrekte Blockgröße. Ich denke, dass dort irgendwo der Fehler liegt.

Kannst du einmal die Leseperformance testen und ggf. prüfen, ob das Problem auch außerhalb des RAID-Verbunds auftritt? Letzteres geht allerdings wohl kaum ohne das Ding ins Rescue zu versetzen und dann die Platten einzeln zu mounten und das zu testen.

Ach du liebes Lottchen, jetzt versteh ich nur noch Bahnhof, soweit und so tief wollte ich gar nicht in das Eingemachte gehen, ich bin froh wenn ich den Server nicht komplett crashe oder kille :-( Dann habe ich ein mega dickes Problem! Obwohl, Kunden sollten auch ein Backup haben/machen .....aber ich denke das hat keiner von denen......

mfg topoh
 
Tja, das funktioniert schon mal gar nicht bei mir! Hier ist wohl was defekt?
md0 ist dein Swap sein. Ich weiß nicht, ob das Tool damit zurechtkommt. Prüfe doch mal md2 und die Partitionen auf den Platten selbst (/dev/sd[a|b]X), beispielsweise /dev/sda2 - reine Vermutung). Wo dein md2 effektiv läuft verrät uns cat /proc/mdstat.

Kunden sollten auch ein Backup haben/machen
Aus eigener Erfahrung: Vergiss es. ;)

soweit und so tief wollte ich gar nicht in das Eingemachte gehen, ich bin froh wenn ich den Server nicht komplett crashe oder kille :-( Dann habe ich ein mega dickes Problem!
Unter Umständen kommst du da nicht drum rum, beispielsweise wenn Hetzner die Platten prüft und diese für okay befinden.
Und so, wie du das schilderst, bezweifle ich, dass sie die Platten überhaupt prüfen wollen. Das vermutlich auch nicht zu Unrecht - ich bezweifle, dass sie auf Hardware-Ebene Probleme machen.

Zum Server-komplett-killen-Problem:
Hetzner bietet dir doch 100 GB Backupspace gratis. Backup machen, Experimente durchführen (und halt ggf. neu aufsetzen und das Backup zurückspielen).
Wenn du das nachts machst, sollte das selbst im Worst Case verschmerzbar sein.
 
Und so, wie du das schilderst, bezweifle ich, dass sie die Platten überhaupt prüfen wollen. Das vermutlich auch nicht zu Unrecht - ich bezweifle, dass sie auf Hardware-Ebene Probleme machen.
Hetzner prüft Hardware immer, wenn sich der Kunde in vernünftigem Ton und mit nachvollziehbaren Hinweisen, vorzugsweise Logs und/oder Ausgaben geeigneter Tools, an den technischen Support wendet.
Gegen entsprechendes Cash prüft Hetzner selbstverständlich auch auf Zuruf des Kunden, aber nur sehr ungern (wird dem Kunden auch entsprechend mitgeteilt), da dies unnötig Manpower verschwendet und einige Kunden nicht verstehen wollen, dass die Hardware in Ordnung und das Problem beim Kunden liegt.


Ich fragte übrigens nicht umsonst nach dem Filesystem, seiner Version und den Optionen mit denen es angelegt wurde. Wenn der OP diese Infos nicht liefern kann, dann kann er auch keinen Fehler seinerseits ausschliessen.
Und bevor jetzt jemand meint, dass er ja ein fertiges Image des Hosters nutzt: Er ist root und somit für Alles auf dem Server verantwortlich und das bedeutet auch, dass er im Zweifel eine manuelle Installation durchzuführen hat. Letzteres hat auch etwas mit Verantwortung, Sicherheit und Datenschutz zu tun, denn auch beim Hoster kann sich mal Malware einnisten, sowohl versehentlich, als auch absichtlich durch unzufriedene Mitarbeiter. Ist glücklicherweise extrem selten, hat es aber bei anderen Anbietern schon gegeben.


Da ohnehin ein Wechsel des Filesystem notwendig ist, dann bitte gleich auf XFS da es für den Einsatzzweck eines Mailservers am Besten geeignet ist.

Zudem ist die Wahl der Distri beziehungsweise des OS zu überdenken, da Debians Filesystem-Tools nicht gerade aktuell sind...
 
Code:
# dumpe2fs -h /dev/md/0
...
Block size:               4096
Fragment size:            4096
...

Block und Fragment size stimmen bei allen Partitionen/Platten, sind immer 4096.

Code:
select /dev/sda
unit s
print

Leider ist hier entweder durch parted die Angabe nicht ausreichend genau (Ungenauigkeit), oder es ist wirklich hier ein kb zuviel!
Hier mal 4 Printausgaben:
Code:
Einmal mit (byte)
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sda: 3000592982016B
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start           End             Size            File system  Name  Flags
 5      1048576B        2097151B        1048576B                           bios_grub
 1      2097152B        34361835519B    34359738368B                       raid
 2      34361835520B    34898706431B    536870912B                         raid
 3      34898706432B    1134410334207B  1099511627776B                     raid
 4      1134410334208B  3000592965119B  1866182630912B                     raid



Einmal partet mit (KB):
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sda: 3000592982kB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start         End           Size          File system  Name  Flags
 5      1049kB        2097kB        1049kB                           bios_grub
 1      2097kB        34361836kB    34359738kB                       raid
 2      34361836kB    34898706kB    536871kB                         raid
 3      34898706kB    1134410334kB  1099511628kB                     raid
 4      1134410334kB  3000592965kB  1866182631kB                     raid


Einmal mit (MB)
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sda: 3000593MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start      End        Size       File system  Name  Flags
 5      1.05MB     2.10MB     1.05MB                        bios_grub
 1      2.10MB     34362MB    34360MB                       raid
 2      34362MB    34899MB    537MB                         raid
 3      34899MB    1134410MB  1099512MB                     raid
 4      1134410MB  3000593MB  1866183MB                     raid

Einmal mit (GB)
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 5      0.00GB  0.00GB  0.00GB                     bios_grub
 1      0.00GB  34.4GB  34.4GB                     raid
 2      34.4GB  34.9GB  0.54GB                     raid
 3      34.9GB  1134GB  1100GB                     raid
 4      1134GB  3001GB  1866GB                     raid

Ich hoffe die Angaben reichen erst einmal für eine Analyse.

mfg topoh
 
Last edited by a moderator:
Das ganze wird nix mit Hetzner oder den verwendeten oder gar defekten Platten zu tun haben (hab das Problem auch schon bei Servern in den USA gehabt).
Ich weiß nicht woran es liegt, aber der Wechsel zu ext3 oder folgende mount Optionen haben das Problem immer gelöst.
Wobei der Weg mit den mount Optionen in Hinblick auf Sicherheit nicht wirklich ideal ist.
Probier es trotzdem mal aus, dann weißt du in etwa wie schnell das ganze sein könnte.

Code:
/dev/md/2 / ext4 defaults,noatime,data=writeback,barrier=0,nobh 0 0
 
Das wird damit rein gar nichts zu tun haben. Einen solchen Performance-Einbruch schafft man mit den Standard-Mountoptionen garantiert nicht.
 
In Kombination mit einem experimentellem Filesystem und falschen Alingment ist das durchaus möglich.
 
Back
Top