我们有许多 Jenkins 作业可能会在 Jenkins slave 上执行。是否可以全局设置 Jenkins 任务的 nice 级别,以确保所有Jenkins 任务都以更高的 nice 级别执行?
问问题
2422 次
1 回答
7
是的,这是可能的。“诀窍”是已经以适当的好级别启动从代理;在该从属服务器上运行的所有 Jenkins 进程都将继承它。
Jenkins 通过 ssh 启动从代理,有效地运行类似的命令
cd /path/to/slave/root/dir && java -jar slave.jar
在 Jenkins 节点配置页面上,你可以定义一个“Prefix Start Slave Command”和一个“Suffix Start Slave Command”来拥有这个 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,您将需要不同的语法。另请注意,如果您的从属根路径包含空白,这可能会失败。
我通常更喜欢“ Launch slave via execution of command on the Master
”,并从 shell 包装器中自己调用 ssh。然后你可以选择密码和客户端,并且设置 niceness 可以在没有前缀/后缀 kludges 和没有空格陷阱的情况下完成。
于 2016-06-09T09:43:05.997 回答