LINUX.ORG.RU

Сервлет и ограничение на количество открытых файлов

 , , ,


0

1

Здравствуйте.
catalina.out:

SEVERE: Missing default web.xml, using application web.xml only conf/web.xml .../conf/web.xml java.io.FileNotFoundException: .../conf/web.xml (Too many open files)
at java.io.FileInputStream.open(Native Method)

Пишет, что открыто много файлов.

Выхлоп unlimit'а:

ulimit -a | grep «open files»
open files (-n) 1024

Выхлоп lsof'а:

lsof -p 8869 | wc -l
84

Почему такое может быть? В самом приложении никакие файлы не открываются.
Когда мы берем writer'а через response.getWriter() и пишем им - считается ли это за открытый файл?
И еще - я правильно понимаю, что на каждое подключение к сервлету создается сокет? Считается ли он за открытый файл?

★★★★★

ulimit -a | grep «open files»

Насколько мне известно, у жабы свое ограничение на кол-во открытых файлов. Причем с какой-то версии оно было сильно увеличено.

f1xmAn ★★★★★ ()

Ага, теперь lsof выдает много фигни вида:

java    8869 app  795u  0000                0,7        0     1025 anon_inode
java    8869 app  796u  sock                0,5          91318835 can't identify protocol
java    8869 app  797r  FIFO                0,6          91318836 pipe
java    8869 app  798w  FIFO                0,6          91318836 pipe
java    8869 app  799u  0000                0,7        0     1025 anon_inode
java    8869 app  800u  sock                0,5          91318837 can't identify protocol
java    8869 app  801r  FIFO                0,6          91318838 pipe
java    8869 app  802w  FIFO                0,6          91318838 pipe
java    8869 app  803u  0000                0,7        0     1025 anon_inode
java    8869 app  804u  sock                0,5          91318839 can't identify protocol
java    8869 app  805r  FIFO                0,6          91318840 pipe
java    8869 app  806w  FIFO                0,6          91318840 pipe
java    8869 app  807u  0000                0,7        0     1025 anon_inode
java    8869 app  808u  sock                0,5          91318841 can't identify protocol
java    8869 app  809r  FIFO                0,6          91318842 pipe
java    8869 app  810w  FIFO                0,6          91318842 pipe
java    8869 app  811u  0000                0,7        0     1025 anon_inode
java    8869 app  812u  sock                0,5          91318843 can't identify protocol

А в catalina.out:

2012-12-20 17:45:28.666 WARN net.spy.memcached.MemcachedConnection:  Could not redistribute to another node, retrying primary node for memcached_key12345.
2012-12-20 17:45:28.666 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@58b315c1
2012-12-20 17:45:28.751 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
Это из-за memcached?

kovrik ★★★★★ ()
Последнее исправление: kovrik (всего исправлений: 1)

Кажется нашел ошибку - неправильно коннектилось к memcached'у. Там же отсутствует connection pool - и каждый раз создавался новый сокет.

kovrik ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.