- 浏览: 1051852 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
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 1521from:http://web.securityinnova ... -
Convert a .ppk file to .pub with PuttyGen
2012-03-12 14:55 1571Run “puttygen.exe”. The “PuTTY ... -
安裝memcached服務器時需要的libevent
2011-09-09 15:00 1394libevent下载地址:http://monkey.org/ ... -
Linux下的Memcache安装
2010-01-09 07:35 2333在一台64位Linux的机器上安装了MemCached,遇到一 ... -
Apache的ProxyPass指令详解
2009-12-10 16:33 4616原文地址:http://httpd.apache.org/do ... -
Configuring JBoss AS 5 JMS for MySQL
2009-07-12 08:05 1621Configuring JBoss AS 5 JMS for ... -
利用APR本地库提高Tomcat性能
2009-05-10 02:46 15243Tomcat可以使用APR来提 ... -
优化tomcat
2009-05-10 01:51 23711、安装jrockit JVM,Bea的JDK 2、测 ... -
apache和tomcat使用mod_proxy_ajp进行整合
2009-05-02 13:32 4688需求:apache和tomcat結合,在浏览器中打开网址 ... -
一篇建立NFS服務器的教程資料
2008-07-11 21:35 1501一篇建立NFS服務器的教程資料:http://linux.vb ... -
openVZ虚拟机的备份与恢复
2008-07-11 18:46 3168个人多openVZ虚拟机备份与恢复的一点总结: 一、備份 ... -
使用简单的 5 个步骤设置 Web 服务器集群
2008-07-10 02:42 2530使用 Linux Virtual Server 和 ... -
轻松实现Apache,Tomcat集群和负载均衡
2008-07-02 14:04 1582作者:罗代均 ldj_work#126.com,转载请保持完整 ... -
Apache安装配置与优化
2008-01-15 19:23 3173出處:http://www.blogjava. ... -
TOMCAT-5.5.X优化配置
2008-01-15 19:13 8410收集自:http://www.blogjava ... -
使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
2008-01-11 20:12 6628前几天总结了使用JSVC来设置tomcat作为linux服务并 ... -
linux中通過jsvc自动启动tomcat并且加載到服務中
2008-01-07 21:44 5904一直在找讓tomcat并且加載到 linux服務中的方法,有的 ... -
Tomcat性能调整
2007-12-28 19:47 1688收一下這篇文章 http://ww ...
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...
NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014
### 在Win7系统下抛出java.net.SocketException的解决办法 #### 问题背景及原因分析 在使用MyEclipse开发工具结合JBoss服务器进行项目开发的过程中,遇到一个常见但令人头疼的问题:当启动JBoss服务器时,控制台...
"java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...
Java中的`java.net.SocketException: Connection reset`是一个常见的网络编程错误,通常表示在TCP/IP通信过程中,连接突然中断。这个异常可能在客户端或服务器端发生,通常与数据传输的异常中断有关。 首先,我们来...
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
接口调用报错:java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
4. **java.net.SocketException: (Connection reset 或 Connect reset by peer: Socket write error)** 这两种异常都表示连接已断开。可能的原因是一端关闭了Socket,而另一端仍在尝试读写。处理这类异常需要检测到...
connection reset解决方案(亲测可用).md
在将Web服务器从Windows环境迁移到Linux环境后,遇到了一个常见的问题:“java.net.SocketException: Too many open files”。这种异常通常发生在高并发环境下,例如网站访问量显著增加时。在Windows环境中长时间...
在Java中使用FastDFS,首先需要在项目中引入FastDFS的Java客户端库。配置client.conf文件,设置tracker服务器的地址和其他相关参数。接着创建FastdfsClient和FastdfsUtil类,前者用于与FastDFS服务器通信,后者封装...
常见的问题
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 ...
```java RequestQueue queue = Volley.newRequestQueue(this); ``` 2. 创建Request对象:根据实际需求创建对应的Request子类,如StringRequest、JsonArrayRequest等。 ```java String url = ...
Hive是Apache软件基金会开发的一个开源大数据处理框架,它基于Hadoop,主要用于存储、管理和分析大规模数据集。下面我们将详细探讨Socket与Hive数据同步的相关知识点。 1. **Socket基础**: Socket是网络通信中的...
java.net.SocketException: Connection reset by peer: Socket write error 该异常可能发生在客户端和服务器端,原因是因为一端的 Socket 被关闭,而另一端继续发送数据。解决方法是确保在关闭连接前完成所有的数据...
3. 错误信息:当Socket连接池出现问题时,可能会出现错误信息,如"java.net.SocketException: No buffer space available (maximum connections reached?): listen failed"。 解决方法 要解决线程太多导致Socket...
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ---> System.Net.Sockets.SocketException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ...
错误展示: 我在本地是可以发送的但部署到服务器上后就不能...分析: 邮件发送相关端口 首先说下邮件发送的端口:25/465/587 25端口 25端口是为SMTP协议服务开放的,是这三个端口中最老的一个。25端口也称为消息中继端
“JMeterPlugins-Extras.jar”则更加专注于提供高级功能和特定场景的解决方案,其中包括: 1. **模块控制器**:Extras插件引入了模块控制器,允许用户在测试计划中重用已有的线程组,提高了测试计划的复用性和灵活...