Provider lahm legen.. :(

Hi all,
ich glaube ich habe zum wiederholten male meinem Provider Probleme bereitet.

Er schreibt:
„…
Hallo,
Es wurden 130 http und uber 160 Mysql aufrufe gleichzeitig durchgefuhrt auch
nachdem wir den Apache und Mysql neugestartet haben kamen die Aufrufe wieder
somit kamm es immer wieder zu der Zeitlimit Uberschreitung.
mfg
…“

Ich verwende oft pcconnect bei der Datenbank- Verbindung.
Und jeder Besucher der Seite bekommt ein eigenes PHP - Script, welches die Verbinung herstellt. D.h. Jeder Besucher führt zu einem pcconnect. Und bei jedem Seitenaufruf eines Besuchers wird wieder pcconnect versucht.
Ich weiss nicht wie die technische Umsetzung dabei aussieht.
Ist diese meine Vorgehensweise eine Belastung für den Server ?
Und wenn ja wie könnte ich es machen ?
Die betreffende Seite ist getweb2k.de
Am Start verwende ich das Script welcome.php
Es legt für jeden Besucher einen Ordner mit dem Namen einer neuen Session - Id an. Danach laufen alle Seitenaufrufe über die Scripte in diesem Ordner.

Danke for help .
Gruß Sebastian :smile:
*Keep smiling in the year 2000*

Re: Provider lahm legen… :frowning:

ich glaube ich habe zum wiederholten male meinem Provider
Probleme bereitet.

Das glaube ich auch…

Er schreibt:
„…
Hallo,
Es wurden 130 http und uber 160 Mysql aufrufe gleichzeitig
durchgefuhrt auch
nachdem wir den Apache und Mysql neugestartet haben kamen die
Aufrufe wieder
somit kamm es immer wieder zu der Zeitlimit Uberschreitung.
mfg
…“

Hier steht ja mehr als deutlich, was deine Skripte verursachen…

Ist diese meine Vorgehensweise eine Belastung für den Server ?

Wenn ich nicht irgendwie den Eindruck hätte, das deine Frage vollkommen ernst gemeint ist würde ich jetzt mit dem Kopf gegen die Wand rennen und dir raten, das gleiche zu tun… Oh Mann, na klar ist deine Vorgehensweise eine enorme (!) Belastung für den Server.

Und wenn ja wie könnte ich es machen ?

Ohne pconnect und diese unnötigen Seitenaufrufen über Ordner mit den Session-IDs. Für was soll das gut sein?

Infos unter:
http://www.php.net/manual/en/function.mysql-connect.php
http://www.php.net/manual/en/function.mysql-pconnect…

Gruss,
Andreas Bulling

Ich glaube was Andreas Dir damit sagen möchte ist, daß
es vielleicht besser währe keine persistenten Verbindungen aufzubauen.

Vielleicht habe ich nicht ganz verstanden, was Du mit den Ordnern mit den Session IDs meinst, aber wenn Du manuell Session IDs erzeugst, dann solltest Du wissen, daß PHP ein wunderbares Session Management mitbringt :smile:

´Gruß
Sascha

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

pconnect arbeitet (nach meinem verständnis) so, dass wenn keine freie connection besteht, es eine neue erstellt, und ansonsten eine bestehende, freie verbindung nutzt. sollte also kein problem darstellen … wahrscheinlicher ist, dass in einem skript mehrere pconnects aufgerufen werden (schleife?)
auf jeden fall ist es besser mysql_connect zu verwenden - so extrem viel hits, dass pconnects vonnöten sind, wirst du kaum haben, und da die verbindungen nach skriptende immer geschlossen werden, sollte es hiermit auch keine probleme geben. pconnect bringt leichte performance-vorteile, wenn es wirklich viele (in worten: viele) besucher gibt.
also umbauen.

  • stefan

ps: ich programmiere fürs connecten meist eine wrapper funktion, die mir erlaubt, per switch (konstante) umzuschalten, ob ich connects oder pconnects möchte.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke der Antwort.
Dachte mir schon das es was mit pcconnect zu tun hat.
Ich wusste es nur noch nicht genau. Ich fand darüber nichts schriftliches.
Das mit den Session-Ids in den Ordnern muss schon sein.
Das ist bewährte Praxis. Puretec macht das z.B. ähnlich.
Das sieht man gleich, wenn man auf deren Seite geht.

Grüße der Seb :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

try to find a (persistent) link that’s already ope
Das mit dem PHP Session Managment weiss ich schon passt
aber nicht in mein Konzept. Danke.
Immerhin macht es purtec auch mit Ordnern.

Folgendes bringt mich in Verwirrung:
"
mysql_pconnect()…
First, when connecting, the function would first
try to find a (persistent) link that’s already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.
"
steht im Manuel.
D.h. pcconnect such nach bereits geöffneten Verbindungen.
Ist es dann da nicht ganz ungefährlich pcconnent in mehreren Scripten wiederholst zu verwenden, da alle die gleiche Verbinung beim suchen finden ?
Also kann ich doch weiterhin pcconnect verwenden ?
Sicherheitshalber habe ich jetzt temporär mal auf MYSQL_CONNECT
umgestellt.

Gruß Sebasitan

atomatische wrapper function ?

ansonsten eine bestehende, freie verbindung nutzt. sollte also
kein problem darstellen … wahrscheinlicher ist, dass in
einem skript mehrere pconnects aufgerufen werden (schleife?)

Das kann ich ausschliesen.
Aber ich habe den Verdacht, das sich ein Script endlos selbst aufrufen könnte, unter bestimmten Bedingungen… ich muss dem man nachgehen.

geben. pconnect bringt leichte performance-vorteile, wenn es
wirklich viele (in worten: viele) besucher gibt.

Ich habe nur ca. 45 Besucher pro Tag. Jedoch ist für jeden einzelnen Klick des Besuchers eine MySql -Verbindung notwendig.
Vermutlich hällst pconnect dann immernoch nicht für angebracht ?

ps: ich programmiere fürs connecten meist eine wrapper
funktion, die mir erlaubt, per switch (konstante)
umzuschalten, ob ich connects oder pconnects möchte.

Ahhhh… Das musst du mir bitte genauer erklären !
Funktioniert das umschalten manuell ?
Ich stelle mir etwas vor was selbst entscheidet ob umgeschaltet werden soll oder nicht. Wie könnte man denn sowas anfangen und wo sind denn da die Grenzwerte ?

cU Seb

45 besucher pro tag benötigt kein pconnect. schätze, pconnect macht erst ab mehreren 1000 besuchern pro tag sinn, aber das kann ich dir nicht sagen. suche auf www.php.net, vielleicht findest du dort so etwas. hängt aber auch vom webserver ab. in deinen dimensionen macht pconnect aber absolut keinen sinn.

umschalten funkt bei mir manuell. programmier dir einfach selbst nen simplem counter, der auf pageviews geht, wenn dieser eine bestimmte zahl übersteigt, werden zukünftig pconnects verwendet. ich würde dir gratulieren, würde deine seite so schnell derartige besucherzahlen anziehen, die ein pconnect nötig machen würden. andernfalls - NUTZ MYSQL_CONNECT.

pconnect hat keinen sinn.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Dass Puretec für jeden Besucher einen neuen Ordner anlegt, halte ich für sehr, sehr unwahrscheinlich!

Dass Du bei 45 Leutchen pro Tag eine persistente Verbindung zu Deiner Datenbank benötigst ist auch nahezu ausgeschlossen!

LÖSUNG:

A) Baue Dein Script so um, dass keine Verzeichnisse für jeden User erstellt werden…

B) Baue Dein Script so um, dass Du bei allen Datenbankabrufen mysql_connect verwendest. Diese Funktion ist im Kleinen wesentlich ressourcenschonender als pconnect. Ich zitiere aus dem Manual zu mysql_pconnect: "Zweitens, die Verbindung zum SQL Server wird nicht mit Beendigung des PHP-Skripts geschlossen. Sie bleibt bestehen für einen möglichen, zukünftigen Verbindungsaufbau. "

Wenn Du möchtest, dass Deine Website 1a funktioniert und Dein Server Dir nicht jeden zweiten Tag „abrauscht“ mach die oben genannten beiden Punkte und alles wird gut:wink:)
Wenn nicht, dann must Du Dich an die von Dir genannten Emails Deines Providers gewöhnen, vor allem, wenn Du mal mehr Besucher auf Deine HP bekommst.

Grüsse
Cromo