Hallo,
ich habe folgendes Problem und hoffe hier einen Spezialisten zu finden der mir helfen kann: Die Nutzer meiners Web-Portals laden eine ca 9MB große JAR-Datei herunter, mit der sie eine Applikation starten können. Durch viele User, die jedoch eine zu schmale Verbindung haben, werden zu viele Apache-Prozesse blockiert, die dann 10 und mehr Minuten lang die besagte JAR-Datei an die User rausschicken. Durch die blockierten Prozesse können schnell beendende requests an normale websites kaum mehr ausgeführt werden da keine freien Prozesse mehr zur Verfügung stehen.
Grundsätzlich könnte man nun die anzahl der Connections erhöhen, allerdings ist der Load schon über 1, weshalb das die performance nicht effektiv steigern würde.
Nun meine Frage: Kennt jemand eine Einstellungsmöglichkeit beim Apache die es ermöglicht Requests die länger als 3 Minuten dauern automatisch zu beenden?
Die normale TimeOut direktive ist dafür ungeeigent da sie nur die Zeit für den kompletten transfer von z.B. POST-Daten misst, nicht aber die Zeit die der Sever für das Antworten braucht.
Eine unschöne Lösung wäre ein cronJob der alle 3 Minuten mit Hilfe eines shell scripts die entsprechenden apache Prozesse killen würde. Dabei bin ich mir aber nicht sicher welche Auswirkungen das auf die Systemstabilität hat.
Vielen Dank für Eure Antworten
- Loddi
PS: der Apache läuft mit dem apache2-mpm-prefork Modul. Ich habe gehört mit anderen Modulen könnte es evtl. auch andere Einstellungsmöglichkeiten geben, hat da jemand Tipps? Ich habe beim Googeln nichts darüber gefunden