2014-10-15 7 views
3

Я настраиваю новую машину. Я случайно случайно установил 32-битную Java, но я отключил ее, и я установил jdk-8u20-linux-x64.tar.gz (также использовал RPM).RHEL jdk-8u20-linux-x64.tar.gz 1.8 действует как 32bit

Этот аппарат имеет 132G или память, но я подозреваю, что начинаю 32-битное приложение Java, потому что оно всегда заканчивается или память в одном и том же месте, независимо от настройки -Xmx.

Я получаю свалку из java. Он жалуется, что у меня 0 ограничение по ядру, но большинство настроек ulimit неограниченны или велики.

Ошибка.log предполагает либо отсутствие физической памяти. или в 32-битном режиме. Я не могу поверить первому, но не могу доказать/опровергнуть последнее.

Программа управляет и массивом процессов. Он задыхается после вызова 12 java-процессов, каждый из которых сразу же считывает 2G данных в память.

Вот доказательство концепции приложения:

import java.util.*; 
import java.io.*; 
public class PrintProps { 

public static void main(String[] args) { 
for (String pname : System.getProperties().stringPropertyNames()) { 
    System.out.println(String.format("Key:%30s PropVal:%s", pname,   System.getProperty(pname))); 
} 
ArrayList<Process> alist = new ArrayList<Process>(); 

for (int i = 0; i < 50; i++) { 
    String[] jargs = new String[]{ 
    "java", 
    "-cp", 
    "/usr/sup/jars/jpsgcs-pipe-pathing.jar", 
    "jpsgcs.pipe.SGSPValue", 
    "-d=/export/home/raja/SGS/CLL_MM_MBL/CLL_MM_DC/chrom9/6211-CLL_only_9.Loci.ped", 
    "-p=/base/Human610Q/ld/chrom9/TF_H610Q_9.ld", 
    String.format("-f=/tmp/6211/10K.%d",i)}; 

    ProcessBuilder pb = new ProcessBuilder(jargs); 
     pb.directory(new File(".")); 
     pb.inheritIO(); 
    System.out.println(String.format("pbuilder %d ", i)); 
    try { 
    alist.add(pb.start()); 
    Thread.sleep(1000); 
    } 
    catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 
    } 
} 

TL/DR оповещения. К сожалению

Вот hs_err.log

# 
# There is insufficient memory for the Java Runtime Environment to continue. 
# Cannot create GC thread. Out of system resources. 
# Possible reasons: 
# The system is out of physical RAM or swap space 
# In 32 bit mode, the process size limit was hit 
# Possible solutions: 
# Reduce memory load on the system 
# Increase physical memory or swap space 
# Check if swap backing store is full 
# Use 64 bit Java on a 64 bit OS 
# Decrease Java heap size (-Xmx/-Xms) 
# Decrease number of Java threads 
# Decrease Java thread stack sizes (-Xss) 
# Set larger code cache with -XX:ReservedCodeCacheSize= 
# This output file may be truncated or incomplete. 
# 
# Out of Memory Error (gcTaskThread.cpp:48), pid=7938, tid=139841170798336 
# 
# JRE version: (8.0_20-b26) (build) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.20-b23 mixed mode linux-amd64 compressed oops) 
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again 
# 

--------------- T H R E A D --------------- 

Current thread (0x00007f2f48009000): JavaThread "Unknown thread" [_thread_in_vm, id=7940, stack(0x00007f2f4f3f7000,0x00007f2f4f4f8000)] 

Stack: [0x00007f2f4f3f7000,0x00007f2f4f4f8000], sp=0x00007f2f4f4f6680, free space=1021k 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V [libjvm.so+0xa76cea] VMError::report_and_die()+0x2ca 
V [libjvm.so+0x4e52fb] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b 
V [libjvm.so+0x5afaff] GCTaskThread::GCTaskThread(GCTaskManager*, unsigned int, unsigned int)+0x11f 
V [libjvm.so+0x5af068] GCTaskManager::initialize()+0x2c8 
V [libjvm.so+0x90697b] ParallelScavengeHeap::initialize()+0x32b 
V [libjvm.so+0xa44d0d] Universe::initialize_heap()+0xfd 
V [libjvm.so+0xa4512f] universe_init()+0x3f 
V [libjvm.so+0x612055] init_globals()+0x65 
V [libjvm.so+0xa2acdd] Threads::create_vm(JavaVMInitArgs*, bool*)+0x24d 
V [libjvm.so+0x6a9414] JNI_CreateJavaVM+0x74 
C [libjli.so+0x736e] JavaMain+0x9e 
C [libpthread.so.0+0x79d1] 


--------------- P R O C E S S --------------- 

Java Threads: (=> current thread) 

Other Threads: 

=>0x00007f2f48009000 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=7940, stack(0x00007f2f4f3f7000,0x00007f2f4f4f8000)] 

