我们有许多 Jenkins 作业可以通过 Jenkins 从属执行。是否可以全局设置 Jenkins 任务的 Nice 级别,以确保所有 Jenkins 任务都以更高的 Nice 级别执行?
最佳答案
是的,这是可能的。 “技巧”是用适当的好级别启动从属代理;在该从站上运行的所有 Jenkins 进程都将继承它。
Jenkins 通过 ssh 启动从属代理,有效地运行如下命令
cd /path/to/slave/root/dir && java -jar slave.jar
在 Jenkins 节点配置页面上,您可以定义一个“前缀启动从机命令”和一个“后缀启动从机命令”来获得此 Nice-d。设置如下:
- 前缀启动从命令:
nice -n -10 sh -c '
- 后缀启动从命令:
'
这样,从机启动命令就变成了
nice -n -10 sh -c 'cd "/path/to/slave/root/dir" && java -jar slave.jar'
这假设您的登录 shell 是 bourne shell。对于 csh,您将需要不同的语法。另请注意,如果您的从属根路径包含空格,这可能会失败。
我通常更喜欢“通过在主服务器上执行命令来启动从服务器
”,并从 shell 包装器中自己调用 ssh。然后,您可以选择密码和所选客户端,并且可以在没有前缀/后缀拼凑和空格陷阱的情况下完成设置。
关于jenkins - 如何用nice执行所有Jenkins从属任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719692/