- 论坛徽章:
- 0
|
回复 #64 shixueniao 的帖子
请帮忙处理个问题
2台服务器 都是redhat as5的操作系统
其中一台用LSOF查看java进程,发现很多can't identify protocol
且有明显增加的趋势 统计了下当时有2800个此连接占用了文件描述符
一个小时后 增加到3000个。最后,我们的WAS应用 报Too many open file的错误。
关键问题是can't identify protocol 这个socket一直增加,导致文件描述符不够用。
请问有那些情况会出现问题,如何解决?
shixueniao,因为socket在接收连接时总是新创建一个socket用于二者的通信,每次创建还要在文件系统中申请占用一个文件号,Too many open file故会出现,但是对于你的服务进程程序不知道是如何编写的,can't identify protocol这个错误是由于你在创建socket时没有指定要使用的协议类型。在我的文章中是一个练习程序,第三个参数是0,你需要修改为你使用的协议值比如IPPROTO_TCP
server_fd = socket(AF_INET, SOCK_STREAM, 0);
除此外推荐推荐一个参考网址
http://www.linuxsa.org.au/pipermail/linuxsa/2005-May/079126.html |
|