VM state:not at safepoint (not fully initialized) 

VM Mutex/Monitor currently owned by a thread: None 

GC Heap History (0 events): 
No events 

Deoptimization events (0 events): 
No events 

Internal exceptions (0 events): 
No events 

Events (0 events): 
No events 


Dynamic libraries: 
00400000-00401000 r-xp 00000000 fd:00 23069232       /usr/java/jdk1.8.0_20/bin/java 
00600000-00601000 rw-p 00000000 fd:00 23069232       /usr/java/jdk1.8.0_20/bin/java 
01648000-01669000 rw-p 00000000 00:00 0         [heap] 
80200000-d4200000 rw-p 00000000 00:00 0 
d4200000-580100000 ---p 00000000 00:00 0 
580100000-5aa100000 rw-p 00000000 00:00 0 
5aa100000-800000000 ---p 00000000 00:00 0 
32a4a00000-32a4a20000 r-xp 00000000 fd:00 11010054      /lib64/ld-2.12.so 
32a4c1f000-32a4c20000 r--p 0001f000 fd:00 11010054      /lib64/ld-2.12.so 
32a4c20000-32a4c21000 rw-p 00020000 fd:00 11010054      /lib64/ld-2.12.so 
32a4c21000-32a4c22000 rw-p 00000000 00:00 0 
32a4e00000-32a4e83000 r-xp 00000000 fd:00 11010116      /lib64/libm-2.12.so 
32a4e83000-32a5082000 ---p 00083000 fd:00 11010116      /lib64/libm-2.12.so 
32a5082000-32a5083000 r--p 00082000 fd:00 11010116      /lib64/libm-2.12.so 
32a5083000-32a5084000 rw-p 00083000 fd:00 11010116      /lib64/libm-2.12.so 
32a5200000-32a538a000 r-xp 00000000 fd:00 11010055      /lib64/libc-2.12.so 
32a538a000-32a558a000 ---p 0018a000 fd:00 11010055      /lib64/libc-2.12.so 
32a558a000-32a558e000 r--p 0018a000 fd:00 11010055      /lib64/libc-2.12.so 
32a558e000-32a558f000 rw-p 0018e000 fd:00 11010055      /lib64/libc-2.12.so 
32a558f000-32a5594000 rw-p 00000000 00:00 0 
32a5600000-32a5617000 r-xp 00000000 fd:00 11010062      /lib64/libpthread-2.12.so 
32a5617000-32a5817000 ---p 00017000 fd:00 11010062      /lib64/libpthread-2.12.so 
32a5817000-32a5818000 r--p 00017000 fd:00 11010062      /lib64/libpthread-2.12.so 
32a5818000-32a5819000 rw-p 00018000 fd:00 11010062      /lib64/libpthread-2.12.so 
32a5819000-32a581d000 rw-p 00000000 00:00 0 
32a5a00000-32a5a02000 r-xp 00000000 fd:00 11010076      /lib64/libdl-2.12.so 
32a5a02000-32a5c02000 ---p 00002000 fd:00 11010076      /lib64/libdl-2.12.so 
32a5c02000-32a5c03000 r--p 00002000 fd:00 11010076      /lib64/libdl-2.12.so 
32a5c03000-32a5c04000 rw-p 00003000 fd:00 11010076      /lib64/libdl-2.12.so 
32a6200000-32a6207000 r-xp 00000000 fd:00 11010066      /lib64/librt-2.12.so 
32a6207000-32a6406000 ---p 00007000 fd:00 11010066      /lib64/librt-2.12.so 
32a6406000-32a6407000 r--p 00006000 fd:00 11010066      /lib64/librt-2.12.so 
32a6407000-32a6408000 rw-p 00007000 fd:00 11010066      /lib64/librt-2.12.so 
32b5600000-32b5616000 r-xp 00000000 fd:00 11010100      /lib64/libnsl-2.12.so 
32b5616000-32b5815000 ---p 00016000 fd:00 11010100      /lib64/libnsl-2.12.so 
32b5815000-32b5816000 r--p 00015000 fd:00 11010100      /lib64/libnsl-2.12.so 
32b5816000-32b5817000 rw-p 00016000 fd:00 11010100      /lib64/libnsl-2.12.so 
32b5817000-32b5819000 rw-p 00000000 00:00 0 
7f2f32c00000-7f2f32ea0000 rw-p 00000000 00:00 0 
7f2f32ea0000-7f2f35400000 ---p 00000000 00:00 0 
7f2f35400000-7f2f356a0000 rw-p 00000000 00:00 0 
7f2f356a0000-7f2f37bff000 ---p 00000000 00:00 0 
7f2f37bff000-7f2f37d50000 rw-p 00000000 00:00 0 
7f2f37d50000-7f2f38fff000 ---p 00000000 00:00 0 
7f2f38fff000-7f2f39000000 rw-p 00000000 00:00 0 
7f2f39000000-7f2f39270000 rwxp 00000000 00:00 0 
7f2f39270000-7f2f48000000 ---p 00000000 00:00 0 
7f2f48000000-7f2f48039000 rw-p 00000000 00:00 0 
7f2f48039000-7f2f4c000000 ---p 00000000 00:00 0 
7f2f4e129000-7f2f4e39e000 rw-p 00000000 00:00 0 
7f2f4e39e000-7f2f4e39f000 ---p 00000000 00:00 0 
7f2f4e39f000-7f2f4e49f000 rw-p 00000000 00:00 0 
7f2f4e49f000-7f2f4e4a0000 ---p 00000000 00:00 0 
7f2f4e4a0000-7f2f4e5aa000 rw-p 00000000 00:00 0 
7f2f4e5aa000-7f2f4e960000 ---p 00000000 00:00 0 
7f2f4e960000-7f2f4e97a000 r-xp 00000000 fd:00 23069413     /usr/java/jdk1.8.0_20/jre/lib/amd64/libzip.so 
7f2f4e97a000-7f2f4eb7a000 ---p 0001a000 fd:00 23069413     /usr/java/jdk1.8.0_20/jre/lib/amd64/libzip.so 
7f2f4eb7a000-7f2f4eb7b000 rw-p 0001a000 fd:00 23069413     /usr/java/jdk1.8.0_20/jre/lib/amd64/libzip.so 
7f2f4eb7b000-7f2f4eb85000 r-xp 00000000 fd:00 11010081     /lib64/libnss_nis-2.12.so 
7f2f4eb85000-7f2f4ed84000 ---p 0000a000 fd:00 11010081     /lib64/libnss_nis-2.12.so 
7f2f4ed84000-7f2f4ed85000 r--p 00009000 fd:00 11010081     /lib64/libnss_nis-2.12.so 
7f2f4ed85000-7f2f4ed86000 rw-p 0000a000 fd:00 11010081     /lib64/libnss_nis-2.12.so 
7f2f4ed86000-7f2f4ed92000 r-xp 00000000 fd:00 11010077     /lib64/libnss_files-2.12.so 
7f2f4ed92000-7f2f4ef92000 ---p 0000c000 fd:00 11010077     /lib64/libnss_files-2.12.so 
7f2f4ef92000-7f2f4ef93000 r--p 0000c000 fd:00 11010077     /lib64/libnss_files-2.12.so 
7f2f4ef93000-7f2f4ef94000 rw-p 0000d000 fd:00 11010077     /lib64/libnss_files-2.12.so 
7f2f4efbc000-7f2f4efe6000 r-xp 00000000 fd:00 23069378     /usr/java/jdk1.8.0_20/jre/lib/amd64/libjava.so 
7f2f4efe6000-7f2f4f1e6000 ---p 0002a000 fd:00 23069378     /usr/java/jdk1.8.0_20/jre/lib/amd64/libjava.so 
7f2f4f1e6000-7f2f4f1e8000 rw-p 0002a000 fd:00 23069378     /usr/java/jdk1.8.0_20/jre/lib/amd64/libjava.so 
7f2f4f1e8000-7f2f4f1f5000 r-xp 00000000 fd:00 23069412     /usr/java/jdk1.8.0_20/jre/lib/amd64/libverify.so 
7f2f4f1f5000-7f2f4f3f5000 ---p 0000d000 fd:00 23069412     /usr/java/jdk1.8.0_20/jre/lib/amd64/libverify.so 
7f2f4f3f5000-7f2f4f3f7000 rw-p 0000d000 fd:00 23069412     /usr/java/jdk1.8.0_20/jre/lib/amd64/libverify.so 
7f2f4f3f7000-7f2f4f3fa000 ---p 00000000 00:00 0 
7f2f4f3fa000-7f2f4f4f8000 rw-p 00000000 00:00 0 
7f2f4f4f8000-7f2f50162000 r-xp 00000000 fd:00 23069417     /usr/java/jdk1.8.0_20/jre/lib/amd64/server/libjvm.so 
7f2f50162000-7f2f50361000 ---p 00c6a000 fd:00 23069417     /usr/java/jdk1.8.0_20/jre/lib/amd64/server/libjvm.so 
7f2f50361000-7f2f50438000 rw-p 00c69000 fd:00 23069417     /usr/java/jdk1.8.0_20/jre/lib/amd64/server/libjvm.so 
7f2f50438000-7f2f5047d000 rw-p 00000000 00:00 0 
7f2f5047d000-7f2f50492000 r-xp 00000000 fd:00 23069680     /usr/java/jdk1.8.0_20/lib/amd64/jli/libjli.so 
7f2f50492000-7f2f50691000 ---p 00015000 fd:00 23069680     /usr/java/jdk1.8.0_20/lib/amd64/jli/libjli.so 
7f2f50691000-7f2f50692000 rw-p 00014000 fd:00 23069680     /usr/java/jdk1.8.0_20/lib/amd64/jli/libjli.so 
7f2f50692000-7f2f50693000 rw-p 00000000 00:00 0 
7f2f506ae000-7f2f506b1000 rw-p 00000000 00:00 0 
7f2f506b1000-7f2f506b9000 rw-s 00000000 fd:00 12583065     /tmp/hsperfdata_rob/7938 
7f2f506b9000-7f2f506ba000 rw-p 00000000 00:00 0 
7f2f506ba000-7f2f506bb000 r--p 00000000 00:00 0 
7f2f506bb000-7f2f506bc000 rw-p 00000000 00:00 0 
7fff31e86000-7fff31e9b000 rw-p 00000000 00:00 0       [stack] 
7fff31eb9000-7fff31eba000 r-xp 00000000 00:00 0       [vdso] 
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0     [vsyscall] 

