Ich habe Lasttests für meine REST-APIs mit JMeter durchgeführt.So beheben Sie den Fehler java.net.SocketException: Zu viele geöffnete Dateien
Ich erhalte die folgende Fehlermeldung, wenn sie mit 1000 gleichzeitige Benutzer getroffen:
Too many open files. Stacktrace follows:
java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:397)
at java.net.Socket.getImpl(Socket.java:460)
at java.net.Socket.setSoTimeout(Socket.java:1017)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:126)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:476)
at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:441)
at groovyx.net.http.HTTPBuilder.request(HTTPBuilder.java:390)
Mein Server versucht, einen anderen REST-API zu treffen, die Daten zu erhalten und es zu verarbeiten und schließlich eine JSON-Antwort zurück.
Wie kann ich die Anzahl der geöffneten Dateien in Linux erhöhen?
Es folgt der Anruf, den ich auf einen anderen Server
Map getResponse(Map data, String url){
HTTPBuilder httpBuilder = new HTTPBuilder(url);
httpBuilder.request(Method.POST, JSON) {
headers.'Authorization' = AppConfig.config.appKey;
headers.'Content-type' = 'application/json'
body = data
response.success = { resp, reader ->
return reader as Map;
}
response.failure = { response, reader ->
return null
}
}
}
Does http://stackoverflow.com/questions/34588/how-do-i-change-the-number-of-open-files-limit-in-linux Hilfe? – immibis
Sieht aus wie Dateien nicht geschlossen sind. Sende deinen Code hier. –
Wahrscheinlich haben Sie viele Sockets erstellt, aber nicht geschlossen(). Ich denke, das Standardmaximum für offene Dateien und/oder Sockets auf Linux-Rechnern ist 1024. –