Linux服务器Socket资源泄露导致无法连接的问题 迷南。 2022-06-18 05:42 322阅读 0赞 查看当前进程的堆使用情况: \# jmap -histo:live 14416 | less num \#instances \#bytes class name \---------------------------------------------- 1: 260861 29216432 java.net.SocksSocketImpl 2: 268685 28249496 \[B 3: 1332147 21314352 java.lang.Object 4: 278044 16152952 \[Ljava.lang.Object; 5: 260854 12520992 java.net.SocketInputStream 6: 260854 12520992 java.net.SocketOutputStream 7: 123610 11274280 \[C 8: 262744 10509760 java.lang.ref.Finalizer 9: 260899 8348768 java.io.FileDescriptor 10: 260855 8347360 java.net.Socket 11: 270081 6481944 java.util.ArrayList 12: 121312 3881984 java.util.HashMap$Node 13: 122592 2942208 java.lang.String ...... \# jmap -histo:live 31312 | grep Socket 1000ms统计一次gc情况,一共统计100次。下面两条命令,前者统计的是k字节,后者统计的是百分比: \# jstat -gc 14416 1000 5 \# jstat -gcutil 14416 1000 5 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 75.51 0.00 63.93 6.01 97.30 96.50 258 108.940 7 2.067 111.007 75.51 0.00 71.94 6.01 97.30 96.50 258 108.940 7 2.067 111.007 75.51 0.00 81.93 6.01 97.30 96.50 258 108.940 7 2.067 111.007 75.51 0.00 89.92 6.01 97.30 96.50 258 108.940 7 2.067 111.007 75.51 0.00 97.91 6.01 97.30 96.50 258 108.940 7 2.067 111.007 查看三代使用情况: \# jstat -gccapacity 14416 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 1638400.0 1638400.0 1638400.0 382464.0 381440.0 874496.0 3276800.0 3276800.0 3276800.0 3276800.0 0.0 1112064.0 70104.0 0.0 1048576.0 8448.0 270 7 查看堆的使用状况信息: \# jmap -heap 14416 Attaching to process ID 14416, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.77-b03 using thread-local object allocation. Parallel GC with 8 thread(s) Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 5033164800 (4800.0MB) NewSize = 1677721600 (1600.0MB) MaxNewSize = 1677721600 (1600.0MB) OldSize = 3355443200 (3200.0MB) NewRatio = 2 SurvivorRatio = 8 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 0 (0.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 937426944 (894.0MB) used = 75179160 (71.6964340209961MB) free = 862247784 (822.3035659790039MB) 8.019735349104709% used From Space: capacity = 370147328 (353.0MB) used = 368914224 (351.8240203857422MB) free = 1233104 (1.1759796142578125MB) 99.66686129907711% used To Space: capacity = 370147328 (353.0MB) used = 0 (0.0MB) free = 370147328 (353.0MB) 0.0% used PS Old Generation capacity = 3355443200 (3200.0MB) used = 2391475280 (2280.6885528564453MB) free = 963967920 (919.3114471435547MB) 71.27151727676392% used 33058 interned Strings occupying 3315272 bytes. Linux系统的最大文件句柄数(Linux下一切皆文件),系统默认1024个,ulimit -n 可查看用户级的。当存在句柄泄露没有释放时,系统会报错:Too many open files。 当前shell的用户级限制 \# ulimit -n \[cnt\] 查看/设置当前shell的当前用户所有进程最大能打开的最大文件数。 设置所有shell的用户级限制 /etc/security/limits.conf root soft nofile 4096 root hard nofile 4096 修改文件,可设置所有shell的当前用户所有进程最大能打开的最大文件数,比如一个用户登录多个shell,该用户的所有shell打开的最大数限制受此限制。 设置系统级限制 查看整个系统的最大文件句柄数限制(非用户级别的): \# cat /etc/sysctl.conf fs.file-max=2000000 \#限制整个系统最大文件句柄数 如果要修改以后,需要执行下面命令,使配置生效: \# sysctl -p 查看Linux系统打开的文件句柄数: \# lsof -n | awk '\{print $2\}'| sort | uniq -c | sort -nr 3009 31312 15 7364 14 8002 14 7777 14 7382 14 665 14 6308 ... 第一列:进程打开的文件句柄数 第二列:PID 如果没有该命令,可以用yum安装:yum install -y lsof
相关 资源泄漏问题:关闭数据库连接时忘记操作,导致资源浪费 是的,你提到的问题在编程中被称为"资源泄漏"。具体到关闭数据库连接的情况,如果使用了编程语言(如Java、Python等)的数据库连接池,那么通常会有一个自动回调机制来关闭未使 柔情只为你懂/ 2024年09月10日 03:27/ 0 赞/ 16 阅读
相关 远程连接Linux服务器无法连接解决办法 1.查看SSH是否安装(检查是否装了SSH包) 输入命令:rpm -qa | grep ssh 如下如所示系统已经默认安装了SSH: 远程连接Linux服务器无法连 冷不防/ 2023年01月16日 04:55/ 0 赞/ 223 阅读
相关 Linux服务器Socket资源泄露导致无法连接的问题 查看当前进程的堆使用情况: \ jmap -histo:live 14416 | less num \instances \bytes clas 迷南。/ 2022年06月18日 05:42/ 0 赞/ 323 阅读
相关 本地无法连接linux服务器mysql(10060) 可能的原因: 1、linux防火墙未加3306端口 2、关闭firewalld防火墙:systemctl stop firewalld,systemctl disable 港控/mmm°/ 2022年06月12日 06:57/ 0 赞/ 537 阅读
相关 linux网络无法连接问题 ping时报name or service not known错误,表示网络连接未连接上,解决方案如下: 1 首先 添加dns服务器 vi /etc/resolv.conf 比眉伴天荒/ 2022年06月03日 10:16/ 0 赞/ 233 阅读
相关 SecureCRT无法远程连接服务器的问题 一、linux系统远程连接的原理 二、常见的问题解决方案 1)问题一: The remote system refused the connection 解决 清疚/ 2022年05月19日 07:52/ 0 赞/ 454 阅读
相关 服务器无法远程连接问题 今天linux 下安装redis 远程一直无法连接,找了好久才从坑里出来 1.先查看防火墙开启状态 未开启的先开启 开启:systemctl start firewal 淡淡的烟草味﹌/ 2022年04月25日 05:00/ 0 赞/ 517 阅读
相关 linux服务器因磁盘空间满导致oracle数据库无法连接问题探索 记录一下程序连不上库问题解决过程: 此前没接触过linux,所以过程比较繁琐 首先我部署在linux服务器上的项目莫名其妙连不上oracle库了,用plsql连接报这个: 太过爱你忘了你带给我的痛/ 2022年02月12日 11:11/ 0 赞/ 1008 阅读
相关 阿里服务器,问题一:Mysql无法连接 今天将代码迁移到阿里共享虚拟机里面,然后却无法显示数据库内容,由于在本地是没有问题的,所以猜测是无法连接到数据库,于是就使用log记录了一下,log内容如下: 201 朱雀/ 2021年06月24日 16:10/ 0 赞/ 388 阅读
还没有评论,来说两句吧...