Dennis: Wieviele SQL anfragen sind vertretbar

Hi,

ich hoffe ein Serverexperte kann mir helfen.

Ich programmiere eine We bseite mit PHP, ich habe dabei eine Funktion die von jedem Seitenbesuche alle 15 Sekunden aufgerufen wird. Dabei wird eine SQL Abfrage an den Server gesendet.

D.h. ich habe bei 150 Benutzern ca. 10 SQL Selects pro Sekunde. Ich weiss leider nicht was mein Provider für einen Server benutzt und was dieser für Hardware Ressourcen besitzt.

Kann mir jemand sagen wieviele Anfragen pro Sekunde an den Server vertretbar sind, ohne das er ständig ausgelastet ist?

Gruß,

Dennis

  1. Hi,

    wie viele Anfragen pro Sekunde vertretbar sind, kann ich schwer einschätzen. Wozu brauchst Du denn überhaupt eine Frequenz von 15 Sekunden? Für die meisten Zwecke dürfte Minuten-Takt völlig ausreichend sein.

    MfG
    Danny

    1. Hi,

      wie viele Anfragen pro Sekunde vertretbar sind, kann ich schwer einschätzen. Wozu brauchst Du denn überhaupt eine Frequenz von 15 Sekunden?

      Ich brauche den 15 sekundne Takt für eine relativ genaue Onlineliste der User. Ich habe mir gedacht das 15 Sekunden eine Gute aktualität bietet. Wenn es jedoch zu hohe Auslastung bedeuten würde, dann würde ich auch auf 30 Sekunden oder mehr ausweichen.

      Gruß,

      Dennis

      1. Hallo,
        schau dir deine Seite an, wenn die langsam ist, dann ändern die Frequenz.

        Aber eine  Frequenz von 1 oder 2 min reicht vollkommen aus.
        Oder nimm den Script ganz raus.

        Wer Online ist ganz nett, aber wenn ich dafür nen lahmen Server bekommen, nein danke.

        MFG
        Andavos

        --
        http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      2. hi,

        Ich brauche den 15 sekundne Takt für eine relativ genaue Onlineliste der User.

        zu der generellen unmöglchkeit, solch eine liste mit wirklicher _aussagekraft_ in einem HTTP-kontext zu realisieren, such doch mal hier im </archiv/>.

        gruss,
        wahsaga

  2. Hello Dennis,

    Du könntest die Ausführungszeiten der Queries ermitteln und loggen, damit Du ein Gefühl für die Serverlast bekommst.

    Ein typisches Query dauert z.B. 8ms. Da die Queries aber über den Apachen und PHP kommen, wie ich mal vermute, sind ohnehin nur soviele "gleichzeitige" Zugriffe möglich, wie der Apache Instanzen zur Verfügung stellt. Außerdem laufen diese Requests als multiple Threads. Wenn nun alle Threads sowieso die gleichen Daten haben wollen, kann es durchaus sein, dass die Tabellen noch im Cache des DB-Servers liegen.

    Eine generelle Aussage über die zulässige Anzahl von Queries ist also nicht möglich. Alleine das Herstellen einer Connection dauert da wahrscheinlich schon länger, als das reine Query. Kommt natürlich auch auf die Anzahl der Datensätze in den Tabellen und die Anzahl der Joins an.

    Ich würde einfach mal ein Script schreiben, dass per Schleife innerhalb einer Connection diverse Queries absetzt. Lass Dir einen Zufallsstring erzeugen, leg z.B. 1000 Datensätze an und such dann danach.

    Interessant dürfte dann z.B. der Unterschied zwischen der indizierten Suche und einem "LIKE 'wert%'" und einem "LIKE '%wert%'"  sein.

    Die Ergebnisse nebst der Ausführungszeit sammelst Du dann in einem Array und schaust sie dir nachher an.

    Hierbei ist natürlich zu beachten, dass die Queries alle _nacheinander_ ausgeführt werden.

    Wenn Du das Script nun zweimal startest über zwei Browserinstanzen, dann, dreimal, viermal... dann bekommst Du ein Gefühl für die Leistungsfähigkeit des Servers.

    Lass dich überraschen und gib uns vor allem deine Versuchsergebnisse auch bekannt.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen