我在執行我的程序時遇到了太多打開的文件異常。典型情況如下:太多打開的文件在「無限」系統下的例外
org.jboss.netty.channel.ChannelException: Failed to create a selector.
...
Caused by: java.io.IOException: Too many open files
但是,那些不是唯一的例外。我觀察到類似的(由「打開的文件過多引起的」),但是這些是很多較不頻繁。
奇怪的是我已經設置的屏幕會打開文件的限制(從那裏我啓動我的程序)爲1M:
[email protected]:~/fabiim-cbench# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
**open files (-n) 1000000**
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
此外,由lsof -p
輸出作爲觀察我看沒有更多的1111在拋出異常之前打開文件(套接字,管道,文件)。
問題:什麼是錯誤的和/或我該如何深入研究這個問題。
額外:我目前正在整合Floodlight與bft-smart。簡而言之,在執行由基準測試程序啓動的壓力測試時,泛光燈流程會導致過多的打開文件異常。這個基準測試程序將維護64個tcp連接到泛光燈過程,而這個過程又應該保持至少64 * tcp連接到bft智能複製品。這兩個程序都使用netty來管理這些連接。
你是否以root身份運行jboss? –
我不知道我是否運行jboss(我認爲netty和jboss是兩個單獨的東西)。但我以root身份運行每個進程。 – fabiim