- 浏览: 1042092 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
java.net.SocketException: Too many open files在错误影响到基础 TCP 协议时抛出
为什么发生此问题?
这些异常指出操作系统 (OS) 资源问题和操作系统与 JVM 进程用完文件描述符的原因
在几个并发用户连接到服务器之后通常会发生此问题。Java
打开许多文件,以便读取运行应用程序所必需的类。大量应用程序会使用许多文件描述符,这会导致缺乏新的文件描述符。同样,每个新的套接字都需要一个描述
符。客户端和服务器通过 TCP 套接字进行通信。在与服务器建立连接时,每个浏览器的 http 请求都使用 TCP 套接字。
一定要首先监视文件描述符并了解这些诊断方法如何告知您有关打开文件的状态和其它潜在问题。在针对操作系统逐步执行此故障排除部分之后,可能有必要增加文件描述符的数量.
监视文件描述符
解决方法指导原则
下面是一般指导原则和考虑事项:
- 确定文件描述符的总数是否太少或者某些文件描述符是否未被正确释放。
- 如果此数量有所减少,则应当增加文件描述符的最大数量,以防止该问题再次发生。
- 如果此数量一直增加,则应当确定某些描述符的处理时间是否过长(文件没有正确地关闭)以及所创建的文件是否过多(例如,驱动程序库一直为每个新的 JDBC 连接加载文件)。
- 加载 jar 文件还可能减少所使用的文件描述符的数量。每个 jar 文件都使用一个描述符,即使每个单独加载的单一类都将使用一个描述符时也是如此。
您可以使用下列指导原则来监视和诊断所有描述符如何由一个进程使用(这取决于您的操作系统)。
检查打开的文件
lsof -p <进程的 pid>
示例 1以下命令在 Solaris 2.7 启动 WLS 8.1SP1 后立即执行。它表明运行服务器的 Java 进程 (pid 390) 分配了 84 个文件描述符,此数量远小于文件描述符缺省的硬极限。
$ lsof -p 390 | wc -l
84 在异常出现之后可以执行此命令,以确保此 Java 进程达到了打开文件的最大数量。这将确认该进程缺乏文件描述符。 然后,您可以运行 $ lsof -p <pid> 并将输出结果重定向到某个文件以检查打开的每个文件。如果某个应当关闭的文件却出现在列表中,您可以探查此文件以前没有按照预期方式关闭的原因。 下面是 lsof 的输出结果片断: |
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29733 usera cwd VDIR 176,22 4096 4300274 /home/usera/810/user_projects/mydomain java 29733 usera txt VREG 176,22 36396 6642305 /home/usera/810/jdk141_02/bin/java java 29733 usera txt VREG 176,22 1251192 10818087 /home/usera/810/user_projects/mydomain/myserver/.wlnotdelete/extract/myserver_uddi_uddi/ jarfiles/_wl_cls_gen.jar java 29733 usera txt VREG 176,22 511935 10074851 /home/usera/810/user_projects/mydomain/myserver/.wlnotdelete/extract/myserver_uddi_uddi/ jarfiles/WEB-INF/lib/jsse39153.jar java 29733 usera txt VREG 176,22 2305960 6000676 /home/usera/810/user_projects/mydomain/myserver/.internal/uddi.war java 29733 usera txt VREG 176,22 1227013 1385413 /home/usera/810/weblogic81/common/eval/pointbase/lib/pbserver44.jar java 29733 usera txt VREG 176,22 653661 69379 /home/usera/810/weblogic81/server/lib/ant/ optional.jar |
lsof .h
显示所有可能的语法和选项。此程序的最新版本可在以下网址中找到:http://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/
。 文件描述符将用于每个套接字连接, lsof 还可以显示套接字的类型(TCP 或 UDP)以及监听地址和端口(位于名称列中)。 |
Windows 平台
Handle 在 WinNT 或 Windows 2000 上,命令行工具 handle 报告有关引用所打开文件的句柄的信息,如下例所示。此工具可用于特定进程, 它可从以下网址获得:http://www.sysinternals.com/ntw2k/freeware/handle.shtml 。 |
C:\tmp>ps -ef | grep java usera 1656 1428 0 10:11:41 CONIN$ 0:46 c:\Releases\WLS8.2\JDK141~1\bin\java -client -Xms32m -Xmx200m -XX:MaxPermSize=128m -Xverify:none -Dweblogic.Name=myserver -Dweblogic.ProductionModeEnabled= -Djava.security.policy="c:\Releases\WLS8.2\WEBLOG~1\server\lib\weblogic.policy" weblogic.Server |
C:\tmp>handle -p java Handle v2.10 Copyright (C) 1997-2003 Mark Russinovich Sysinternals - www.sysinternals.com ------------------------------------------------------------------------------ java.exe pid: 1656 ABCDEF\usera 18: File C:\Releases\WLS8.2\user_projects\domains\mydomain 170: File C:\Releases\WLS8.2\jdk141_05\jre\lib\rt.jar 178: File C:\Releases\WLS8.2\jdk141_05\jre\lib\sunrsasign.jar 180: File C:\Releases\WLS8.2\jdk141_05\jre\lib\jsse.jar 188: File C:\Releases\WLS8.2\jdk141_05\jre\lib\jce.jar 190: File C:\Releases\WLS8.2\jdk141_05\jre\lib\charsets.jar 328: File C:\Releases\WLS8.2\jdk141_05\jre\lib\ext\dnsns.jar 330: File C:\Releases\WLS8.2\jdk141_05\jre\lib\ext\ldapsec.jar 338: File C:\Releases\WLS8.2\jdk141_05\jre\lib\ext\localedata.jar 340: File C:\Releases\WLS8.2\jdk141_05\jre\lib\ext\sunjce_provider.jar 348: File C:\Releases\WLS8.2\jdk141_05\lib\tools.jar 350: File C:\Releases\WLS8.2\weblogic81\server\lib\weblogic.jar 358: File C:\Releases\WLS8.2\weblogic81\server\lib\jconn2.jar 360: File C:\Releases\WLS8.2\weblogic81\server\lib\ojdbc14.jar 368: File C:\Releases\WLS8.2\weblogic81\server\lib\xmlx.jar 370: File C:\Releases\WLS8.2\weblogic81\server\lib\webservices.jar 378: File C:\Releases\WLS8.2\weblogic81\server\lib\wlcipher.jar 3e0: File C:\Releases\WLS8.2\weblogic81\server\lib\ant\ant.jar 3e8: File C:\Releases\WLS8.2\weblogic81\server\lib\EccpressoJcae.jar 3f0: File C:\Releases\WLS8.2\weblogic81\server\lib\EccpressoCore.jar 3f8: File C:\Releases\WLS8.2\weblogic81\server\lib\EccpressoAsn1.jar 400: File C:\Releases\WLS8.2\weblogic81\server\lib\jConnect.jar 408: File C:\Releases\WLS8.2\weblogic81\server\lib\ant\optional.jar 410: File C:\Releases\WLS8.2\weblogic81\server\lib\ant\jakarta-oro-2.0.7.jar …. C:\tmp>handle -p java | wc -l 65 |
这表明在 Windows 上运行 WLS 8.1SP2 时使用了 65 个文件句柄。 |
Linux
管理用户可以在 etc/security/limits.conf 配置文件中设置他们的文件描述符极限,如下例所示。
hard nofile 4096
系统级文件描述符极限还可以通过将以下三行添加到
/etc/rc.d/rc.local
启动脚本中来设置:
echo 4096 > /proc/sys/fs/file-max
echo 16384 > /proc/sys/fs/inode-max
Windows
在 Windows 操作系统上,文件描述符被称作文件句柄。在 Windows 2000 服务器上,打开文件的句柄极限设置为 16,384。此数量可以在任务管理器的性能摘要中监视。
轉自:http://hi.baidu.com/bluesnake/blog/item/d267e350019a85591138c2f2.html
发表评论
-
Define a Security Policy(定义java安全策略)
2014-08-07 11:55 1481from:http://web.securityinnova ... -
Convert a .ppk file to .pub with PuttyGen
2012-03-12 14:55 1534Run “puttygen.exe”. The “PuTTY ... -
安裝memcached服務器時需要的libevent
2011-09-09 15:00 1347libevent下载地址:http://monkey.org/ ... -
Linux下的Memcache安装
2010-01-09 07:35 2281在一台64位Linux的机器上安装了MemCached,遇到一 ... -
Apache的ProxyPass指令详解
2009-12-10 16:33 4534原文地址:http://httpd.apache.org/do ... -
Configuring JBoss AS 5 JMS for MySQL
2009-07-12 08:05 1577Configuring JBoss AS 5 JMS for ... -
利用APR本地库提高Tomcat性能
2009-05-10 02:46 15122Tomcat可以使用APR来提 ... -
优化tomcat
2009-05-10 01:51 22841、安装jrockit JVM,Bea的JDK 2、测 ... -
apache和tomcat使用mod_proxy_ajp进行整合
2009-05-02 13:32 4627需求:apache和tomcat結合,在浏览器中打开网址 ... -
一篇建立NFS服務器的教程資料
2008-07-11 21:35 1469一篇建立NFS服務器的教程資料:http://linux.vb ... -
openVZ虚拟机的备份与恢复
2008-07-11 18:46 3114个人多openVZ虚拟机备份与恢复的一点总结: 一、備份 ... -
使用简单的 5 个步骤设置 Web 服务器集群
2008-07-10 02:42 2488使用 Linux Virtual Server 和 ... -
轻松实现Apache,Tomcat集群和负载均衡
2008-07-02 14:04 1552作者:罗代均 ldj_work#126.com,转载请保持完整 ... -
Apache安装配置与优化
2008-01-15 19:23 3135出處:http://www.blogjava. ... -
TOMCAT-5.5.X优化配置
2008-01-15 19:13 8380收集自:http://www.blogjava ... -
使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
2008-01-11 20:12 6518前几天总结了使用JSVC来设置tomcat作为linux服务并 ... -
linux中通過jsvc自动启动tomcat并且加載到服務中
2008-01-07 21:44 5852一直在找讓tomcat并且加載到 linux服務中的方法,有的 ... -
Tomcat性能调整
2007-12-28 19:47 1643收一下這篇文章 http://ww ...
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法,三种方案,临时,永久,根治
NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014
java.net.SocketException: Unrecognized Windows Sockets error: 0: no Inet4Address associated with interface 本文提供了在Win7或Vista系统下解决这个异常信息的办法。
java.net.SocketException Connection reset 解决方法
最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决
接口调用报错:java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
转:java.net.SocketException: Too many open files解决方法最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误...
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
Google I/O 2013推荐Android 网络通信框架Volley 下载下来后然后编译为jar包,再在自己的工程里import进来。
socket 文件同步
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站...
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ---> System.Net.Sockets.SocketException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ...
import java.net.SocketException; public class UDPServer { public static void main(String[] args) { try { byte [] buffer = new byte[1024]; DatagramSocket socket = new DatagramSocket(4444); ...
34. import java.net.SocketException; 35. import java.net.UnknownHostException; 36. import java.util.Date; 37. import java.util.Scanner; 38. import java.util.Stack; 39. import java.util.prefs....
System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 想到阿里云喜欢用安全组屏蔽端口,于是我就赶紧去配置了安全规则。进站出站都配置了,结果还是...
注意:由于压缩包大于15M,所以分两部分上传,这是第一部分!下载SSH2-1后,再解压这两个文件后就可用了。
1.解决服务器报错:java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind 2.解决Windows Server 2003/2008 R2系统BUG导致windows缓冲区已满(no buffer space),Windows...
syslog4j Syslog4j提供了BSD Syslog协议(RFC 3164)和“结构化syslog”协议草案(RFC Draft)的客户端和服务器实现。 警告 这是使用的重新打包的fork,因为原始软件包没有发布到Maven Central的最新版本。...
有时会抛出 java.net.SocketException: Invalid argument) Java 行家 运行upload.rb 配置 将 aws 凭据设置为 AwsCredentials.properties 具有标记列和别名列的 csv 文件。 令牌列应命名为“device_token”或...
Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) at ...