Server zu schwach, oder Code zu schlecht?

MySQL, PostgreSQL, SQLite
Anonymous

Server zu schwach, oder Code zu schlecht?

Post by Anonymous » 2006-06-13 14:10

Hallo Leute,

bin noch neu hier, und hab eine etwas grössere Frage:

Wir betreiben eine Internet community, die 4000Benutzer hat.
Täglich haben wir zwischen 3000 und 5000 Besucher.
Die Seite hat einen Messenger, sowie sehr viele Dynamische Inhalte.
Grundsystem ist Xoops, das vielleicht einige hier kennen.

Nun haben wir das Problem, dass wenn viele User gleichzeitig Bilder in der Galerie anschauen, der Server in die Knie geht, sowie bei sehr vielen Besuchernt der Messenger viel Leistung braucht.
Wir haben in hochZeiten ca. 50.000 DB Anfragen in der Minute.

Ist jetzt der Server schlecht, wenn er nur 50000 verkraftet, oder liegt es an den vielen Anfragen, also muss der Code Optimiert werden.

Als Server steht momentan folgender zur Verfügung:

AMD Athlon 64 3400+
2 Gb Ram
160 Gb HDD


MfG

Andreas

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Server zu schwach, oder Code zu schlecht?

Post by Joe User » 2006-06-13 15:11

Code optimieren -> Queries reduzieren/optimieren
MySQLd optimieren -> sticky Topics im DB-Forum
Webserver optimieren -> lighttpd+php-fcgi+apc
Datenbank auslagern -> zweiter Server
etc...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: Server zu schwach, oder Code zu schlecht?

Post by braindead » 2006-06-13 15:16

nur ein kleines gegenbeispiel aus der Praxis, ich betreue auch einen "Communityserver" und der hat bei 200 Leuten gleichzeitig online nicht mal 100 sqls pro Sekunde. Sprich pro seitenaufbau haben wir weniger als 15 SQL Statments, mehr sollten es auch bei euch nicht sein.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-15 10:54

Nao007 wrote: Nun haben wir das Problem, dass wenn viele User gleichzeitig Bilder in der Galerie anschauen, der Server in die Knie geht, sowie bei sehr vielen Besuchernt der Messenger viel Leistung braucht.
Bevor hier schon wieder Tips gegeben werden, welche Alternativen man nutzen soll, mußt Du als allererstes einmal feststellen, wo überhaupt der Flaschenhals ist.
Es bringt nichts, die CPU aufzurüsten, wenn die sich bisher langweilt. Es bringt nichts, RAM aufzurüsten, wenn der bisher nicht voll genutzt wird.

Deshalb:
1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?
2. Was spuckt "top" oder "vmstat" bei Last und Langeweile aus?
3. Wieviel Traffic habt ihr pro Tag auf dem Netzwerk?
4. Wie groß ist das Webserver-Verzeichnis mit den Bildern? Wie ist das formatiert und aufgebaut?

spector
Posts: 15
Joined: 2005-08-19 12:08
Location: Oberschwaben

Re: Server zu schwach, oder Code zu schlecht?

Post by spector » 2006-06-16 14:15

knebb wrote:1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?
total used free shared buffers cached
Mem: 2012 1924 87 0 93 1212
-/+ buffers/cache: 618 1393
Swap: 2047 5 2041
unter Last, da ich heute morgen noch net da war...
knebb wrote:2. Was spuckt "top" oder "vmstat" bei Last und Langeweile aus?
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
3 0 5796 101768 95760 1241992 0 0 4 2 11 2 21 4 75 0
knebb wrote:3. Wieviel Traffic habt ihr pro Tag auf dem Netzwerk?
Traffic sinds Pro Tag ca.
Avg Max
Hits per Hour 30693 117065
Hits per Day 736643 1357236
Files per Day 463094 962767
Pages per Day 22737 53495
Visits per Day 2954 3801
KBytes per Day 5023453 10566592
knebb wrote:4. Wie groß ist das Webserver-Verzeichnis mit den Bildern? Wie ist das formatiert und aufgebaut?
32GB is das Verzeichnis groß
Formatierung der HDD ist ext3 und leider nur auf 1 HDD alles, also DB, Files und Logs sowie System auf einer Festplattte.

