linux - 为什么tomcat在初始化VM的时候一再报错

标签 linux

我从 godaddy 那里拿了一个虚拟专用服务器,这是我正在使用的 linux 版本

CentOS release 6.7 (Final)

我面临的问题是,当我尝试启动 tomcat 时,我看到以下错误

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.

所以我用谷歌搜索并创建了一个名为 named setenv.sh 的文件

export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"

/opt/apache-tomcat-7.0.65/bin/

但我仍然面临同样的错误

这是我的 ulimit -a 的输出

root@s97-74-229-181 [/opt/apache-tomcat-7.0.65/bin]# 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) 1029717
max locked memory       (kbytes, -l) 64
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) 1029717
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

你能告诉我如何解决这个问题吗

output of my ulimit commands

ulimit -S -u
1029717


ulimit -H -u
1029717

我的内存信息

root@s97-74-229-181 [/opt/apache-tomcat-7.0.65/bin]# cat /proc/meminfo
MemTotal:        1048576 kB
MemFree:          497752 kB
Cached:           212220 kB
Buffers:               0 kB
Active:           112208 kB
Inactive:         407020 kB
Active(anon):      27520 kB
Inactive(anon):   284700 kB
Active(file):      84688 kB
Inactive(file):   122320 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 4 kB
Writeback:             0 kB
AnonPages:        312220 kB
Shmem:              5212 kB
Slab:              31540 kB
SReclaimable:      16532 kB
SUnreclaim:        15008 kB

最佳答案

告诉您的主机将 privvmpages 和 vmguarpages 配置得更高。它们不需要与物理内存相同,因为这会影响 linux 内存的工作方式

您可以通过删除文件缓存 echo 1 >/proc/sys/vm/drop_caches 来暂时解决该问题,但这只是暂时的。

您可以限制 java 在运行时使用最小 Xms 或在运行时使用最大 Xmx 尝试分配的内存块。在我的机器上使用这些选项运行 java:

java -Xms10M -Xmx10M 将总虚拟大小减少到 140MB 左右,只为分配的 Java 堆分配了 10MB 的连续 block 。

关于linux - 为什么tomcat在初始化VM的时候一再报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33621678/

相关文章:

linux - docker build 无法连接到 http 服务器,即使它可以在命令行上访问

linux - 如何使用 xargs 复制名称中包含空格和引号的文件?

linux - 更改 DNS 缓存中的站点地址

python - 通过 Python 在 MPI_Init 中启动 Open MPI 时出错

linux - Nagios Network Analyzer在linux上安装报错

linux - 按机器名称浏览家庭 Intranet

linux - 是否可以使用 "kill"向进程发送信号而不强制进程退出?

linux - MAC .bash_profile : change directory string colors and file names by type

c - 如何查找已连接套接字使用的网络接口(interface)

linux - 如何在允许 Linux 中给定用户读/写的同时加密数据