Java Dreared无法为对象堆保留足够的空间
我试着让Solr启动并运行,起初我让JDK.1.6运行得很好,然后tomcat也运行得很好。第一次尝试运行Solr时,我突然收到错误消息:Java Dreared无法为对象堆保留足够的空间,java,unix,memory-leaks,solr,Java,Unix,Memory Leaks,Solr,我试着让Solr启动并运行,起初我让JDK.1.6运行得很好,然后tomcat也运行得很好。第一次尝试运行Solr时,我突然收到错误消息: [root@78 bin]# ./java -version Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. 我删除了Tomcat,删除了J
[root@78 bin]# ./java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
我删除了Tomcat,删除了JDK并重新安装了最新的JRE,但即使在尝试获取Java版本号时,仍然会收到错误消息
top - 18:47:15 up 207 days, 13:50, 1 user, load average: 0.08, 0.03, 0.00
Tasks: 42 total, 1 running, 41 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.0%us, 0.2%sy, 0.0%ni, 94.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 786432k total, 376656k used, 409776k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
我得到的配置是:双CPU双核AMD Opteron 512MB RAM 40GB硬盘
我几乎是UNIX新手,所以任何帮助或建议都会非常有用,谢谢大家
正在运行的编辑进程包括:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 18 0 10332 636 600 S 0 0.1 0:08.28 init
1752 psaadm 15 0 176m 29m 17m S 0 3.9 0:03.76 httpsd
1785 psaadm 15 0 173m 24m 14m S 0 3.1 0:02.03 httpsd
5308 psaadm 15 0 174m 32m 21m S 0 4.2 0:02.70 httpsd
6107 apache 25 0 347m 47m 5616 S 0 6.2 1:48.26 httpd
11493 root 15 -4 12588 320 316 S 0 0.0 0:00.00 udevd
12105 root 15 0 60592 1224 676 S 0 0.2 0:00.00 sshd
13659 apache 15 0 345m 46m 4784 S 0 6.1 0:57.14 httpd
15855 root 15 0 21628 768 672 S 0 0.1 0:13.75 xinetd
15986 root 15 0 40848 592 536 S 0 0.1 0:00.38 couriertcpd
16086 root 18 0 33540 1184 1120 S 0 0.2 0:00.28 courierlogger
16117 root 21 0 40848 536 532 S 0 0.1 0:00.00 couriertcpd
16119 root 21 0 33544 1072 1068 S 0 0.1 0:00.00 courierlogger
16135 root 15 0 40848 592 536 S 0 0.1 0:03.09 couriertcpd
16137 root 18 0 33540 1184 1120 S 0 0.2 0:01.70 courierlogger
16154 root 18 0 40852 536 532 S 0 0.1 0:00.00 couriertcpd
16157 root 18 0 33540 1124 1120 S 0 0.1 0:00.00 courierlogger
16287 qmails 18 0 3832 512 428 S 0 0.1 2:03.49 qmail-send
16289 qmaill 18 0 3780 508 444 S 0 0.1 0:36.67 splogger
16290 root 18 0 3816 408 324 S 0 0.1 0:00.09 qmail-lspawn
16291 qmailr 17 0 3820 404 328 S 0 0.1 0:16.95 qmail-rspawn
16292 qmailq 18 0 3772 368 324 S 0 0.0 0:15.61 qmail-clean
17669 root 18 0 12592 1180 908 R 0 0.2 0:00.03 top
18190 root 15 0 318m 25m 9000 S 0 3.3 0:36.21 httpd
19687 apache 16 0 347m 47m 5764 S 0 6.2 1:10.59 httpd
19710 named 25 0 180m 2572 1744 S 0 0.3 0:03.06 named
19809 root 18 0 11908 1152 1148 S 0 0.1 0:00.01 mysqld_safe
20166 apache 15 0 347m 47m 5696 S 0 6.2 1:07.68 httpd
20340 mysql 15 0 303m 35m 5620 S 0 4.7 185:56.38 mysqld
23747 apache 15 0 412m 46m 5768 S 0 6.0 0:38.23 httpd
23791 root 15 0 166m 7504 4216 S 0 1.0 0:02.39 httpsd
23901 root 15 0 20836 616 548 S 0 0.1 3:37.38 crond
23926 root 18 0 46648 416 412 S 0 0.1 0:00.00 saslauthd
24084 root 18 0 46648 160 156 S 0 0.0 0:00.00 saslauthd
24297 root 15 0 96636 4032 3112 S 0 0.5 0:00.20 sshd
24302 root 18 0 12180 1804 1308 S 0 0.2 0:00.17 bash
24431 root 18 0 152m 1112 664 S 0 0.1 0:25.77 rsyslogd
24435 root 18 0 3784 336 332 S 0 0.0 0:00.00 rklogd
24537 apache 15 0 344m 45m 4364 S 0 5.9 0:35.93 httpd
顺便说一下,这是一个共享服务器
免费-m给了我:
total used free shared buffers cached
Mem: 768 367 400 0 0 0
-/+ buffers/cache: 367 400
Swap: 0 0 0
JVM在启动时需要一定数量的内存(我相信通过-Xms-default配置的内存是32m)。如果它不能得到它,它就不会启动
那么你的macine上还运行着什么呢?我怀疑您的计算机上几乎没有可用的虚拟内存 您是否设置了$JAVA\u选项
echo $JAVA_OPTIONS
下面的命令运行时是否没有错误
java -Xmx8m -version
只需要一次简单的重启,我一辈子都不明白发生了什么或为什么。第一个建议是:不要以root用户身份登录!我的理解是,您的机器有768MB的RAM,没有交换(?),400MB是免费的。因此,您肯定有足够的空间启动JVM。有些地方出了问题,不知道会是什么?我该从这里走到哪里?你对索尔到底走了哪一步?Java究竟是在什么时候开始失败的?我不明白事情如何运作,突然失败,事情应该是一致的。如果可能的话,尝试提供更多细节。首先安装JDK,然后安装Tomcat,两者都运行良好。然后简单地在solr示例文件夹中点击java-jar start.jar,然后在启动过程中失败了,java一直是一个哑弹。我现在删除solr文件夹,但不相信这会有什么作用。我怎么知道,这样我就可以告诉你了?你可以运行“top”并按内存使用情况排序。我记不起这是怎么回事了,但“男人至上”应该会有帮助。和/或“ps-fe”要获得内存消耗高达Java5的进程列表,Sun的JVM的默认-Xms值为2MB。对于Java 6,默认值是根据系统配置在运行时选择的。Java选项未设置否,我现在将设置它,但是Java-Xmx8m-version命令未运行。不要设置Java_选项,我只是想知道是否默认设置了一些参数。如果你不能用8m启动一个JVM,那么你真的有问题,但我不知道发生了什么。有时候这就是解决方案。。爪哇小精灵!有一件事我没有看到答案,那就是在启动时设置xms和xmx设置的建议。。如果我有一个专用服务器,我通常会设置这些服务器,这样我知道我的应用程序在启动时会获得所有内存。将来,使用一些专用于它的额外内存运行SOLR。32M的内存量非常小。我至少运行1024次。用256MB试试。