免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3813 | 回复: 11
打印 上一主题 下一主题

[服务应用] 有一高性能进程,接受200左右的节点请求。JAVA,用pmap观察此进程的内存不断增加65536M [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-17 14:26 |只看该作者 |倒序浏览
有一高性能进程,接受200左右的节点请求。JAVA,用pmap观察此进程的内存不断增加65536M
的anon 内存片,求解。。。。。

论坛徽章:
0
2 [报告]
发表于 2014-10-17 14:27 |只看该作者
实际堆与堆外内存设置:
-Xms512m -Xmx900m -XXermSize=64M -XX:MaxPermSize=128m

论坛徽章:
0
3 [报告]
发表于 2014-10-17 14:27 |只看该作者
00007fea80000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea84000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea88000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea8c000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea90000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea94000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea98000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007fea9c000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feaa0000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feaa4000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feaa8000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feaac000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feab0000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feab4000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feab8000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feabc000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feac0000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feac4000000  65536K  65536K  65536K  65536K      0K rw-p [anon]
00007feac8000000  65536K  65536K  65536K  65536K      0K rw-p [anon]

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
4 [报告]
发表于 2014-10-19 08:52 |只看该作者
对java不熟悉,你最好找有java经验的讨论,

貌似linux这边,运维的同学较多

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2014-10-20 13:48 |只看该作者
这个不用太担心,不出现OutOfMemory就行。我们一个设置 Xmx=2048m 的占用10G VIRT,反正RES又不高。
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
6087 root      20   0 9882m 1.1g  55m S  8.5  7.3   5:56.69    0 java
7462 root      20   0 10.7g 753m  10m S  0.0  4.7   0:17.34    0 java
23291 root      20   0 6735m 463m  10m S  0.7  2.9   0:30.03    0 java

论坛徽章:
0
6 [报告]
发表于 2014-10-20 15:06 |只看该作者
回复 5# Shell_HAT


    跟您说的问题感觉上不是同一个问题。RES占用内存当时也很高,虚拟内存达到5.9G,而占用内存RES达到4.9G,共享内存只有64.3M.
也就是说实际占用聂存在4.9G左右了。远远超过了堆内存的设置。我抓了家里一套真实问题版本的信息(模拟了200节点并发请求):

jstat -gccapacity 5116
NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC      PGCMN    PGCMX     PGC       PC     YGC    FGC
175104.0 307200.0 217088.0 3072.0 1024.0 191488.0   349696.0   614400.0   349696.0   349696.0  65536.0 131072.0  65536.0  65536.0    567     1
min新生代 max新生代 cur新生              当前伊甸   min老年代  max老年代  当前老年代

http://docs.oracle.com/javase/7/ ... l#gccapacity_option
-gccapacity Option
Memory Pool Generation and Space Capacities
Column        Description
NGCMN        Minimum new generation capacity (KB).
NGCMX        Maximum new generation capacity (KB).
NGC        Current new generation capacity (KB).
S0C        Current survivor space 0 capacity (KB).
S1C        Current survivor space 1 capacity (KB).
EC        Current eden space capacity (KB).
OGCMN        Minimum old generation capacity (KB).
OGCMX        Maximum old generation capacity (KB).
OGC        Current old generation capacity (KB).
OC        Current old space capacity (KB).
PGCMN        Minimum permanent generation capacity (KB).
PGCMX        Maximum Permanent generation capacity (KB).
PGC        Current Permanent generation capacity (KB).
PC        Current Permanent space capacity (KB).
YGC        Number of Young generation GC Events.
FGC        Number of Full GC Events.

------  感觉类似问题:
http://www.linkedin.com/groups/O ... -105986.S.107977309
http://www.dongliu.net/post/504141


论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2014-10-20 15:22 |只看该作者
回复 6# cuijiwei1989


你的日志里面有OutOfMemory吗?
生成一个heapdump看看JVM具体使用情况。
那个帖子里面说的设置MaxDirectMemorySize好使吗?

论坛徽章:
0
8 [报告]
发表于 2014-10-24 16:32 |只看该作者
回复 7# Shell_HAT


    遇到的这个问题, 做了下验证,不是MaxDirectMemorySize问题。
(多线程申请直接内存,默认是cpu数目*8个最多的64M,但是实际上环境是双核,事实证明不可能出现49个)
   请教了一些java专家。

   做了一些demo验证:
   发现:是JNI本地内存申请就会导致类似的内存泄露。
   应当属于 “JVM调用的OS的libc库中的泄露函数”导致。
---------------------------------------- 当前措施   ----------------------------------------

1. 找一与问题环境对齐的环境:
    部署内存申请函数的跟踪工具,予以跟踪问题进程。取用定时生成的内存-函数关系文件,综合分析哪些函数申请内存不释放,从而达到寻找到泄露源头的目的。

2. 参考开源Nagios监控处理,其对自身插件出现内存泄露进行重启处理予以故障恢复(防止堆外内存泄露情况导致OS内存持续消耗,导致其他进程异常甚至OS内存消耗殆尽等连带情况)。更新进程监控脚本,在status检查项中增加内存量检查,超过堆内存*2;予以记录并重启自愈。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2014-10-24 16:35 |只看该作者
回复 8# cuijiwei1989


    部署的什么跟踪工具?给大家分享一下吧

论坛徽章:
0
10 [报告]
发表于 2014-10-24 16:40 |只看该作者
回复 9# Shell_HAT


  原理:操作系统层面是使用c的malloc分配内存的,使用google:perftools
http://koven2049.iteye.com/blog/1142768
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP