मैं लिनक्स पर जेट्टी 7.0.1 में चल रहे जावा वेबैप में फ़ाइल डिस्क्रिप्टर रिसाव डीबग करने का प्रयास कर रहा हूं।IOException: बहुत सारी खुली फ़ाइलें
ऐप खुशी से एक महीने या उससे भी अधिक समय तक चल रहा था जब के कारण अनुरोध विफल होने लगे,, और जेटी को पुनरारंभ करना पड़ा।
java.io.IOException: Cannot run program [external program]: java.io.IOException: error=24, Too many open files
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:246)
पहले तो मैंने सोचा था कि इस मुद्दे को कोड है कि बाहरी कार्यक्रम की शुरूआत के साथ था, लेकिन यह commons-exec उपयोग कर रहा है और मैं इसके साथ कुछ भी गलत नहीं दिखाई देता है: पर खुली फ़ाइलों लिस्टिंग
CommandLine command = new CommandLine("/path/to/command")
.addArgument("...");
ByteArrayOutputStream errorBuffer = new ByteArrayOutputStream();
Executor executor = new DefaultExecutor();
executor.setWatchdog(new ExecuteWatchdog(PROCESS_TIMEOUT));
executor.setStreamHandler(new PumpStreamHandler(null, errorBuffer));
try {
executor.execute(command);
} catch (ExecuteException executeException) {
if (executeException.getExitValue() == EXIT_CODE_TIMEOUT) {
throw new MyCommandException("timeout");
} else {
throw new MyCommandException(errorBuffer.toString("UTF-8"));
}
}
सर्वर मैं FIFOs की बड़ी संख्या में देख सकते हैं:
# lsof -u jetty
...
java 524 jetty 218w FIFO 0,6 0t0 19404236 pipe
java 524 jetty 219r FIFO 0,6 0t0 19404008 pipe
java 524 jetty 220r FIFO 0,6 0t0 19404237 pipe
java 524 jetty 222r FIFO 0,6 0t0 19404238 pipe
जब जेट्टी शुरू होता है सिर्फ 10 FIFOs कुछ दिनों के बाद उनमें से सैकड़ों देखते हैं देखते हैं,।
मुझे पता है कि यह इस चरण में थोड़ा अस्पष्ट है, लेकिन क्या आपके पास आगे देखने के लिए कोई सुझाव है, या उन फाइल डिस्क्रिप्टरों के बारे में अधिक विस्तृत जानकारी कैसे प्राप्त करें?
चलिए कुछ कोड देखें –
बाहरी प्रोग्राम लॉन्च करने वाला कोड जोड़ा गया। –
informaiton netstat -anp --tcp के अतिरिक्त स्रोत के रूप में | grep - रंग –
zaletniy