Слишком много открытых файлов даже после установки kern.maxfiles
Я установил
kern.maxfiles=65536
kern.maxfilesperproc=65536
После этого я поместил следующую команду в мой файл.zshrc
ulimit -n 30000
Однако, если я попытаюсь запустить приложение на основе netty из eclipse, откроются только сокеты 10k, а затем возникнет исключение java IO "Слишком много открытых файлов". Folowing - это трассировка стека.
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at io.netty.channel.socket.nio.NioServerSocketChannel.doReadMessages(NioServerSocketChannel.java:135)
at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:68)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:510)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:467)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:381)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:834)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
Я использую следующую команду, чтобы проверить количество открытых файлов / сокетов, используемых моим сервером, и всегда показывает значение чуть больше 10 КБ, когда возникает исключение.
lsof -p <pid> | wc -l
1 ответ
Увеличьте значение дескриптора файла для достижения. Вы устанавливаете значения "65536", но вызываете только 30000, добавляя в свою оболочку
Пожалуйста, измените значения, затем перезагрузите bash, либо su - в текущем сеансе, либо откройте новый терминал / сеанс, а затем перезапустите приложение. Должно работать
Вы можете установить ulimit с помощью следующей ссылки.
https://vasnlinux.wordpress.com/2015/05/01/linux-server-hardening/