centos128m 内存就jdk只能用4m?

我有一个 专用主机 拿来玩的 。内存只有128m

顺利安装完jdk 后,查看jdk 是否安装正确
java -version

然后就是 报错 :

[root@duoduo ~]# java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
[root@duoduo ~]#

自己想可能是 默认参数 中 设置的内存过大 那样我自己设置个小点的启动参数
java -Xmx8m -version
Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
at java.lang.ref.Finalizer.(Finalizer.java:176)
8m 还不行!
java -Xmx4m -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
[root@duoduo ~]#
4m 正常了!
看看 还有多少内存可用
free
total used free shared buffers cached
Mem: 131072 12652 118420 0 0 0
-/+ buffers/cache: 12652 118420
Swap: 0

可见内存 是没有被其他程序占用的

然后 是不是 系统本身有限制
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 71680
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 71680
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

max memory size 已经设过不限制 stack size 也设置过1024 和10240 都 一样不行

没有办法了 不知道到底是什么原因 难道128m 就只能用4m!
现在看我 win7 4g 内存的系统
C:\Users\Lenovo>java -Xmx1024m -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)

C:\Users\Lenovo>

如果你用虚拟机,更加要用netbsd,只要流量和压力大,你的centos平均每个星期就要重启一次,而BSD系列的每个季度才重新启动一次

我强烈建议你安装freebsd

因为freebsd对硬件要求极低,比LINUX稳定,然后上面有现成的JDK包,很方便的。
freebsd精简后的netbsd能跑在烤面包机上,是目前最好的免费UNIX系统,跑在了新浪、网易等各大网站里

而且你的centos最好不要安装图形界面........