Announcement

Collapse
No announcement yet.

Performance bei vielen Connections

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performance bei vielen Connections

    Hallo zusammen,

    ich wollt fragen wie es bei PHP mit der Performance aussieht, wenn ein skript sagen wir mal 100.000 mal gleichzeitig ausgeführt wird?

    Hintergrund:

    Ich ahb eine Delphianwendung die Daten über ein PHP Skript in Dateien auf einem Server speichert:

    Username1.dat
    Username2.dat
    usw.

    wenn der User sich im Programm anmeldet wird diese Datei ausgewertet(geladen) wenn sich im Programm dann was an den Daten ändert wird das ganze gespeichert.

    Also wie sieht das bei 100.000 Dateien/Usern aus?

  • #2
    Tja, sagen wir´s mal so... 100.000 simultane Zugriffe auf einen Server bekommst Du egal mit welcher Technik schon rein theoretisch überhaupt nicht hin. Dafür gibt es ein paar ganz einfach Gründe:

    TCP/IP: 65.535 Ports
    Server: 100.000 Threads oder Prozesse ist utopisch
    Dateisystem: 100.000 simultane Schreib-/Lesezugriffe klingen nach Märchen
    Speicher: nehmen wir mal nen Speicherverbauch von nur 50kB pro Instanz, dann bräuchte der Server nur für die Instanzen 5.000.000 kB, also 5 Gigabyte nur für die Serverprozesse (okay, das wäre möglich, aber nicht auf 08/15-Server).
    Netzwerk: rechne nur mal 20 kb/s an Auslastung pro Request, dann bräuchte der Server eine Mindestbandbreite von 2.000.000 kbB/s, das wäre eine 2GBit Anbindung als Minimum, die dann glühen würde und pro Request extrem langsam.

    Das Ganze ist also egal mit welcher Programmiersprache theoretisch schon unmöglich, aber ich frage mich ernsthaft, wie Du auf diese immens hohe Zahl von 100.000 simultanen Zugriffen kommen willst?

    Btw: Versuche doch mal im lokalen Dateisystem mit einer kompilierten Anwendung 100.000 simultane Zugriffe auf das Dateisystem zu bekommen

    Comment


    • #3
      Es sind ja nur 100.000 Datein nicht 100.000 Zugriffe...
      ich denke es werden 100.000 Zugriffe über den Tag verteilt sein...1.000 gleichzeitig und dselbst das ist nur "Wunschdenken" wie gesagt ein RPG die Dateien beinhalten die Userdaten die beim Prgrammstart geladen werden.. es sit doch sehr unwahrscheinlich das sich alle Spieler gleichzeitig anmelden

      Comment


      • #4
        Du hast oben davon gesprochen, daß ein Script 100.000 mal gleichzeitig ausgeführt werden, das ist etwas anderes, als wenn 100.000 Dateien auf dem Server abgelegt werden.
        Für dein Problem würde ich aber eher eine Datenbank empfehlen, als mit einem Wust an Dateien zu arbeiten. Mit einer Datenbank arbeitet dies wesentlich performanter (wenn sie richtig konfiguriert und angelegt ist), da ein Großteil der Daten nicht ständig aus dem Dateisystem geladen werden muß, sondern teilweise im Speicher gehalten wird. Außerdem kümmert sich dann die Datenbank um konkurrierende Zugriffe, saubere Updates, Inserts und Deletes.
        Wie performant dies aber letztentlich lösbar ist hängt von vielen Faktoren ab. Welchen Server Du zur Verfügung hast, inwiefern Du ihn optimieren darfst /kannst was gleichzeitige Zugriffe, Zahl der Instanzen und Speichernutzung angeht und letztendlich hängt es nicht unwesentlich von deinen programmiererischen Fähigkeiten ab.
        Alles in allem muß man aber sagen, daß PHP zwar meist ausreichend schnell ist, aber je nach Anforderungsprofil und Optimierungsgrad wesentlich schnellere (und skalierbarere) Optionen existieren

        Comment

        Working...
        X