php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.07.2006, 00:58  
Neuer Benutzer
 
Registriert seit: 19.07.2006
Beiträge: 2
phoetron
Standard performance probleme in der community

hallo,

ich hoffe, dass ich in diesem Forum richtig bin, denn eigentlich habe ich ein grundsätzliches Problem.
Ich werde aber erst mal ein wenig von meiner Seite erzählen.
Ich habe mit meinem Kumpel eine Community programmiert, www.wiealt.de
Es ist eine relativ normale Community mit Buddyfunktion, Pm System, Votingsystem, Loginsystem mit Sessions, Forum, Nickpage, Gästebuch, usw..
Jetzt trifft mich ein Problem, womit ich mich nie beschäftigt habe:
Performance
Ich suche und suche und finde keine richtigen Lösungswege um mir zu helfen. Bereits bei 150 User online beginnt der Server zu laggen, mit 70% Beteiligung des Mysql Prozesses. Es muss wohl an der Zahl der Queries liegen bzw wie ich sie verwende. Kann mir denn jemand konkrete Hilfe leisten, um richtige Literatur, sei es in Form von Büchern oder Internetseiten zu finden? Oder hat jemand von euch eine ähnliche Seite gebaut und hat dieses Stadium bereits erfolgreich überschritten? Ich wäre über jeden Tipp dankbar, der mir aus diesem Problem helfen könnte.
Denn eines ist klar, der rootserver müsste über 500 User online schlucken können, hier die Hardware:

CPU > Opteron™ 148
RAM > 1 GB
HDD (sofern von Bedeutung) > RAID1 160GB
und dazu noch:

/dev/hda:
Timing cached reads: 2300 MB in 2.00 seconds = 1149.60 MB/sec
Timing buffered disk reads: 116 MB in 3.02 seconds = 38.42 MB/sec

ich denke der Wert wird in Ordnung sein.
phoetron ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.07.2006, 01:12  
Gast
 
Beiträge: n/a
Standard

Sind in der Datenbank die passenden Indizes gesetzt?
Wenn Du bspw eine Abfrage SELECT x,y,z FROM t where abc=45 hast, sollte auf abc ein Index liegen. Noch dringender, wenn Du JOIN benutzt.
a JOIN b ON a.v=b.v, wenn da nicht in Tabelle a und b jeweils ein Index für das Feld v gebildet wird, wird's schnell schlimm.
EXPLAIN kann Dir sagen, ob mysql für eine Abfrage passende Indizes vorliegen.
http://dev.mysql.com/doc/refman/5.1/en/explain.html
  Mit Zitat antworten
Alt 19.07.2006, 10:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Willkommen im Forum

Wieviele und beispielsweise welche Queries verschickst du denn pro üblichem Seitenaufruf?
Hast du SQL-Statements, die in Schleifen ausgeführt werden?
Sind die Indizes richtig gesetzt (siehe Bruchpilot)?
Verwendest du SELECT * FROM oder selektierst du nur die Spalten, die du benötgist?
Kannst du bestimmte Bereiche der Page (News, Navigation (falls sie aus der DB generiert wird), Online-Status, ..) cachen?
Zergling-new ist offline   Mit Zitat antworten
Alt 19.07.2006, 11:58  
Neuer Benutzer
 
Registriert seit: 19.07.2006
Beiträge: 2
phoetron
Standard

Wieviele und beispielsweise welche Queries verschickst du denn pro üblichem Seitenaufruf?
keine ahnung, ich bin dabei den code so umzuschreiben, dass er mir das ausgibt
ich denke zuviel bei 100 user online habe ich ~ 200 qps
Indizes sind meiner Meinung nach richtig gesetzt, wäre aber über nützliche Tipps wie von Bruchpilot sehr dankbar
ich verwende immer select spalte, spalte from
zu dem punkt cachen, muss ich passen, hab ich noch nichts damit gearbeitet.
phoetron ist offline   Mit Zitat antworten
Alt 19.07.2006, 12:50  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Da wir nicht deinen Code kennen können wir schlecht rausfinden wodran es liegen könnte. Hast du bei Abfragen wo du z.B. zu nem bestimmten Eintrag noch aus der Usertabelle z.b. den Namen etc. rausholst, JOIN verwendet oder hast du da 2 Querys draus gemacht? Könnte halt sein dass du relativ viele Querys hast die man in einen verpacken könnte.
Flor1an ist offline   Mit Zitat antworten
Alt 19.07.2006, 14:17  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

LIMITs konsequent genutzt?

Benutzt du vielleicht ORM und baust dir z.B. um die Mitglieder-Anzahl rauszufinden erstmal alle Mitglieder-Objekte incl. eigenem SELECT? ...etwas übertriebene Frage, aber könnte ja sein. *g

Basti
Basti ist offline   Mit Zitat antworten
Alt 19.07.2006, 18:53  
Gast
 
Beiträge: n/a
Standard Re: performance probleme in der community

Zitat:
Zitat von phoetron
Denn eines ist klar, der rootserver müsste über 500 User online schlucken können, hier die Hardware:
Das halte ich für ein Gerücht! Bei 500 gleichzeitigen Zugriffen kannste locker von 6 GB RAM ausgehen. Der MySQL Server müßte dann 'daneben' stehen und über eine 2. Netzwerkkarte angeschlossen werden. Dazu mußt Du Dir dann noch was einfallen lassen, damit Linux die jeweiligen Sessionfiles schnell genug findet. Es sind ja dann nicht nur die 500 aktuellen sondern noch ein Sack voll Karteileichen.

Dieses langweilige Forenscript (phpBB) loft auf einer ähnlichen Maschine (1GB RAM, wenn ich mich recht entsinne) und würde die Kiste schon bei 100 Usern erbarmungslos in den Keller ziehen. Bei 500 Usern könntest Du jedes beim User eintreffende Byte mit einem Tusch begrüßen.
  Mit Zitat antworten
Alt 23.07.2006, 21:33  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Schade... mein CommunityScript konnte noch nicht so getestet werden... ^^ .

Ich verwende redundanten Code.
Dh. die relevanten Daten sind zwischengespeichert.
Erfordert zwar mehr Wartung, reduziert aber die Querys extrem.
__________________
Web-Entwickler/-in bei der IAK GmbH
Chance ist offline   Mit Zitat antworten
Alt 23.07.2006, 21:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von Chance
Ich verwende redundanten Code.
Dh. die relevanten Daten sind zwischengespeichert.
Cachen oder inwiefern redundanten Code?
Zergling-new ist offline   Mit Zitat antworten
Alt 23.07.2006, 22:13  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Die Userdaten z.B. speichere ich in einer Session.
Bei jedem lesen der UserOnline Tabelle wird überprüft, ob ein Wert für den User vorliegt, der Anweist, die Userdaten neu aus den Tabellen einzulesen.

In der UserOnline Tabelle wird auch der Nickname gespeichert, UserID etc.
Und bei jedem Neuladen werden diese Daten geupdatet, die Daten sind dadurch automatisch aktuell, auch wenn sie nicht direkt ausgelesen werden.
__________________
Web-Entwickler/-in bei der IAK GmbH
Chance ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ImageMagick Performance Problem M3g4Star PHP Tipps 2006 1 30.11.2006 09:35
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Performance Probleme... madSoul PHP-Fortgeschrittene 5 08.09.2005 17:58
Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
[Erledigt] hilfe! probleme mit... PHP Tipps 2005 4 12.04.2005 22:55
Suchen Unterstützung bei Community Projekt Beitragsarchiv 2 12.04.2005 16:11
[Erledigt] CSV Größe macht Probleme mit php PHP Tipps 2005 5 15.03.2005 21:29
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
PHP Freak für kleine Community ? Beitragsarchiv 3 18.10.2004 14:13
PHP Bilder in DB / Probleme bei Änderung PHP-Fortgeschrittene 1 05.06.2004 11:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
performance user online php, performance probleme mit 2 netzwerkkarten

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.