Server unerklärlich langsam

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
dellerium
Posts: 5
Joined: 2005-05-11 13:55
 

Server unerklärlich langsam

Post by dellerium »

Hallo!

Ich hab ein kleines problem, bei mir vielleicht jemand von helfen kann. Es betrifft zwar nicht direkt einen Root Server, aber ist auch nen Server :)

Ich hab hier einen HP Package Cluster stehen ( 2x HP DL380G4 + MSA500 G2 ) Auf deutsch. 2 HP Server mit jeweils 2 3,4Ghz Xeon CPU und 6GB Ram + externem Storrage.
Mein Problem ist, das die Performance nicht stimmt. Auf dem Servern läuft der SLES9. Einer der Server beherbergt eine PostgreSQL Datenbank ( 8.0.3 ). Importiere ich nun ein 1.1GB grosses SQL Dump dauert das mal eben 1,5 Stunden. Auf unserem alten System ( 2Ghz Celeron mit 2GB Ram ) dauert es nur 10min...

Ich hatte zuerst die SCSI Treiber im Verdacht - aber hdparm liefert ca. 150Mb/sec zurück - auch wenn es Fehler schmeisst die wohl daher rühren, das es SCSI und keine IDE Hardware ist ...

Hat jemand ne Idee wie ich die Fehlerursache am besten einkreisen kann? Bin im Moment etwas ratlos...
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
 

Re: Server unerklärlich langsam

Post by captaincrunch »

Glückwunsch zuerst einmal zu diesen Kisten. Ich hab hier auch ein paar davon rumstehen, und bin extrem zufrieden damit. Daher schließe ich die Kisten als solche erst einmal aus.

Wie wär's denn mal mit Angaben zum näheren Setup? Wie mein Boss sagen würde: "Malen sie mir doch mal ein Bild dazu". Am besten inkl. Verkabelung etc.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City
 

Re: Server unerklärlich langsam

Post by outofbound »

Check mal die Postgres- Systemtabellen, und guck was da mitm Caching und so passiert. Hast du die Indices schon angelegt?
Importierst du be3ides mal identisch?

Ansonsten schliess ich mich CC an. ;)

Gruss,

Out
dellerium
Posts: 5
Joined: 2005-05-11 13:55
 

Re: Server unerklärlich langsam

Post by dellerium »

Hallo ihr beiden! Danke das ihr antwortet :)

Ich kann auch nicht so recht dran glauben, das es an den Rechner liegt - Performance werden sie schon reichlich haben.
Die Verkabelung ist wie in der HP Doku angegeben durchgeführt worden - allerdings nicht von mir, sondern vom Systemhaus das die Server geliefert hat. Scheint soweit auch i.O. zu sein.
Beide Server hängen über ein SCSI Kabel am Storrage. Zwischen den Server hängt ausserdem ein Crossover Kabel für die Heartbeat Signale. Ansonsten ist die Verkabelung normal.
Was mich immer ein bissel wundert ist, das das Storrage oft auch dann Aktivität auf dem Storrage hat, wenn die Platten des Storrage auf beiden Server nicht gemountet sind... Ich hab aber noch keine Erfahrung mit so einem System, daher kann ich nicht beurteilen, ob das normal ist oder nicht ( Interne Prozesse ) ... wenn das System noch irgendetwas nebenbei macht, dann wäre es ja kein Wunder das die Leistung einbricht...

Da die Datenbank und die Applikation nachher hochverfügbar sein sollen habe ich sie auf das externe Array installiert. Der jeweils aktive Knoten des Clusters mounter dann die Datenbank bzw. die Applikation und kann so auf die Daten zugreifen. Die Performance sollte eigentlich recht hoch sein.

Die Postgres Datenbank habe ich selber kompiliert ( 8.0.3 ) - Suse bietet für dne SLES9 nur eine 7er Version an, wir brauchen aber laut unserer Entwickler eine 8er Version.
Ausser prefix und den 3 Script Sprachen hab ich nichts an configure übergeben. Da sollte also nichts falsch gelaufen sein.

Zur Datenbank selber:
Ich hab mit Postgres bisher nur mäßige Erfahrungen - seid also nen bissle nachsichtig mit mir ;) Ich kann zwar normal damit umgehen, aber tiefere Erfahrungen in der Adminstration habe ich bisher noch nicht.
Ich hab die postgresql.conf soweit im Originalzustand gelassen und die pg_hb.conf nur um die notwendigen Einträge erweitert. Anschliessend das DBMS hochgefahren und per createdb eine Test Datenbank angelegt.
Jetzt hab ich per psql -d Test -f dump.sql ein Dump unserer Produktivdaten eingespielt um die Geschwindigkeit zu testen.

Und da fing das Problem schon an. Der Import dauerte nicht 10min wie erwartet sondern über eine Stunde.
Ich hab mir dann mal diverse Systemtools geschnappt um nachzuschauen was da los ist - top zeigt mir bspw. an, das ca. 50% user und 50% io wait vorliegen...
Nun stellt sich mir die Frage, wo es da klemmt...
Ein Test mit hdparm -tT /dev/cciss/c0d0 ergibt, das die Internen Platten Daten mit 130mb/sec liefern...

Wie gesagt, ich bin mit Postgres noch nicht so auf du und du, habt ihr nen gutes Howto bezüglich Systemtabellen, Caching etc?

Gruß Andre
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
 

Re: Server unerklärlich langsam

Post by dodolin »

Alles zusammengenommen tippe ich darauf, dass es am Storage liegt. Sind da eventuell noch komplett andere Rechner angeschlossen oder greifen noch andere Applikationen drauf zu? Oder gehoert der Storage wirklich ausschliesslich diesem Cluster?
dellerium
Posts: 5
Joined: 2005-05-11 13:55
 

Re: Server unerklärlich langsam

Post by dellerium »

Das Storrage gehört ausschliesslich zum Cluster. Nachdem ich Probleme mit der Performance festgestellt habe, habe ich den zweiten Knoten runtergefahren und mit einem Knoten alleine experimentiert.

Die Performance blieb aber im Keller. Was mich auch wundert, ist, das selbst dann die Festplatten über ihre LED's des öfteren ( und teilweise auch über längere Zeit ) Aktivität zeigen, wenn beide Cluster Knoten aus sind. ( Und natürlich auch, wenn sie aktiv sind - auch wenn keine Logischen Platten des externen Storage gemountet sind ).
Ich hab gestern nochmal etwas rumexperimentiert. Bisher hatte ich das zu importierende Dump von den lokalen Platten eingespielt. Mit dem Ergebnis, das ich ca. 80-90% Wait io hatte. Gestern habe ich mal von unserem Fileserver per nfs ein Verzeichnis gemountet und es darüber eingespielt. Da hatte ich "nur" noch 40-50% wait io ... könnte also wirklich am Storrage liegen. Abziehen kann ich es leider nicht - sonst weigert sich der Cluster hochzufahren.

Hört sich ganz nach einem Fall für den HP Support an.
aquajo
Posts: 145
Joined: 2003-02-25 21:07
 

Re: Server unerklärlich langsam

Post by aquajo »

Dellerium wrote:Hat jemand ne Idee wie ich die Fehlerursache am besten einkreisen kann? Bin im Moment etwas ratlos...
Wie wäre es mit nen besseren Benchmark als hdparm zu nehmen, etwa bonnie++ um zu schauen was das Speicher-Subsystem so leistet.
Last edited by aquajo on 2005-09-01 08:43, edited 1 time in total.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
 

Re: Server unerklärlich langsam

Post by captaincrunch »

Wie hast du denn die logical disks auf dem Array angelegt?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
mausgreck
Posts: 84
Joined: 2005-03-19 17:22
 

Re: Server unerklärlich langsam

Post by mausgreck »

