专栏首页BigYoung小站Confluence(wiki)如何扩展内存

Confluence(wiki)如何扩展内存

背景:

Confluence 有一天晚上突然就不能访问了,前端页面提示502 。然后抓紧重启服务,一切恢复正常。第二天开始查看日志记录,翻看logs/catalina.out中的日志记录如下:

03-Dec-2018 01:03:05.107 WARNING [main] org.apache.catalina.core.StandardServer.await StandardServer.await: Invalid command '' received
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007a7400000, 83886080, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 83886080 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/atlassian/confluence/bin/hs_err_pid2084.log03-Dec-2018 19:45:07.267 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server} Setting property 'debug' to '0' did not find a matching property.

说是要让去/opt/atlassian/confluence/bin/hs_err_pid2084.log 下查看具体的错误内容,具体内容如下:

```

# 摘录了一部分日志记录:

# 部分一:

# 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 (os_linux.cpp:2627), pid=2084, tid=0x00007f89ff5d7700

# 部分二:

Memory: 4k page, physical 16333788k(136664k free), swap 0k(0k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.112-b15) for linux-amd64 JRE (1.8.0_112-b15), built on Sep 22 2016 21:10:53 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)

time: Mon Dec 3 19:37:07 2018

```

从第二个日志记录里,我们能看到提示内存不足的可能原因及处理方法。

解决办法:

先升级Confluence所在机器的物理内存。

重点

然后修改Confluence的VM中的内存配置,修改方法如下: 第一步:

关闭Confluence 和 Nginx 服务(如果有)

第二步:

找到Confluence安装路径下的/confluence/bin/setenv.sh 文件,修改文件中的如图选项:

修改前一定要备份文件

主要修改Xmx后的数字,根据你的Confluence版本不同,这个选项有略微不同,截图里显示了不同版本对应的配置选项。我的是Confluence6.1 ,所以我的配置是:CATALINA_OPTS="-Xms4096m -Xmx16384m -XX:+UseG1GC ${CATALINA_OPTS}"

这个Xmx 后的数字修改规则为,物理内存的一般,可以略微调大一点

第三步:

启动Nginx 和 Confluence 服务,如果服务正常,就可以使用了

检验方式可以在Confluence的后台【一般配置】系统信息里的Java 栈堆 看到内存扩展后的数据。也可以ps aux | grep java

提醒:

内存不足可能会引发Confluence一系列的问题,建议有问题,先排查内存问题

本文分享自微信公众号 - BigYoung小站(bigyoungs),作者:Young文人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Wiki(Confluence)系统会话失效导致Wiki服务不可用解决办法

    第一步:检查Confluence的内存是否充足 登录Confluence的管理页面,通过【一般配置】——>【管理-系统信息】,查Java VM 内存统计显示的内...

    BigYoung小站
  • Ldap3 库使用方法(一)

    ldap3是一个纯Python的LDAP管理库。 项目地址:(https://github.com/cannatag/ldap3) 指导文档:http://ld...

    BigYoung小站
  • Python 安装pyad库方法

    现在需要在Windows电脑上安装python,然后需要用到pyad这个库,安装这个库,我折腾了一下午,真是醉了自己了 方法: 1. 先到这个地址现在pyad的...

    BigYoung小站
  • 最最最常见的Java面试题总结——第二周

    String类中使用字符数组:private final char value[]保存字符串,所以String对象是不可变的。StringBuilder与Str...

    用户2164320
  • 2016 年 7 个最佳的 Java 框架

    毫无疑问,Java是目前最需要的编程语言之一。在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作。

    哲洛不闹
  • 2016 年 7 个最佳的 Java 框架

    毫无疑问,Java是目前最需要的编程语言之一。在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作。

    Java团长
  • 从CPU爆表问题排查谈Java性能监测之道

    记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm、jstack、jstat、jmap。

    净地
  • Java关键字——native

      本篇博客我们将介绍Java中的一个关键字——native。   native 关键字在 JDK 源码中很多类中都有,在 Object.java类中,其 ge...

    IT可乐
  • Java漫谈10

    原来的计划是这次谈谈Java中String的另一个特征——final,不过因为还在整理思路,就放在下一次聊,这次我想聊一聊Java被斯坦福除名之后,我知道这个消...

    用户1335799
  • Java基础学习笔记一Java介绍

    Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的。

    緣來

扫码关注云+社区

领取腾讯云代金券