die Daten unter 0-Last reich ich auch mal bei gelegenheit nach.
ich hoffe, ich hab nix vergessen.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-16 15:09

Spector wrote:
knebb wrote:1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?

Code: Select all

             total       used       free     shared    buffers     cached
Mem:          2012       1924         87          0         93       1212
D.h. Dein Server hat 2GB RAM, davon werden (1924-93-1212) für Programme benutzt, 93 für Dateisystempuffer (Indexfiles etc.) und 1212 sind ein reiner Datencache. Sieht eigentlich recht gut aus. Ein gutes Zeichen ist auch, daß nur 5M Swap genutzt sind und 87M frei.
Erster Eindruck: RAM ist ok- auch wenn mehr sicherlich genutzt werden würde!

Code: Select all

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 3  0   5796 101768  95760 1241992    0    0     4     2   11     2 21  4 75  0
Wenn das die erste Zeile von vmstat war, sieht das auch recht gut aus. Welcher Kernel und Distri ist das (uname -r; cat /etc/issue)? Und das war unter Last, ja?
knebb wrote:4. Wie groß ist das Webserver-Verzeichnis mit den Bildern? Wie ist das formatiert und aufgebaut?
32GB is das Verzeichnis groß
Formatierung der HDD ist ext3 und leider nur auf 1 HDD alles, also DB, Files und Logs sowie System auf einer Festplattte.
Aaaargl!
ext3? Bei 32GB mit kleinen Web-Bildern ist das schon fast tödlich! Sind die Bilderverzeichnisse wenigstens in Baumstruktur aufgebaut oder liegt alles in einem Verzeichnis? Die Bildpfade liegen in der Datenbank, die Bilder lokal, richtig?
Wenn das System stabil läuft und kaum Abstürze zu verzeichnen sind, solltest Du evtl. auf ext2 wechseln, mindestens aber auf reiserfs.

Wenn beim Dateisystem und dessen Struktur noch Verbesserungsbedarf besteht, sehe ich bei den beiden anderene Parametern keinen Engpaß. Wenn das allerdings ein 2.4er Kernel ist, habe ich eine Vermutung. Laß mal "vmstat 1 300" über fünf Minuten zu Hochbetriebszeiten laufen und beachte insbesondere die Werte der cpu: us,sy,id,wa.
Ist wa immer "0", hast Du einen 2.4er Kernel. Und dann liegt's an der Geschwindigkeit des Plattensubsystems.

Überprüfe auch mal Deine Werte in der my.cnf und die Systemvariablen. 600MB used erscheint mir für MySQL UND Apache recht wenig. Wieviele Apache-Prozesse laufen bei Last? Connections zur DB überprüft, ggf. hochgesetzt? min_spare_servers etc. für Apache gesetzt?

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: Server zu schwach, oder Code zu schlecht?

Post by braindead » 2006-06-16 15:31

knebb wrote:Aaaargl!
ext3? Bei 32GB mit kleinen Web-Bildern ist das schon fast tödlich! Sind die Bilderverzeichnisse wenigstens in Baumstruktur aufgebaut oder liegt alles in einem Verzeichnis? Die Bildpfade liegen in der Datenbank, die Bilder lokal, richtig?
Wenn das System stabil läuft und kaum Abstürze zu verzeichnen sind, solltest Du evtl. auf ext2 wechseln, mindestens aber auf reiserfs.
ich halte das für relativ problematisch ihm zum empfehlen auf EXT2 oder ReiserFS zu gehen. Klar ist das eine Glaubensfrage nach dem besten FS, ich würde allerdings bevor ich das FS umstelle das tun was JOE empfohlen hat und versuchen wie weit ich mit dem Lighttpd komme. Ansonsten gebe ich dir mit dem Umstieg auf einen uu aktuelleren Kernel recht wenn er im Moment noch auf dem 2.4er ist.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-16 16:27