Dellerium wrote:Ich hab die postgresql.conf soweit im Originalzustand gelassen
Ich schätze eher, dass das das Problem ist... Hört sich nach fsync()-Problemen oder sowas an. Es gibt ein Postgres Performance-Tuning Dokument, das solltest du dir mal reinziehen. Wenn das nichts hilft, wende dich an pgsql-general (http://archives.postgresql.org/pgsql-general/), die sind immer sehr zuvorkommend und hilfreich.
dellerium
Posts: 5
Joined: 2005-05-11 13:55
 

Re: Server unerklärlich langsam

Post by dellerium »

Intern hängen 2 36GB Platten die als Raid1 definiert sind.

Im Storrage hängen 4 Platten. Im Moment sind 3 Davon als Raid 5 mit knapp 140GB definiert. ( 72GB Platten ) Die Vierte ist im Moment als Spare definiert.

Wie ich mittlerweile gelesen habe wäre eine Mischung aus Raid 1 und Raid 0 evtl. besser weil performanter - kann ich auch noch Problemlos ändern. Wie sind eure Erfahrungen damit?

Auf dem Array sind 3 logische Platten definiert, die die Datenbank Binaries, Datenbank Daten sowie die Applikations Binaries anthalten sollen.
Ã?ber den logischen Platten liegt aber noch ein LVM. Darin sind dann die logischen LVM Volumes definiert ( Wird laut HP Doku so für den Service Guard Cluster vorgegeben... )

Bonnie:

ClusterNode2 postgres $ bonnie -s 8000
Bonnie 1.4: File './Bonnie.19297', size: 8388608000, volumes: 1
Writing with putc()... done: 37274 kB/s 70.8 %CPU
Rewriting... done: 16545 kB/s 5.0 %CPU
Writing intelligently... done: 42039 kB/s 14.0 %CPU
Reading with getc()... done: 32229 kB/s 49.5 %CPU
Reading intelligently... done: 117968 kB/s 14.1 %CPU
Seeker 1...Seeker 2...Seeker 3...start 'em...done...done...done...
---Sequential Output (nosync)--- ---Sequential Input-- --Rnd Seek-
-Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --04k (03)-
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
Cluste 1*8000 37274 70.8 42039 14.0 16545 5.0 32229 49.5117968 14.1 1081.0 2.1

Sieht eigentlich nicht so schlecht aus, was Bonnie mir da sagt, oder? ;)

Ich bin grad am Postgres Tuning Howto dran.. mal sehen ob das etwas bringt... dank euch erstmal.. falls ihr noch nen Tipp habt, her damit ;)
aquajo
Posts: 145
Joined: 2003-02-25 21:07
 

Re: Server unerklärlich langsam

Post by aquajo »

Nen Raid10 ist eigentlich immer schneller als ein Raid5, da das Parity-Berechnen wegfällt, und das dabei manchmal notwenige lesen von Blocks.
Der Nachteil ist halt das 50% der Kapazität 'verloren' gehen.

Und die Bonnie-Werte scheinen mir 'normal' auszusehen, d.h. mit einem Raid10 würde vermutlich das schreiben noch etwas fixer werden, aber nicht so viel, das es die beobachtete Diskrepanz beim Dump einlesen lösen würde.

Die größten Verbesserungen erreicht man sicher durch anpassen des postgre-DB.
dellerium
Posts: 5
Joined: 2005-05-11 13:55
 

Re: Server unerklärlich langsam

Post by dellerium »

Die 50 % wären egal - die verliegen wir im Moment auch, da wir eine als Spare vorhalten und einer der 3 Raid Platten auch nicht genutzt werden kann...
Ich hab anfangs überlegt, was ich machen soll, aber das es vorkommen kann, das wir bei Ausfall einer Platte nicht sofort reagieren können hab ich mich für ide Raid 5 Lösung entschieden - einfach damit dann doppelte Sicherheit gegeben ist.

Ich hab mich mal in das Howto reingelesen und fahre gerade einen Test mit der DB - mal sehen ob es was gebracht hat ...