problema ao rodar java : too many open files

Iniciado por Ziden, 06 de Julho de 2011, 10:03

tópico anterior - próximo tópico

Ziden

Olá a todos. Estou rodando um servidor java dentro de um servidor dedicado Ubuntu. o servidor é bem forte, possui 8Gb ram 3 tera HD e um processador AMD quad core. O problema é que vira e volta, várias partes do java me dao o erro "too many open files", como segue o log;

2011-07-06 01:22:16 [SEVERE] [LC] Error writing to file.
2011-07-06 01:22:16 [SEVERE] [LC]java.io.FileNotFoundException: plugins/LevelCraftCore/Data/Minerador.exp (Too many open files)
java.io.FileNotFoundException: plugins/AntiXRay/Knights.ore (Too many open files)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
at com.asdaarg.bukkit.antixray.AWorld.Load(AWorld.java:236)
at com.asdaarg.bukkit.antixray.AntiXRay$4$1.run(AntiXRay.java:221)
at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:137)
at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:438)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
2011-07-06 01:22:17 [SEVERE] null
2011-07-06 01:22:30 [SEVERE] java.net.SocketException: Too many open files
2011-07-06 01:22:30 [SEVERE] at java.net.PlainSocketImpl.socketAccept(Native Method)
2011-07-06 01:22:30 [SEVERE] at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:375)
2011-07-06 01:22:30 [SEVERE] at java.net.ServerSocket.implAccept(ServerSocket.java:470)
2011-07-06 01:22:30 [SEVERE] at java.net.ServerSocket.accept(ServerSocket.java:438)
2011-07-06 01:22:30 [SEVERE] at net.minecraft.server.NetworkAcceptThread.run(SourceFile:40)


Quando isto ocorre, além do servidor começar a bugar todo, ninguem consegue se conectar. Se eu digito ulimit no terminal, aparece unlimited. Alguem saberia por gentileza me ajudar ? Uso Ubuntu 10.04

  Obrigado pela atenção;

zekkerj

Pra aumentar o limite de arquivos ("open files") você tem que usar o comando "ulimit -n". P.ex.:

ulimit -nh 4096

Mas essa alteração só vale pros processos que você executar a partir daí, e só pros que forem criados nessa mesma sessão de terminal. Ou seja, não vale pra todo o sistema, nem fica fixo. Pra fixar, vc tem que colocar isso em algum arquivo de inicialização. Eu fiz uma busca agora por "ulimit" em minha máquina, e vi que o arquivo /etc/profile faz alguns ajustes de ulimit, pode ser uma boa idéia fazer esse ajuste por lá.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D