在Jenkins,我有100个java项目。每个都有自己的构建文件。 每次我想清除构建文件并再次编译所有源文件。 使用bulkbuilder插件我尝试编译所有作业..有100个作业并行运行。 但表现非常糟糕。单独工作需要1分钟。批量需要20分钟。更多的批量大小需要更多的时间..我在强大的服务器上运行它,所以没有内存和CPU的问题。
请建议我如何解决这个问题.. jenkins需要做什么配置。 我正在使用war文件启动jenkins。
谢谢..
答案 0 :(得分:2)
即使你说你有足够的内存和CPU资源,你似乎暗示当你增加并行运行的作业数量时会出现某种瓶颈。我认为这是可以理解的。即使我不是Java开发人员,我认为大多数java构建工具都能够在内部并行构建。即构建单个作业可能会占用多个CPU核心和相当多的内存。
因此,我建议您需要监控构建服务器并尝试使用不同的批处理大小来查找最佳数量。你应该执行例如构建正在运行时“vmstat 5”,看看你是否还有空闲的cpu。另请注意磁盘I / O.如果增加批量大小但磁盘I / O没有增加,则会消耗所有I / O容量,如果增加批量大小,它可能没什么用。
当您找到最佳批量大小(即为构建服务器配置多少个执行程序)时,您可以调整其他内容以加快速度:
尝试尽可能少花时间检查代码。不要在构建开始之前删除工作区,而是配置SCM插件以删除不受版本控制的文件。如果你使用git,你可以使用本地引用repo或做一个浅层克隆或类似的东西。
您还可以尝试使用SSD磁盘加快速度
您可以获得更多服务器,在其上运行Jenkins从属服务器并利用多个服务器的CPU和I / O容量,而不是仅使用一个服务器。