Konfigurieren der Keep-Alive-Zeitüberschreitung in Playframework 2

8

Ich benutze playframework 2.0 in der Produktion und ich sehe eine schnell wachsende Anzahl von Dateien, die durch den entsprechenden Java-Prozess geöffnet werden. Ich habe die standardmäßig erlaubte Anzahl von offenen Dateien für einen Prozess von 1024 auf 4096 geändert, aber das verzögert nur ein Problem und nach einiger Zeit wird die Anzahl der geöffneten Dateien so groß, dass der Server langsamer wird und manchmal sogar ein java.net.SocketException " viele geöffnete Dateien "erscheint in einem Protokoll.

Ich benutze den Ubuntu Server 12.04, sun jdk 1.7.0_09.

Der Befehl

lsof demonstriert, dass fast alle geöffneten Dateien Sockets sind, die für Benutzerverbindungen erstellt wurden. Daher kann ich feststellen, dass der Netty-Server, der von playframework verwendet wird, viele offene Verbindungen am Leben erhält. So weit ich weiß, sollte ich das Keep-Alive-Verhalten des Netty-Servers ändern, um zum Beispiel ein niedriges Keep-Alive-Timeout zu setzen. Wie kann ich das in Playframework 2.0 konfigurieren? Oder ist das Problem in etwas anderem? Ich kann bei Bedarf jede Konfiguration bereitstellen.

UPD: Hier ist ein bisschen Ausgabe von lsof -aPn -p 12251 . Ich habe einige Teile von ips mit ***

zensiert %Vor%     
Ilya Posov 15.11.2012, 09:59
quelle

1 Antwort

2

Wenn Sie Play ohne einen HTTP-Server verwenden, können Sie die Antwortheader bearbeiten , bevor Sie die Nachricht senden Result ( Scala-Version ), andernfalls müssen Sie die Einstellungen des Front-End-Servers überprüfen.

%Vor%

Beachten Sie, dass diese Werte Beispiele sind und ich weiß nicht, ob sie Ihren Anforderungen entsprechen.

    
biesior 15.11.2012 15:31
quelle