中的job
在打包时,总是提示Too many open files
,通常是因为系统中允许打开的文件句柄数量超过了限制。要解决这个问题,您可以按照以下步骤增加系统和 Jenkins 允许的最大文件数:
1. 检查当前系统的文件限制
您可以使用以下命令查看当前系统中每个用户允许打开的文件数:
ulimit -n
2. 临时增加文件句柄限制
您可以使用以下命令临时增加最大文件数限制(例如设置为 65535):
ulimit -n 65535
此更改仅在当前会话中有效。如果重新启动系统或 Jenkins 服务,此设置会恢复。
3. 永久修改文件句柄限制
要永久增加文件句柄限制,可以修改系统配置文件:
(1) 修改 /etc/security/limits.conf
编辑文件 /etc/security/limits.conf
,添加以下内容:
* soft nofile 65535 * hard nofile 65535
这将为所有用户设置文件句柄限制为 65535。您可以根据需要调整值。
(2) 修改 /etc/sysctl.conf
为系统全局设置文件句柄限制,编辑文件 /etc/sysctl.conf
,添加以下内容:
fs.file-max = 65535
然后执行以下命令使配置生效:
sudo sysctl -p
4. 配置 Jenkins 服务文件(systemd)
如果 Jenkins 通过 systemd 启动,您还需要修改其服务配置:先看一下jenkins的进行
[root@wulaoer.org ~]# ps -ef | grep java root 18226 1 99 11:33 ? 00:00:24 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080 root 18316 1545 0 11:34 pts/0 00:00:00 grep --color=auto java [root@wulaoer.org ~]# cat /proc/18226/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 15072 15072 processes Max open files 4096 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 15072 15072 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
(1) 编辑 Jenkins 的 systemd 服务文件
编辑 Jenkins 的 systemd 服务文件,通常位于 /etc/systemd/system/jenkins.service
。在 [Service]
部分添加以下内容:
LimitNOFILE=65535
(2) 重新加载并重启 Jenkins
执行以下命令重新加载 systemd 配置,并重启 Jenkins:
sudo systemctl daemon-reload sudo systemctl restart jenkins
重启后查看一下jenkins的进程信息
[root@wulaoer.org ~]# cat /proc/18495/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 15072 15072 processes Max open files 65535 65535 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 15072 15072 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
5. 重启后生效
重启系统或者 Jenkins 后,新的文件句柄限制将生效。如果问题依旧存在,您可以检查 Jenkins 日志,确保设置已成功应用。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