braindead wrote:ich halte das für relativ problematisch ihm zum empfehlen auf EXT2 oder ReiserFS zu gehen. Klar ist das eine Glaubensfrage nach dem besten FS,
Das ist keine Glaubensfrage. Es ist definitiv FAKT, daß reiserfs bei vielen kleinen Dateien (und das sind es wohl bei 32GB Bilderchens) massive Geschwindigkeitsvorteile hat. Will/ kann er nicht auf reiserfs gehen (z.B. RedHat Distri), so ist es auch FAKT, daß ext2 aufgrund des fehlenden Journalings ebenfalls deutlich schneller als ext3 ist. Ja, mit dem Nachteil der FS-Checks beim Wiederanfahren.
versuchen wie weit ich mit dem Lighttpd komme.
Das wiederum ist IMHO eine Glaubensfrage. Viele bevorzugen den lighthttpd hier. Aber auch der ist kein Allheilmittel, das pauschal für alles paßt. Und deshalb BEVOR man Empfehlungen gibt etc., sollte man eine konkrete Analyse vornehmen.
Ansonsten gebe ich dir mit dem Umstieg auf einen uu aktuelleren Kernel recht wenn er im Moment noch auf dem 2.4er ist.
Alleine, um die Analysen zu verbessern: Stichwort IO-Waits.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Server zu schwach, oder Code zu schlecht?

Post by Joe User » 2006-06-16 21:13

@knebb

Ähm, ich in meinem vorherigem Post die Kombination lighttpd+php-fcgi+apc absichtlich erst an 3. Stelle aufgeführt. Desweiteren sind XFS oder JFS dem ReiserFS vorzuziehen, da Beide nicht nur bei Files >4kb wesentlich effektiver und stabiler arbeiten als ReiserFS oder gar EXT[23], sondern im Notfall auch noch erheblich einfacher zu recovern sind. Ansonsten stimme ich Dir zu...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-16 21:29

Joe User wrote: Ähm, ich in meinem vorherigem Post die Kombination lighttpd+php-fcgi+apc absichtlich erst an 3. Stelle aufgeführt.
Ach so, das sollte eine bewußte Reihenfolge sein :wink:
Desweiteren sind XFS oder JFS dem ReiserFS vorzuziehen, da Beide nicht nur bei Files >4kb wesentlich effektiver und stabiler arbeiten als ReiserFS oder gar EXT[23],
Naja, stabiler als ext[23] sei mal dahingestellt. Aber jetzt geht es doch in Richtung Glaubenskrieg :wink:
Ich nutze hier durchgehend reiserfs, weil es auch die Möglichkeit bietet, Dateisysteme zu verKLEINERN. Das kann keines der anderen (außer ext*).

JFS scheint mir noch zu neu (für Linux) zu sein, von XFS habe ich auch nur gutes gehört. Wir auch immer: Es ist alles besser als ext3.
Ansonsten stimme ich Dir zu...

Geht doch! :twisted:

User avatar
isotopp
Posts: 471
Joined: 2003-08-21 10:21
Location: Berlin

Re: Server zu schwach, oder Code zu schlecht?

Post by isotopp » 2006-06-16 21:39

Joe User wrote:Desweiteren sind XFS oder JFS dem ReiserFS vorzuziehen, da Beide nicht nur bei Files >4kb wesentlich effektiver und stabiler arbeiten als ReiserFS oder gar EXT[23], sondern im Notfall auch noch erheblich einfacher zu recovern sind. Ansonsten stimme ich Dir zu...
MySQL Consulting und Performance Lab empfehlen ReiserFS als Dateisystem für Datenbankdaten.

duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA

Re: Server zu schwach, oder Code zu schlecht?

Post by duergner » 2006-06-16 21:43

knebb wrote:Naja, stabiler als ext[23] sei mal dahingestellt. Aber jetzt geht es doch in Richtung Glaubenskrieg :wink:
Ich nutze hier durchgehend reiserfs, weil es auch die Möglichkeit bietet, Dateisysteme zu verKLEINERN. Das kann keines der anderen (außer ext*).
Ich koennte mich nicht daran erinnern, das auf einem Server schon jemals gebrauchst zu haben.

knebb wrote:JFS scheint mir noch zu neu (für Linux) zu sein, von XFS habe ich auch nur gutes gehört. Wir auch immer: Es ist alles besser als ext3.
Ich wuerde ext3 nicht pauschal schlecht machen. Es ist IMHO eines der stabilsten Dateisysteme die es gibt und es kommt immer auf den Einsatzzweck drauf an, welches man denn am besten verwenden moechte.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-16 21:47

