
Im folgenden wird beschrieben, wie Sie den SAP Web Dispatcher für den Einsatz mit sehr vielen Benutzern konfigurieren.
Entscheidend für den SAP Web Dispatcher ist die Anzahl der aktiven HTTP-Verbindungen, die nur indirekt von der Anzahl der Benutzer abhängt.
Um zu beurteilen, wie viele Benutzer der SAP Web Dispatcher bedienen kann, müssen Sie folgenden Zusammenhänge beachten.
Wenn ein Benutzer einen Request abschickt, kann dieser mehrere HTTP-Verbindungen öffnen. Ja nach Anwendung kann ein Request eine bis zu 10 oder 20 HTTP-Verbindungen öffnen. Wie viele genau, sieht der Benutzer nicht. Die durchschnittliche Anzahl von HTTP-Verbindungen pro Request wird in der folgende Formel mit req_per_dialog_step bezeichnet.
Entscheidend für die Auslastung des Web Dispatchers ist auch die „Think Time“ . Dies ist die Zeitspanne zwischen zwei Dialogschritten ( „Klicks“ ) des Benutzers (in Sekunden). In dieser Zeit besteht (abhängig noch vom Timeout, s.u.) keine aktive HTTP-Verbindung. Die ThinkTime wird in der Formel mit thinktime_per_diastep_sec bezeichnet.
Eine weitere wichtige Größe in diesem Zusammenhang ist der Keepalive-Timeout (Parameter icm/server_port_<xx> bzw. icm/keep_alive_timeout ), der festlegt, wie lange der Web Dispatcher die Verbindung für weitere Anfragen dieses Requests offen hält. Dieser Timeout in Sekunden wird in der Formel mit conn_keepalive_sec bezeichnet.
Es gibt also keine pauschale Formel, da die Anzahl tatsächlicher paralleler HTTP-Verbindungen concurrent_conn von den genannten Parametern abhängt. Eine Daumenregel liefert folgende Formel:
Folgende Einstellungen verwenden Sie für die Maximalkonfiguration des SAP Web Dispatchers.
Als Daumenregel setzen Sie die Parameter im Profil des Web Dispatchers wie folgt.
|
icm/max_conn = 16350 icm/max_sockets = 32768 wdisp/HTTP/max_pooled_con = 16350 oder wdisp/HTTPS/max_pooled_con = 16350 icm/req_queue_len = 8000 icm/min_threads = 100 icm/max_threads = 300 mpi/total_size_MB = 700 mpi/buffer_size = 32768 |
Anmerkungen zu diesen Parametern
Socketverbrauch : Beachten Sie, dass jede aktive HTTP-Verbindung vom Browser zum Web Dispatcher zwei Sockets benötigt. Zusätzlich wird im WebDispatcher ein Pool an offenen Verbindungen zu den Applikationsservern gehalten. Aus diesem Grund muss icm/max_sockets mindestens so groß sein wie die Summe aus icm/max_conn und wdisp/HTTP/max_pooled_con (bzw. wdisp/HTTPS/max_pooled_con ).
Dies sagt noch nichts über die mögliche Anzahl von gleichzeitig aktiven Benutzern, da ein Benutzer je nach Anwendung gleichzeitig mehrere HTTP-Verbindungen öffnen kann.
Der Parameter icm/max_conn muss mindestens so groß eingestellt sein wie die gewünschte Anzahl paralleler Verbindungen ( concurrent_conn in der Formel, 13333 im Beispiel unten).
MPI-Größe : Die Gesamt-MPI-Größe mpi/total_size_MB bestimmen Sie anhand der Formel
Betriebssystemeinstellungen anpassen
Unter Umständen müssen Sie für solche Hochlastszenarien auch Betriebssystemparameter verändern.
Die Betriebssysteme besitzen häufig Beschränkungen für die maximale Anzahl an offenen „file handles“ (Sockets) pro Prozess. Stellen Sie sicher, dass jeder Prozess mindestens so viele Sockets (file handles) besitzen darf wie im Parameter icm/max_sockets angegeben. Der Standardwert ist 2048, für Hochlastszenarien wird jedoch ein sehr viel größerer Wert empfohlen (s.o.).
Der Web Dispatcher prüft beim Starten, ob er vom Betriebssystem genügend Sockets bekommen kann. Ist dies nicht der Fall, sieht man in der Trace-Datei dev_icm den folgenden Eintrag:
|
[Thr 1] *** WARNING => maximum number of sockets supported on this host (1019) less than parameter icm/max_sockets (8192) [icxxrout_mt. 227 ] |
Dann sollten Sie die Einstellungen im Betriebssystem überprüfen. Weitere Informationen zu den einzelnen Betriebssystemen finden Sie in SAP-Hinweis
538405
.
Sie haben 10000 Benutzer, die ihre Anfragen über den Web Dispatcher schicken. Im Durchschnitt benötigt jeder Dialogschritt 4 HTTP-Verbindungen, der Keepalive-Timeout steht auf 10 Sekunden (wenn der Web Dispatcher merkt, dass die Ressourcen knapp werden, setzt er den Timeout für neue Verbindungen automatisch herunter), die durchschnittliche Zeit zwischen 2 Dialogschritten beträgt 30 Sekunden.
Dann wäre die Anzahl paralleler HTTP-Verbindungen 13333:
Für die Dimensionierung der MPIs ergibt sich dann (wenn die Defaulteinstellung für mpi/buffer_size von 65536 halbiert wird)
Setzen Sie nicht kleiner als 32K, da der HTTP-Header auf jeden Fall darin Platz haben muss.
Mit den Maximaleinstellungen von oben würde dies also funktionieren.
Den Sizing Guide zum SAP Web Dispatcher finden Sie auf dem SAP Service Marketplace unter .