【问题标题】:Jenkins Simple Installation using 3GB Ram使用 3GB 内存的 Jenkins 简单安装
【发布时间】:2019-08-04 18:26:43
【问题描述】:

我有一个在 Docker 下运行的 Jenkins 2.150,没有任何工作或额外配置,只需简单安装。

对我来说,3GB 的内存对于普通安装来说太多了。有什么技巧可以解决这个问题?

重要提示:我正在使用来自 docker hub 的图像 Jenkins/Jenkins

【问题讨论】:

  • 你在 Jenkins 启动时有错误吗?或者您是否需要调整您的 Jenkins 以使用 3GB 或更少的空间运行?
  • 我在启动时没有错误,我需要 Jenkins 运行小于 3GB
  • 如果您没有任何错误,您怎么知道它不起作用?我已经在 2Gb 上运行它而没有任何问题,用于少量作业
  • 正如我所说的对我来说很奇怪,一个没有任何工作的 Jenkins 使用 3GB 的 RAM,这太多了。我有一个朋友在 docker 下运行 jenkins,只使用 512MB 的内存。
  • 你说:“在 docker 下运行”。你的詹金斯在运行吗?您需要其他 docker 配置吗?

标签: jenkins


【解决方案1】:

由于 Jenkins 是一个 JAVA 应用程序,我们可以使用常用的 -Xmx -Xms -XX:MaxPermSize 参数来配置这个 java 进程的 RAM 使用率。 p>

在 docker 级别更改内存可能会抛出 Out of Memory 异常,因为 Jenkins 具有预先配置的内存限制。

更改 Jenkins 内存使用或限制

首先,您需要找到 Jenkins 属性文件。通常这是路径:

/etc/default/jenkins

如果没有人操纵你的 Jenkins,你会发现这个:

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"

取消注释并将 256 值更改为您需要的任何值。

# arguments to pass to java
JAVA_ARGS="-Xmx512m"

最后根据你的安装重启你的 Jenkins。在您提到 docker 的情况下,这就足够了

docker stop jenkins && docker start jenkins

更改java内存配置后,会遇到经典异常如:java.lang.OutOfMemoryError,必须配置合适的-Xmx -Xms -XX:MaxPermSize强>价值观


参考资料:

【讨论】:

    【解决方案2】:

    指定运行容器时的最大内存限制: https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory

    docker run -m 512m jenkins/jenkins
    

    512m = 512MB

    【讨论】:

    • 如果我这样做,我得到 OOM(内存不足)被杀死 - 退出 137 代码
    • 你在哪个主机上运行这个?主机的内存使用是否正常?检查您的主机内存使用情况并确保有可用内存并且其他容器没有全部消耗。
    • 我的主机没问题,我进入Docker Jenkins并执行“top”命令。我使用大约 3GB 的内存获得了 Java 进程
    • 哦,所以当你尝试我建议的命令时它还在运行?您可能必须重新启动该容器。您对容器的初始运行命令是什么?您正在为 jenkins_home 目录使用某种形式或持久存储,对吗?
    • 如果我使用你的命令,我会被 OOM 杀死。我正在使用 jenkins_home 的存储空间
    猜你喜欢
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2022-01-04
    • 2011-09-08
    相关资源
    最近更新 更多