惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LINUX DO - 最新话题
Recorded Future
Recorded Future
月光博客
月光博客
博客园 - 【当耐特】
博客园 - 叶小钗
宝玉的分享
宝玉的分享
量子位
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Vercel News
Vercel News
L
LangChain Blog
B
Blog
Y
Y Combinator Blog
爱范儿
爱范儿
GbyAI
GbyAI
S
Security @ Cisco Blogs
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
博客园 - Franky
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
C
Cisco Blogs
Scott Helme
Scott Helme
I
Intezer
T
The Exploit Database - CXSecurity.com
MyScale Blog
MyScale Blog
T
Tor Project blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Troy Hunt's Blog
N
News and Events Feed by Topic
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Security Affairs
Cyberwarzone
Cyberwarzone
PCI Perspectives
PCI Perspectives
小众软件
小众软件
D
DataBreaches.Net
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
Forbes - Security
Forbes - Security
S
Securelist
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
The Last Watchdog
The Last Watchdog

吴润写字的地方

从零构建 A 股 ETF 动量轮动系统:一个量化新手的完整指南 2025 年 8 月 Digest 2025 年 7 月 Digest 2025 年 6 月 Digest 2025 年 5 月 Digest 2025 年 4 月 Digest 清明桐庐行 2025 年 3 月 Digest 2024 年终总结 换车 崇明岛一日游 夜游徐汇滨江绿地 2023 年终总结 踏春之浦康休闲公园 香港澳门行 读「投资第一课」有感 皮皮玩球 Chrome 插件推荐 Go 并发之道:并发介绍 The Night Agent 我是如何使用 ChatGPT 的 2022 年终总结 在 Ubuntu 上搭建 MinIO 2021 年终总结 Golang 不可寻址的理解 Golang 的 defer 关键字使用注意事项 恭王府 强制删除 k8s terminating 状态命名空间 PromQL 计算 CPU 使用率 PromQL 如何计算变化(率) Trickster 使用 奥森的向日葵 Go Modules - checksum mismatch 错误解决 CDN 使用初探 k8s 介绍 再探 798 解决 gin 路由冲突问题 wu.run 域名正式使用 GoLand 使用指南 macOS 软件推荐 2020 这一年 Python 循环列表删除元素的注意事项 Mac 下的定时任务工具:Launchctl Linux 服务器搭建 VNC 可视化桌面 遇见 Aamir Khan Hexo 从 GitHub 到阿里云 『从未说出口的秘密』词云分析 768 的秋天 北戴河 Outing 飞盘记 三里屯夜景 爬虫图解:轮子哥关注了哪些人 2017-06-30 GitHub+Hexo 搭建个人网站详细教程 特朗普税改 如果有一天,苹果和微信只能选一个,你会选哪一个? About | 吴润写字的地方 Links | 吴润写字的地方 Memos | 吴润写字的地方
Jenkins 个别 job 页面打开超时的解决方法
2018-12-28 · via 吴润写字的地方

背景

最近公司移动端使用的的持续集成系统 Jenkins 打开某些 job 页面 报出 504 超时错误。

而 Jenkins 其他页面都是正常的,可以快速访问,为了临时解决这个超时问题,只是重启了 Jenkins 服务,重启后,该 job 页面可以正常访问。过了几天,又发现了另一个 job 页面打开也是 504 超时,而其他的 Jenkins 页面也都是正常的。

解决步骤

登上 Jenkins 所在的机器,查看了 Jenkins 的日志,并没有发现错误异常。

查看 Nginx 的日志,发现:upstream timed out (110: Connection timed out) while reading response header from upstream

修改 Jenkins 服务的 Nginx 配置,添加了 proxy_read_timeout 180s;proxy_send_timeout 180s; 设置了后端服务响应请求和传回数据的时间为 3 分钟。

重新加载 Nginx 配置:nginx -s reload

再次打开 504 的页面,原来请求时长一分钟后请求不到数据直接报错,这个时候并没有报错,而是一直等待请求响应,在将近两分钟的时候,页面成功访问。

虽然打开了原本 504 的页面,但并没有解决实质性问题。为了彻底解决这个问题,重新审视前后两个出现 504 错误的 job,发现构建的总次数都接近 2W+,猜测可能构建的次数较多导致的。但是,查看了其他的 job,也有总构建次数达到 2W+ 的,但打开页面并没有出现 504。

再次登上 Jenkins 所在的机器上,查看两个超时 job 的 builds 目录, 发现两个 job 的 builds 目录下都含有所有的历史构建的目录。然后我又查看了其他构建总次数在 2W+ 并且可以正常访问的 job 的 builds 目录,发现只包含几十个历史构建的目录。

因此,推测两个打不开的 job 不是因为构建总次数过多,而是保留了所有的构建历史,导致打开时加载非常缓慢,以至于出现超时。

解决方法是将超时的 job 配置项中勾选 『丢弃旧的构建』,可以选择『保持构建的天数』或者『保持构建的最大个数』,不再保留更早的构建历史记录,比如我选择的是『保持构建的最大个数』为 20 个,即只保留 20 个最近构建的记录。

配置好后,原本 504 的页面可以正常访问。

其他

为了防止其他潜在的 job 由于构建总次数过多且没有设置丢弃旧的构建导致以后打开超时,进入到 Jenkins 的 jobs 目录下,执行如下命令

for d in `ls`; do if [ -e $d/builds ]; then echo $d `ls $d/builds -lR | grep "^d" | wc -l`; fi; done

这条命令将遍历所有的 job 目录,在每个 job 目录中统计 builds 目录下的历史构建目录有少个,这样就可以发现有哪些 job 明显的构建总次数过多且没有设置丢弃旧的构建,将它们挨个配置『丢弃旧的构建』,排除潜在的超时风险。