VM Arguments: 
java_command: jpsgcs.pipe.SGSPValue -b -d=/export/home/rob/SGS/CLL_MM_MBL/CLL_MM_DC/chrom9/6211-CLL_only_9.Loci.ped -p=/base/Human610Q/ld/chrom9/TF_H610Q_9.ld -n=400 -s=1 --dist=8 
java_class_path (initial): /usr/sup/jars/jpsgcs-pipe-pathing.jar 
Launcher Type: SUN_STANDARD 

Environment Variables: 
JAVA_HOME=/usr/java/jdk1.8.0 
CLASSPATH=/usr/sup/jars/jpsgcs-pipe-pathing.jar 
PATH=.:/usr/sup/apache-maven-3.1.1/bin:/usr/sup/groovy/bin:/home/work/toolshed/gradle-2.0/bin:/usr/sup/eclipse:/usr/sup/pgsql/bin:/export/home/rob/bin:/usr/sup/bin:/usr/java/jdk1.8.0/bin:/usr/bin:/bin:/usr/sbin 
USERNAME=rob 
SHELL=/bin/bash 
DISPLAY=:0.0 

Signal Handlers: 
SIGSEGV: [libjvm.so+0xa77530], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGBUS: [libjvm.so+0xa77530], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGFPE: [libjvm.so+0x8e1d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGPIPE: [libjvm.so+0x8e1d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGXFSZ: [libjvm.so+0x8e1d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGILL: [libjvm.so+0x8e1d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO 
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none 
SIGUSR2: [libjvm.so+0x8e35c0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO 
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none 
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none 
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none 
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none 


--------------- S Y S T E M --------------- 

OS:Red Hat Enterprise Linux Server release 6.5 (Santiago) 

uname:Linux 2.6.32-431.29.2.el6.x86_64 #1 SMP Sun Jul 27 15:55:46 EDT 2014 x86_64 
libc:glibc 2.12 NPTL 2.12 
rlimit: STACK 10240k, CORE 0k, NPROC 1024, NOFILE 4096, AS infinity 
load average:6.35 1.57 0.69 

/proc/meminfo: 
MemTotal:8656 kB 
MemFree:  109573200 kB 
Buffers:   71664 kB 
Cached:   2582360 kB 
SwapCached:   0 kB 
Active:   19304804 kB 
Inactive:  1990228 kB 
Active(anon): 18639784 kB 
Inactive(anon):  7724 kB 
Active(file):  665020 kB 
Inactive(file): 1982504 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
SwapTotal:  8208380 kB 
SwapFree:  8208380 kB 
Dirty:   138276 kB 
Writeback:    0 kB 
AnonPages:  18403024 kB 
Mapped:   168804 kB 
Shmem:    5968 kB 
Slab:    276284 kB 
SReclaimable:  137288 kB 
SUnreclaim:  138996 kB 
KernelStack:  14032 kB 
PageTables:  77708 kB 
NFS_Unstable:   0 kB 
Bounce:    0 kB 
WritebackTmp:   0 kB 
CommitLimit: 74262708 kB 
Committed_AS: 71622560 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:  518808 kB 
VmallocChunk: 34289913932 kB 
HardwareCorrupted:  0 kB 
AnonHugePages: 16584704 kB 
HugePages_Total:  0 
HugePages_Free:  0 
HugePages_Rsvd:  0 
HugePages_Surp:  0 
Hugepagesize:  2048 kB 
DirectMap4k:  65536 kB 
DirectMap2M:  4079616 kB 
DirectMap1G: 130023424 kB 


CPU:total 32 (8 cores per cpu, 2 threads per core) family 6 model 62 stepping 4, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, clmul, erms, ht, tsc, tscinvbit 



Memory: 4k page, physical8656k(109565180k free), swap 8208380k(8208380k free) 

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.20-b23) for linux-amd64 JRE (1.8.0_20-b26), built on Jul 30 2014 13:13:52 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8) 

time: Tue Oct 14 16:15:03 2014 
elapsed time: 0 seconds (0d 0h 0m 0s) 

ответ

4

Вы можете ударяли ограничение процесса OS пользователя (который из моих эмпирических исследований включает в себя Java темы). Достижение этого предела может проявляться в OutOfMemoryError.

На RHEL, есть:

/etc/security/limits.d/90-nproc.conf 

... который содержит ограничения пользователей. On RHEL6 (and CentOS6) "max user processes" is set to 1024 by default.

установка в unlimited Try:

# Default limit for number of user's processes to prevent 
# accidental fork bombs. 
# See rhbz #432903 for reasoning. 

*   soft nproc  unlimited 
root  soft nproc  unlimited 

This answer предполагает, что вы должны перезагрузить, чтобы эти изменения вступили в силу.

+0

Это похоже на трюк. Довольно озадачивает, так как моя предыдущая машина имеет тот же самый предел 1024 и не имеет такой же проблемы !? – rjs

-1

Я также получил тот же hs_err_pid * .log при обновлении JRE от JRE-6u45 до JRE-8u20 (дистрибутив сервера) в 64-разрядной операционной системе Linux.

У меня есть тестовый чехол для воспроизведения. Когда я запускаю несколько экземпляров этого тестового примера, на JRE-6u45 я никогда не получаю «недостаточную память для JVM» или hs_err_pid * .log. Тот же тестовый пример дает hs_err_pid * .log с недостаточной памятью на одном и том же m/c.

Затем я узнал, что я установил серверное распространение JRE-8u20 и JRE-6u45, которое у меня было с настольной версией. Чтобы подтвердить это, я установил настольную версию JRE-8u20 и никаких проблем сейчас.

Но я не понимаю первопричины - почему разница в черно-белом сервере и настольной версии. есть ли пределы памяти?