小编Zig*_*F2B的帖子

Linux使用运行Java GC的系统/内核CPU

索姆背景信息;

服务器;

具有130 GB Ram的新SLES 12服务器旨在为大型数据库(150G +数据)运行MySQL.

服务器还将托管一些Java应用程序.

Java版本(默认来自Oracle) - Java(TM)SE运行时环境(版本1.7.0-b147) - Java HotSpot(TM)64位服务器VM(版本21.0-b17,混合模式)

我们偶然发现了以下问题;

运行一些特定的Java应用程序会使kerne/system cpu峰值减慢/暂停应用程序一段时间.我通过制作一个Java应用程序来重现它,它只是随着时间的推移而占用内存并使用一些cpu.

调查显示在减速期间(10000-25000)有大量的中断.

每次放缓之后,Java都会获得更多内存.将Java设置为以固定内存开始似乎也可以减少问题(将-Xmx和-Xms设置为相同的值).详细垃圾收集也表明GC正在开始并可能成为触发器.

由于某种原因,GC和内存分配非常昂贵,我们不确定从这里查看.来自GC的详细信息:

[GC^C 1024064K->259230K(3925376K), 87,3591890 secs]
Run Code Online (Sandbox Code Playgroud)

在低端linux服务器上运行GC的同一程序(从SUN运行SLES,Java 1.6.0_11);

[GC 1092288K->253266K(3959488K), 3.0125460 secs]    
Run Code Online (Sandbox Code Playgroud)

在减速期间TOP:

top - 11:23:33 up 87 days, 19:55,  5 users,  load average: 14.27, 4.50, 10.17
Tasks: 250 total,  39 running, 211 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 71.8%sy,  0.0%ni, 28.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    129033M total,   128576M used,      457M free,     1388M buffers
Swap:    32765M total,       13M used,    32752M …
Run Code Online (Sandbox Code Playgroud)

java linux garbage-collection jvm

5
推荐指数
1
解决办法
1815
查看次数

标签 统计

garbage-collection ×1

java ×1

jvm ×1

linux ×1