我刚刚在 Windows 2012 Server \o/ 上安装了 Jenkins 2.46.2。它作为系统服务运行。
我创建了一个执行 Windows 批处理 (.bat) 脚本来构建代码项目的作业。此批处理会执行 2 个 mingw32-make.exe 命令来清理,然后从源代码构建完整的二进制文件。
在位于同一文件系统的计算机上手动执行批处理(与 Jenkins 作业使用的工作空间相同,本地磁盘 - 非网络磁盘),干净构建大约需要 50 秒。
但当由 Jenkins 执行时,该工作所需的时间要多出 20 倍以上!(约 19 分钟)。它成功终止,其行为与在 cmd.exe 中手动执行的行为相同。
正如我在文档中所读到的那样,我使用“-Xmx1024m -XX:MaxPermSize=512m”选项更改了 jenkins.xml 文件中 jvm 的启动参数,以提高性能。但它并不能解决任何问题:-(
此外,当我监控 CPU/磁盘/RAM 使用情况时,它们在构建时都保持非常低的水平,因此我推断机器的野蛮性能并不是原因。
无论我是否在 Jenkins 作业构建步骤中使用 call 语句调用批处理,都不会改变任何内容:作业始终持续 19 分钟。
有人能帮我调查为什么这么慢吗?
提前致谢 :)
我有类似的问题。我注意到 .bat 文件带有echo Hello World
跑得很快,没有任何问题。
但是,当我尝试从批处理脚本启动任何 grep.exe 时,即使没有输入文件,也需要 24 秒(在我的例子中)才能运行。如果手动启动,它会立即完成。
我使用 MSys 1.0 发行版中的 grep.exe 版本 2.5.4。
我的情况的解决方案相当出乎意料 - 我将 grep 更新到版本 2.24,现在,从 Jenkins 启动,处理超过 1 MB 的日志文件只需不到一秒钟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)