Server zu schwach, oder Code zu schlecht?
Server zu schwach, oder Code zu schlecht?
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
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
Re: Server zu schwach, oder Code zu schlecht?
Code optimieren -> Queries reduzieren/optimieren
MySQLd optimieren -> sticky Topics im DB-Forum
Webserver optimieren -> lighttpd+php-fcgi+apc
Datenbank auslagern -> zweiter Server
etc...
MySQLd optimieren -> sticky Topics im DB-Forum
Webserver optimieren -> lighttpd+php-fcgi+apc
Datenbank auslagern -> zweiter Server
etc...
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings 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.
Wings for Life ● Wings 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.
Re: Server zu schwach, oder Code zu schlecht?
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.
Re: Server zu schwach, oder Code zu schlecht?
Bevor hier schon wieder Tips gegeben werden, welche Alternativen man nutzen soll, mußt Du als allererstes einmal feststellen, wo überhaupt der Flaschenhals ist.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.
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?
Re: Server zu schwach, oder Code zu schlecht?
total used free shared buffers cachedknebb wrote:1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?
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...
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----knebb wrote:2. Was spuckt "top" oder "vmstat" bei Last und Langeweile aus?
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
Traffic sinds Pro Tag ca.knebb wrote:3. Wieviel Traffic habt ihr pro Tag auf dem Netzwerk?
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
32GB is das Verzeichnis großknebb wrote:4. Wie groß ist das Webserver-Verzeichnis mit den Bildern? Wie ist das formatiert und aufgebaut?
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.
Re: Server zu schwach, oder Code zu schlecht?
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.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
Erster Eindruck: RAM ist ok- auch wenn mehr sicherlich genutzt werden würde!
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?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
Aaaargl!32GB is das Verzeichnis großknebb wrote:4. Wie groß ist das Webserver-Verzeichnis mit den Bildern? Wie ist das formatiert und aufgebaut?
Formatierung der HDD ist ext3 und leider nur auf 1 HDD alles, also DB, Files und Logs sowie System auf einer Festplattte.
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?
Re: Server zu schwach, oder Code zu schlecht?
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 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.
Re: Server zu schwach, oder Code zu schlecht?
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.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 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.versuchen wie weit ich mit dem Lighttpd komme.
Alleine, um die Analysen zu verbessern: Stichwort IO-Waits.Ansonsten gebe ich dir mit dem Umstieg auf einen uu aktuelleren Kernel recht wenn er im Moment noch auf dem 2.4er ist.
Re: Server zu schwach, oder Code zu schlecht?
@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...
Ä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/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings 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.
Wings for Life ● Wings 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.
Re: Server zu schwach, oder Code zu schlecht?
Ach so, das sollte eine bewußte Reihenfolge seinJoe User wrote: Ähm, ich in meinem vorherigem Post die Kombination lighttpd+php-fcgi+apc absichtlich erst an 3. Stelle aufgeführt.
Naja, stabiler als ext[23] sei mal dahingestellt. Aber jetzt geht es doch in Richtung GlaubenskriegDesweiteren 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],
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:
Re: Server zu schwach, oder Code zu schlecht?
MySQL Consulting und Performance Lab empfehlen ReiserFS als Dateisystem für Datenbankdaten.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...
Re: Server zu schwach, oder Code zu schlecht?
Ich koennte mich nicht daran erinnern, das auf einem Server schon jemals gebrauchst zu haben.knebb wrote:Naja, stabiler als ext[23] sei mal dahingestellt. Aber jetzt geht es doch in Richtung Glaubenskrieg
Ich nutze hier durchgehend reiserfs, weil es auch die Möglichkeit bietet, Dateisysteme zu verKLEINERN. Das kann keines der anderen (außer ext*).
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 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.
Re: Server zu schwach, oder Code zu schlecht?
Ich schon, doch. Ist allerdings wirklich ein Ausnahmefall.duergner wrote:Ich koennte mich nicht daran erinnern, das auf einem Server schon jemals gebrauchst zu haben.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*).
FULL ACK. Ich müßte ergänzen "in diesem Fall".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.
Re: Server zu schwach, oder Code zu schlecht?
OK, ich hätte meine Aussage auf den vorliegenden Fall (!=Datenbanken) einschränken sollen.isotopp wrote:MySQL Consulting und Performance Lab empfehlen ReiserFS als Dateisystem für Datenbankdaten.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...
Retourkutsche: Definiere Datenbank ;)
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings 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.
Wings for Life ● Wings 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.
Re: Server zu schwach, oder Code zu schlecht?
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.
Seitdem verfolge ich die Diskussionen um ReiserFS nur noch aus Interesse, im Produktivbetrieb hat das bei mir ausgedient.
flo.
Re: Server zu schwach, oder Code zu schlecht?
total used free shared buffers cachedknebb wrote:1. Welche Ausgabe spuckt "free -m" aus. Einmal unter Last, einmal bei "Langeweile"?
Mem: 2012 1993 18 0 87 1485
-/+ buffers/cache: 421 1591
Swap: 2047 7 2039
Das war unter 0-Last
vmstatknebb wrote:2. Was spuckt "top" oder "vmstat" bei Last und Langeweile aus?
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
Re: Server zu schwach, oder Code zu schlecht?
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 ;)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.
Zu den Daten: Sehen wie gesagt normal aus. Ganz wichtig ist jedoch die Frage, welcher Kernel und welche Distri das jetzt ist.
Re: Server zu schwach, oder Code zu schlecht?
richtigknebb 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?
muss ich noch machen.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.
Es ist ein 2.6er Kernel
Debian Sarge
da hab ich zwar schon Wochenlang dran rumoptimiert, aber schau ich nochmal nach.min_spare_servers ist auf 50 gesetzt.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?
und mysql hat eigentlich 1 GB zugewiesen.
Connections von MySQL überprüfen... wie?
Re: Server zu schwach, oder Code zu schlecht?
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.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.
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?!
Re: Server zu schwach, oder Code zu schlecht?
Dann ist es wohl tatsächlich ein Anwendungsproblem...Spector wrote:Nein, ist nicht der Fall, wenn die IO-Waits kontinuierlich auf 0 8oder gerade mal auf 1-2) sind.knebb wrote:.. heißt das jetzt trotzdem, das Plattensystem ist zu langsam, was ich eben leider befürchte.
ich vermute da die DB dahinter, nur weiß ich absolut net, wie ich dahinterkomme, was da so ausbremst...
Re: Server zu schwach, oder Code zu schlecht?
Es WAR ein Anwendungsproblem!knebb wrote: Dann ist es wohl tatsächlich 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**