似乎我被困在linux服务器上为我的java vm分配内存了。
我使用这个命令来测试:
java -Xmx9g -Xms6g -d64 -server服务器上的内存:
[root@….~]$ free -m
total used free shared buffers cached
Mem: 16017 1058 14958 1 41 758
-/+ buffers/cache: 259 15758
Swap: 1498 0 1498Ulimit设置:
core file size (blocks, -c) 1
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 128053
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 64000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 128053
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimitedLinux是11 (x86_64)。
Java版本:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)我发现它实际上仍然适用于-Xmx8330m,但不再适用于-Xmx8331m。我不知道这里发生了什么,为什么我被限制在这个特定的内存分配上?
编辑:确切的错误消息是:
root@…..:/root> java -d64 -Xmx9g -server
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.谢谢!印第
发布于 2015-08-31 07:28:42
只是一个更新,以供将来参考:我现在已经将交换空间更改为8Gb,现在它没有出现任何问题。因此,在分配堆时,JVM似乎在以某种方式计算交换空间。
干杯,印第
https://stackoverflow.com/questions/32249215
复制相似问题