2

我们有许多 Jenkins 作业可能会在 Jenkins slave 上执行。是否可以全局设置 Jenkins 任务的 nice 级别,以确保所有Jenkins 任务都以更高的 nice 级别执行?

4

1 回答 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 回答