Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Optimale Anzahl von Verbindungen im Verbindungspool

Meinten Sie wirklich 200 gleichzeitig Benutzer oder nur 200 angemeldete Benutzer? In den meisten Fällen ist ein Browserbenutzer nicht in der Lage, mehr als 1 Seitenanforderung pro Sekunde durchzuführen. 200 Benutzer bedeuten also 200 Transaktionen pro Sekunde. Das ist für die meisten Anwendungen eine ziemlich hohe Zahl.

Unabhängig davon gehen wir als Beispiel von 200 Transaktionen pro Sekunde aus. Angenommen, jede Frontend- (Browser-) Übertragung dauert 0,5 Sekunden, und von den 0,5 Sekunden werden 0,25 in der Datenbank verbracht. Sie benötigen also 0,5 * 200 oder 100 Verbindungen im WebLogic-Thread-Pool und 0,25 * 200 =50 Verbindungen im DB-Verbindungspool.

Sicherheitshalber würde ich die maximalen Thread-Pool-Größen auf mindestens 25 % größer festlegen, als Sie erwarten, um Lastspitzen zuzulassen. Das Minimum kann ein kleiner Bruchteil des Maximums sein, aber der Kompromiss besteht darin, dass es für einige Benutzer länger dauern kann, weil eine neue Verbindung erstellt werden müsste. In diesem Fall sind 50 - 100 Verbindungen nicht viel für eine DB, also ist das wahrscheinlich eine gute Startnummer.

Beachten Sie, dass Sie, um herauszufinden, wie Ihre durchschnittlichen Transaktionsantwortzeiten zusammen mit Ihrer durchschnittlichen DB-Abfragezeit sind, einen Leistungstest durchführen müssen, da Ihre Ladezeiten wahrscheinlich nicht die Zeiten sein werden, die Sie mit einer Single sehen Benutzer.