duergner wrote:
knebb wrote: Ich nutze hier durchgehend reiserfs, weil es auch die Möglichkeit bietet, Dateisysteme zu verKLEINERN. Das kann keines der anderen (außer ext*).
Ich koennte mich nicht daran erinnern, das auf einem Server schon jemals gebrauchst zu haben.
Ich schon, doch. Ist allerdings wirklich ein Ausnahmefall.
Ich wuerde ext3 nicht pauschal schlecht machen. Es ist IMHO eines der stabilsten Dateisysteme die es gibt und es kommt immer auf den Einsatzzweck drauf an, welches man denn am besten verwenden moechte.
FULL ACK. Ich müßte ergänzen "in diesem Fall".

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Server zu schwach, oder Code zu schlecht?

Post by Joe User » 2006-06-16 22:01

isotopp wrote:
Joe User wrote:Desweiteren sind XFS oder JFS dem ReiserFS vorzuziehen, da Beide nicht nur bei Files >4kb wesentlich effektiver und stabiler arbeiten als ReiserFS oder gar EXT[23], sondern im Notfall auch noch erheblich einfacher zu recovern sind. Ansonsten stimme ich Dir zu...
MySQL Consulting und Performance Lab empfehlen ReiserFS als Dateisystem für Datenbankdaten.
OK, ich hätte meine Aussage auf den vorliegenden Fall (!=Datenbanken) einschränken sollen.
Retourkutsche: Definiere Datenbank ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Server zu schwach, oder Code zu schlecht?

Post by flo » 2006-06-16 22:55

Da muß ich aber auch mal was sagen: ReiserFS habe ich mir seit ca. zwei Jahren gründlich abgewöhnt - Datenverlust auf mehreren Rechnern, teilweise wieder herzustellen, teilweise aber auch komplett ... Und das auf Systemen mit hoher Uptime (Intranetserver up > 1 Jahr) und niedriger Uptime, weil Rechner (Router) vom Kunden "ausgeschalten" wurde.

Seitdem verfolge ich die Diskussionen um ReiserFS nur noch aus Interesse, im Produktivbetrieb hat das bei mir ausgedient.

flo.

spector
Posts: 15
Joined: 2005-08-19 12:08
Location: Oberschwaben

Re: Server zu schwach, oder Code zu schlecht?

Post by spector » 2006-06-17 07:41

knebb wrote:1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?
total used free shared buffers cached
Mem: 2012 1993 18 0 87 1485
-/+ buffers/cache: 421 1591
Swap: 2047 7 2039
Das war unter 0-Last
knebb wrote:2. Was spuckt "top" oder "vmstat" bei Last und Langeweile aus?
vmstat

Code: Select all

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 2  0   7648  19416  89240 1520684    0    0     7     4   11     1 21  4 75  0
Die Diskussion um sFilesystem lass ich mal zu im Raum stehen, ich werd da glaub nix wechselnb aus besagten Sicherheitsmechanismen, da ich hier auch schon böse Erfahrungen gemacht hab.

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-17 08:16

Spector wrote: Die Diskussion um sFilesystem lass ich mal zu im Raum stehen, ich werd da glaub nix wechselnb aus besagten Sicherheitsmechanismen, da ich hier auch schon böse Erfahrungen gemacht hab.
Ich wußte es: sobald ich auch nur ansatzweise einen kleinen Vergleich zwischen Dateisystemen erwähne, gibt es eine große Diskussion darum. Das ist in jedem Linux-Forum so. Glaubensfrage ;)

Zu den Daten: Sehen wie gesagt normal aus. Ganz wichtig ist jedoch die Frage, welcher Kernel und welche Distri das jetzt ist.

spector
Posts: 15
Joined: 2005-08-19 12:08
Location: Oberschwaben

Re: Server zu schwach, oder Code zu schlecht?

Post by spector » 2006-06-17 08:29

knebb wrote: Aaaargl!
ext3? Bei 32GB mit kleinen Web-Bildern ist das schon fast tödlich! Sind die Bilderverzeichnisse wenigstens in Baumstruktur aufgebaut oder liegt alles in einem Verzeichnis? Die Bildpfade liegen in der Datenbank, die Bilder lokal, richtig?
richtig
knebb wrote: Wenn beim Dateisystem und dessen Struktur noch Verbesserungsbedarf besteht, sehe ich bei den beiden anderene Parametern keinen Engpaß. Wenn das allerdings ein 2.4er Kernel ist, habe ich eine Vermutung. Laß mal "vmstat 1 300" über fünf Minuten zu Hochbetriebszeiten laufen und beachte insbesondere die Werte der cpu: us,sy,id,wa.
Ist wa immer "0", hast Du einen 2.4er Kernel. Und dann liegt's an der Geschwindigkeit des Plattensubsystems.
muss ich noch machen.
Es ist ein 2.6er Kernel
Debian Sarge
knebb wrote: Überprüfe auch mal Deine Werte in der my.cnf und die Systemvariablen. 600MB used erscheint mir für MySQL UND Apache recht wenig. Wieviele Apache-Prozesse laufen bei Last? Connections zur DB überprüft, ggf. hochgesetzt? min_spare_servers etc. für Apache gesetzt?
da hab ich zwar schon Wochenlang dran rumoptimiert, aber schau ich nochmal nach.min_spare_servers ist auf 50 gesetzt.
und mysql hat eigentlich 1 GB zugewiesen.
Connections von MySQL überprüfen... wie?

spector
Posts: 15
Joined: 2005-08-19 12:08
Location: Oberschwaben

Re: Server zu schwach, oder Code zu schlecht?

Post by spector » 2006-06-17 13:29

knebb wrote: Laß mal "vmstat 1 300" über fünf Minuten zu Hochbetriebszeiten laufen und beachte insbesondere die Werte der cpu: us,sy,id,wa.
Ist wa immer "0", hast Du einen 2.4er Kernel. Und dann liegt's an der Geschwindigkeit des Plattensubsystems.
also wie gesagt, ich hab nen 2.6er Kernel, aber wa ist fast immer 0. weimal kam 1 und einmal kam 2 sonst nix... heißt das jetzt trotzdem, das Plattensystem ist zu langsam, was ich eben leider befürchte.
mein Prob ist aber, wenn ich mittels PHP ein Verzeichnis auslesen lasse und alle darin enthaltenen Bilder ausgebe, schaffe ich ca 30 MB/sek. aber wenn ich eine Xoops Seite mit 25 Bildern aufrufe, schaff ich gerade mal noch 300kB/sek...
ich vermute da die DB dahinter, nur weiß ich absolut net, wie ich dahinterkomme, was da so ausbremst...
den Quellcode optimieren...JA, oder?!

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: Server zu schwach, oder Code zu schlecht?

Post by knebb » 2006-06-17 13:49

Spector wrote:
knebb wrote:.. heißt das jetzt trotzdem, das Plattensystem ist zu langsam, was ich eben leider befürchte.
Nein, ist nicht der Fall, wenn die IO-Waits kontinuierlich auf 0 8oder gerade mal auf 1-2) sind.
ich vermute da die DB dahinter, nur weiß ich absolut net, wie ich dahinterkomme, was da so ausbremst...
Dann ist es wohl tatsächlich ein Anwendungsproblem...

spector
Posts: 15
Joined: 2005-08-19 12:08
Location: Oberschwaben

Re: Server zu schwach, oder Code zu schlecht?

Post by spector » 2006-06-17 18:35

knebb wrote: Dann ist es wohl tatsächlich ein Anwendungsproblem...
Es WAR ein Anwendungsproblem!
wir hatten ca 160 Querys pro Aufruf der Seite :-(
in ca 5 minuten war festgestellt (nach dem wir wussten wonach suchen) wo dieser gorbe Programmierfehler lag.
Danach hatten wir noch 50% Serverlast ünd 50% weniger DB Abfragen.
ich denke, dass auch bei der Darstellung eines einzelnen Bildes ähnliche Fehler vorliegen, jedoch das wird jetzt demnächst optimiert.
Ich danke euch vielmals für eure schnellen Antworten, die mich davon überzeugt haben, dass meine Arbeit als Serveradmin richtig gemacht wurde und ich somit anderen Leuten (die für den Code zuständig sind) Feuer machen konnte!

Und nochmals für alle, die zu faul sind alles zu lesen :-)
Danke für eure Mühen!!!

**solved**