Optimalisierung des Web-Moduls
Posted by Alex Wolf, Last modified by Alex Wolf on 26 June 2014 03:59 AM

Wann benötige ich diese Optimalisierung?

Kommt es im WebClient öfters zu Instabilität, wie zum Beispiel ein roter Balken, dass die Verbindung unterbrochen ist? Haben Sie öfters "Timeouts" oder einen hohen PHP-Load? Müssen Sie regelmäßig Ihr Web-Modul neu starten?

Dann ist es der richtige Zeitpunkt Ihre Web-Server-Einstellungen zu überprüfen. Diese Einstellungen können in der Administrationskonsole getätigt werden und die Optimalisierung kann oftmals einen großes Performance-Schub bringen.

 

Web-Einstellungen

In der IceWarp Administrationkonsole gibt es mehrere Plätze, wo die relevanten Einstellungen zu finden sind.

1. Gehen Sie zu den Einstellungen für Web und drücken Sie mit einem Doppelklick auf "Standard". Im neu geöffneten Fenster gehen Sie zur Sektion "Scripting" und stellen Sie sicher, dass alle Dienste mit Ausnahme der wcs.dll auf (fastcgi);php\php.exe 

Wir verwenden also anstatt ISAP (Standard in Version 9 und älter) das leistungsfähigere FastCGI, welches auch als einzelner PHP-Prozess läuft. Ihr System wird durch diesen Eingriff stabiler. Sollte eine php.exe-Prozess beschädigt sein, wird dieser sofort mit einem neuen php.exe-Prozess ersetzt. Diese Aktion hat keinen Einfluss auf die Stabilität des Web-Moduls. Der Grund ist, dass dieser nicht als einzelne dll geladen wird, aber separat von Anfang an läuft.  

Webserver.dat

Im nächsten Schritt optimalisieren wir einige Werte in der webserver.dat-Datei. Dieser Schritt kann übersprungen werden, wenn eine frische Installation ab Version 10.3.x verwendet wird, dort sind die Optimalisierungen als Standard bereits enthalten. Falsche Werte konnten durch Updates und Upgrades des IceWarp Server entstehen, da die webserver.dat dabei nicht überschrieben wurde.  

Gehen Sie in der Administrationskonsole auf die Einstellung für das Web im Reiter "Allgemein"und drücken Sie unten den Button "Datei bearbeiten".

 Uns interessieren nur ein paar Werte:

<FCGI_INITSERVERS>6</FCGI_INITSERVERS>  – Diese Variable teilt uns mit, wie viele php.exe-Prozesse nach dem Start des Web-Dienstes laufen sollen und es sollten nie weniger als sechs sein. Der Wert sechs der Variable ist also korrekt.

<FCGI_THREADPOOL>15</FCGI_THREADPOOL>  – Diese Variable teilt uns die maximale Anzahl laufender php.exe-Prozesse mit. Nach einer langen Testphase haben wir festgestellt, dass 15 den besten Wert darstellt. Ein höherer Wert kann Ihre Systemressourcen stärker beanspruchen und wird aus diesem Grund nicht empfohlen.

<MODULE TITLE="[activesync]" THREADPOOL="-1"/> – Dieser Wert zeigt uns, wie viele Threads von ActiveSync in Anspruch genommen werden können. Ist der Wert bei "-1", wird dieser aus dem "Global Thread Pool" genommen, dieser kann über die API-Konsole eingestellt werden. 

API-Konsole

(Administrationkonsole - Datei - API-Konsole)

Jetzt kommen wir wohl zu der wichtigsten Änderung, der "Global Thread Pool" sollte ohne Limitierung laufen, damit ActiveSync und Instant Messaging reibungslos funktionieren. Wie schon erwähnt, kann dies über die API-Konsole eingestellt werden. Die zuständige Variable lautet c_webservice_appmaxthreads und sollte auf 0 (null) gestellt sein, bzw. werden.

Starten Sie jetzt das Web-Modul neu und die Optimalisierung ist vollzogen.

 

 

Die richtigen Variablen für den Hauptabschnitt der webserver.dat lauten:

<WEB>

   <OPTIONS>

      <ISAPI_RESTART>0</ISAPI_RESTART>

      <ISAPI_RESTART500/>

      <ISAPI_RESTART500DATA/>

      <FCGI_INITSERVERS>6</FCGI_INITSERVERS>

      <FCGI_TIMEOUT>150000</FCGI_TIMEOUT>

      <FCGI_MAXSERVERS>0</FCGI_MAXSERVERS>

      <FCGI_MAXROUNDS>10000</FCGI_MAXROUNDS>

      <FCGI_RESTART500>3</FCGI_RESTART500>

      <FCGI_BINDIP>127.0.0.1</FCGI_BINDIP>

      <FCGI_CHECKRUNNING>1</FCGI_CHECKRUNNING>

      <FCGI_ENVIRONMENT>PHP_FCGI_MAX_REQUESTS=20000</FCGI_ENVIRONMENT>

      <FCGI_THREADPOOL>15</FCGI_THREADPOOL>

      <FISAPI_NUMSERVERS>3</FISAPI_NUMSERVERS>

      <FISAPI_INITSOCKS>10</FISAPI_INITSOCKS>

      <FISAPI_MAXROUNDS>10000</FISAPI_MAXROUNDS>

      <FISAPI_TIMEOUT>900000</FISAPI_TIMEOUT>

      <MODULES_TIMEOUT>

         <MODULE TITLE="[activesync]" TIMEOUT="1800000"/>

      </MODULES_TIMEOUT>

      <MODULES_THREADPOOL>

        <MODULE TITLE="[activesync]" THREADPOOL="-1"/>

      </MODULES_THREADPOOL>

      <HTTP10>0</HTTP10>

      <NOCHUNKEDENCODING>1</NOCHUNKEDENCODING>

      <COMPRESSTHRESHOLD/>

      <LOGFORMAT>c-ip cs-username date time cs-method cs-uri-stem cs-version sc-status bytes cs(Referer) cs(User-Agent)</LOGFORMAT>

(0 vote(s))
Helpful
Not helpful

Comments (0)