• DevOps
  • jenkins持续构建中maven-agent的内存消耗多少呢?

shaowenchen 非常感谢,脱敏处理需要一些时间,您可以将您目前的测试用的jenkinsfile给我一份吗?我试一下看看效果。

shaowenchen
我在持续集成服务中通过jenkinsfile构建了一个新的持续集成项目。

jenkinsfile如下:

pipeline {
agent {
node {
label ‘maven’
}

}
stages {
stage(‘echo’) {
steps {
echo ‘hello’
}
}
stage(‘print’) {
steps {
script {
print “hello”
}

  }
}

}
}

系统运行后结果如下:

切换stage消耗了太多时间

shaowenchen 根据前一个记录我对jenkinsfile进行了调整,在第一个stage中执行script,
jenkinsfile如下:

pipeline {
  agent {
    node {
      label 'maven'
    }

  }
  stages {
    stage('echo') {
      steps {
        echo 'hello'
        
        script {
          print "hello"
        }
      }
      
    }
    stage('print') {
      steps {
        script {
          print "hello"
        }
      }
    }
  }
}

其他不变,耗时情况如下


单纯的echo和print就已经达到2秒以上,感觉速度不尽人意。急需要对jenkins执行指令的速度进行加速。另外切换stage所带来的时间开销如何进行优化,毕竟写脚本的时候不希望眉毛胡子都放在一个坑位里。

shaowenchen 修改node的label为base如下:

pipeline {
  agent {
    node {
      label 'base'
    }
  }
  stages {
    stage('echo') {
      steps {
        echo 'hello'
        script {
          print "hello"
        }
      }
      
    }
    stage('print') {
      steps {
        script {
          print "hello"
        }
      }
    }
  }
}

持续集成构建时间如下:

发现使用base的响应速度依然没有什么明显提升

