haxqer / jira

The simplest docker file of JIRA. Support v9.17.0(latest) and v9.12.11(lts)
https://hub.docker.com/r/haxqer/jira
380 stars 225 forks source link

JIRA应用CPU利用率居高不下 #53

Open pygyme opened 5 months ago

pygyme commented 5 months ago

前一个Issue 有说明应用的内存占用情况, jira和confluence内存使用量限制为多少比较合适?,这边还有一个关于 CPU利用率 的问题。

jira版本 v9.4.15 , confluence版本 8.4.2-zh, mysql 8.0 。

Linux虚拟机CPU分配了8核, 应用启动之后, CPU利用率一直保持在 30% 左右,根本下不去。因为没有人访问应用,按理来说, CPU利用率不应该这么高。

问题排查

root@confluence:~# docker stats
CONTAINER ID   NAME                    CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
93914e7e5bb8   jira-srv                217.90%   1.979GiB / 5.789GiB   34.18%    66.5MB / 29MB     2.24GB / 946MB    233
690859a1e478   confluence-srv          14.91%    2.463GiB / 5.789GiB   42.55%    10.9MB / 10.3MB   1.53GB / 1.48GB   238
b73a11a2afc5   mysql-confluence-jira   10.21%    487.7MiB / 5.789GiB   8.23%     38.9MB / 76.6MB   408MB / 1.6GB     102

检查 /opt/jira/bin/setenv.sh 中的环境变量配置:

JVM_MINIMUM_MEMORY="384m"
JVM_MAXIMUM_MEMORY="2048m"

使用 docker stats 查看容器资源使用情况,发现 jira-srv CPU占用率为 217.90% , 说明是 jira-srv 的问题, 问题与 confluence-srvmysql 无关。 正常情况下, mysql 空载的CPU利用率也不会到 10%, 应该是受 jira-srv 的影响。

经过搜索发现,一篇相关博文, JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子, 情况及其相似。

我不确定,是否还有其他原因会导致CPU利用率居高不下。

我查看了仓库的issue, 没有发现有关于CPU利用率的, 可能大家只要能运行起来就没在意了,所以我在这里重提一个Issue。

jira应用 dockerfile 的修改建议:

关于建议1

关于 Dockerfile的37行 指定用户 ,一般来说,指定运行用户是因为容器安全问题, 在这里似乎没什么必要, 反而限制了灵活度。

关于建议2

因为要修改 /opt/jira/bin/setenv.sh 中的环境变量配置, Debian系统下面,我得有个 vim 或者 nano 这样的文本编辑器,容器里面没有就要自己安装,但是容器使用 jira 用户来运行,就没有权限通过 apt 命令来自己安装软件。

然后我不知道怎么修改环境变量配置了, 难道我要直接修改dockerfile,重新打镜像?

haxqer commented 5 months ago

提的建议,非常好,非常感谢。 农历年前我想办法处理下: https://github.com/haxqer/jira/issues/48#issuecomment-1869401581

公司业绩急剧下滑,老板盯着研发团队,一堆拍脑袋的需求要赶在农历年前实现,望谅解。 农历年前一定尽我所能的处理你提到的问题(开另外的分支)

haxqer commented 5 months ago

@pygyme 新的分支:

  1. 用户修改 env 即可升级
  2. 优化 https 的配置,方便使用
  3. 修复 JVM 的配置不生效的问题