My JBoss server hits a 100% SYS processor on Linux; what can cause this?

We debugged this problem for a long time on the JBoss server. After about 10 hours of operation, the server switches to 100% processor panic attacks and just stalls. During this time, you cannot run any new programs, so you cannot even kill -quitget a stack trace. This high 100% SYS processor loads the last 10-20 seconds and repeats every few minutes.

We have been working for quite some time. We suspect that this has something to do with the GC, but cannot confirm it with a smaller program. We work on i386 32bit, RHEL5 and Java 1.5.0_10 with -clientand ParNew GC.

Here is what we have tried so far:

  • We have limited the proximity of the processor so that we can actually use the server when reaching high load. With stracewe see an infinite loop SIGSEGV, and then return sig.

  • We tried to reproduce this with a Java program. It is true that the SYS% processor rises high with WeakHashMapor when accessing null pointers. The problem was that it fillStackTracetook up a lot of user CPU%, and therefore we never reached the 100% SYS processor.

  • We know that after 10 hours of stress, the GC goes crazy, and a full GC sometimes takes 5 seconds. Therefore, we assume that this has something to do with memory.

  • jstack . pstack MarkSweep , . SIGQUIT : Java SYS%.

, Sun.

, , . , , :)

.

+3
5

.

( java-) JDK 1.6, . 1.5.0.10:)

, ( SYS US Linux.)

, .

+1

, GC ( ), -XX: + HeapDumpOnOutOfMemoryError JBoss ( JBOSS_HOME/bin/run.conf).

. Java 6, back-ported Java 1.5.0_07.

, " ", OutOfMemoryError, . Eclipse Memory Analyzer.

"" , , .

+1

. , . , GC

0

JBoss (JBoss 4, Linux 2.6) . , , . "kill -3" , - , . , , , , . 'lsof', , ; , , .

, JBoss -client -server? ( , , , ).

0

-verbose: gc, GC stdout. pipe stdout , gc.

, JBoss Windows . 100%, Windows , 2,5 , , JBoss, . . , Apache Commons.

, - JProbe .

0
source

Source: https://habr.com/ru/post/1704899/


All Articles