shaowenchen 目前系统内采用了比较多的groovy脚本,每个脚本命令都执行时间超过了30秒钟 ,要么就是砍脚本内执行的命令行数,要么就是执行手动打包控制,当然最优解依然是jenkins性能优化。毕竟手动打包发布会出问题。

    gfppower

    我在3个节点的集群上,用你的例子,执行挺快的。

    在构建时,去Jenkins 后台看看构建 console 的实时输出,观察一下哪里卡住了。检查一下集群的资源配置是否充足,有没有安全或保护性的限制。

      shaowenchen 感谢回复,请问执行脚本是在ks-jenkins里还是agent里呀,例如我写的这个,并没有steps中带container (‘maven’),那么它是不是就是在ks-jenkins里执行的呢?

      shaowenchen 请教一下我的jenkins不知道具体什么原因在邀请成员到该工程,报错

      返回为:
      recover from panic situation

      可以推测一下什么原因吗?

      已经发现主要原因是我们的集群的外部挂载存储影响了速度,使用宿主机磁盘后打包速度很快,

      shaowenchen 请教一下,持续集成服务用户丢失该怎么处理,删除成员也失败,

      返回:
      recover from panic situation

      shaowenchen 请教一下在jenkins日志中发现

      No valid crumb was included in request for /job/project-MmqA4D4q8ARw/ajaxExecutors by admin. Returning 403.
      怎么修复呢?

      • Jeff 回复了此帖

        gfppower 看下ks-apiserver的日志,里面应该有上面api调用失败的日志

          Jeff 我使用的版本是2.1.1的 只有ks-jenkins服务,该怎么看呢?

          • Jeff 回复了此帖

            Jeff 感谢回复
            我查看了异常问题,报错如下:

            E1204 04:50:45.646951 1 project_credential_handler.go:403] Error 1205: Lock wait timeout exceeded; try restarting transaction
            E1204 04:50:45.647029 1 project_credential_handler.go:133] [ServiceError:500] Error 1205: Lock wait timeout exceeded; try restarting transaction
            E1204 04:50:45.647086 1 project_credential.go:45] [ServiceError:500] [ServiceError:500] Error 1205: Lock wait timeout exceeded; try restarting transaction
            E1204 05:10:36.563917 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            /usr/local/go/src/runtime/panic.go:522
            /usr/local/go/src/runtime/panic.go:82
            /usr/local/go/src/runtime/signal_unix.go:390
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:192
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:354
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:186
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            /usr/local/go/src/net/http/server.go:1995
            /usr/local/go/src/net/http/server.go:2375
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            /usr/local/go/src/net/http/server.go:2774
            /usr/local/go/src/net/http/server.go:1878
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 05:52:25.846410 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            /usr/local/go/src/runtime/panic.go:522
            /usr/local/go/src/runtime/panic.go:82
            /usr/local/go/src/runtime/signal_unix.go:390
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            /go/src/kubesphere.io/kubespere/vendor/github.com/emicklei/go-restful/container.go:285
            /usr/local/go/src/net/http/server.go:1995
            /usr/local/go/src/net/http/server.go:2375
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 06:15:01.894834 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            
            /usr/local/go/src/runtime/panic.go:522
            
            /usr/local/go/src/runtime/panic.go:82
            
            /usr/local/go/src/runtime/signal_unix.go:390
            
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            
            /usr/local/go/src/net/http/server.go:1995
            
            /usr/local/go/src/net/http/server.go:2375
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 06:17:55.901842 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            
            /usr/local/go/src/runtime/panic.go:522
            
            /usr/local/go/src/runtime/panic.go:82
            
            /usr/local/go/src/runtime/signal_unix.go:390
            
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            
            /usr/local/go/src/net/http/server.go:1995
            
            /usr/local/go/src/net/http/server.go:2375
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 06:18:20.775661 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            
            /usr/local/go/src/runtime/panic.go:522
            
            /usr/local/go/src/runtime/panic.go:82
            
            /usr/local/go/src/runtime/signal_unix.go:390
            
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            
            /usr/local/go/src/net/http/server.go:1995
            
            /usr/local/go/src/net/http/server.go:2375
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 06:19:17.325469 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            
            /usr/local/go/src/runtime/panic.go:522
            
            /usr/local/go/src/runtime/panic.go:82
            
            /usr/local/go/src/runtime/signal_unix.go:390
            
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            
            /usr/local/go/src/net/http/server.go:1995
            
            /usr/local/go/src/net/http/server.go:2375
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 06:20:18.808623 1 server.go:21] recover from panic situation: - runtime error: invalid memory address or nil pointer dereference
            
            /usr/local/go/src/runtime/panic.go:522
            
            /usr/local/go/src/runtime/panic.go:82
            
            /usr/local/go/src/runtime/signal_unix.go:390
            
            /go/src/kubesphere.io/kubesphere/pkg/gojenkins/role.go:175
            
            /go/src/kubesphere.io/kubesphere/pkg/models/devops/project_member_handler.go:163
            
            /go/src/kubesphere.io/kubesphere/pkg/apiserver/devops/member.go:112
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:283
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:21
            
            /go/src/kubesphere.io/kubesphere/pkg/server/filter/logging.go:32
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/filter.go:19
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:285
            
            /usr/local/go/src/net/http/server.go:1995
            
            /usr/local/go/src/net/http/server.go:2375
            
            /go/src/kubesphere.io/kubesphere/vendor/github.com/emicklei/go-restful/container.go:303
            
            /usr/local/go/src/net/http/server.go:2774
            
            /usr/local/go/src/net/http/server.go:1878
            /usr/local/go/src/runtime/asm_amd64.s:1337
            
            E1204 07:43:50.481074 1 project_pipeline_handler.go:278] GET http://ks-jenkins.kubesphere-devops-system.svc/job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json: 404
            
            HTTP ERROR 404
            Problem accessing /job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json. Reason:
                Not Found
            Powered by Jetty:// 9.4.z-SNAPSHOT
            E1204 07:43:50.481211 1 project_pipeline.go:181] [ServiceError:404] GET http://ks-jenkins.kubesphere-devops-system.svc/job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json: 404
            HTTP ERROR 404
            Problem accessing /job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json. Reason:
            
                Not Found
            Powered by Jetty:// 9.4.z-SNAPSHOT

              shaowenchen 为持续集成项目中添加人员会报错,看原因是调用jenkins接口的时候报错:
              GET http://ks-jenkins.kubesphere-devops-system.svc/job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json: 404
              HTTP ERROR 404
              Problem accessing /job/project-MmqA4D4q8ARw/job/dynamic-form/job/master/api/json. Reason:

              Not Found

                gfppower

                检查一下 mysql 数据库是否异常。2.1 会写数据库,从报错提示的代码行看是写 db 发生了错误。

                  shaowenchen 根据您给的提示,我重新部署了一下 ks的mysql服务,依然没有效果,
                  我目前工程的状态是 jenkins系统中的用户丢失了,但是ks工程中的用户还都能用,我想通过删除后重新添加解决这个问题,或者是否有更好的用户同步的方法,我查看网上资料,说我的问题可能是调用jenkins的api异常而导致失败。目标暂时不知道如何调整才能回复ks用户同步。