• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Spillage
博客园    首页    新随笔    联系   管理    订阅  订阅
CI集成 mesos 资源分配的思考, 待续

读了mesos的论文(https://people.eecs.berkeley.edu/~alig/papers/mesos.pdf ),感觉应用在 CI 上的资源管理很赞,能够解决 jenkins在构建中,分配 executor 以及 executor 在building 的时候 hang 的问题,所以装了一个来试一下。

首先是先装 mesos 了,官网 1.3.0 

rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-3.noarch.rpm

设置好 rpm 源,可以使用 yum install 了

接下来是 jenkins 插件的安装 https://wiki.jenkins.io/display/JENKINS/Mesos+Plugin

比较奇怪的一个问题是,mesos 在分配task的时候,slave在执行task,没有获得系统的环境变量,在没有使用docker的情况下,即使是 hardcode 绝对路径,也没有达到效果。

没查到原理,但是已经解决了
在shell中显示指定环境变量即可,为了避免出现乱码,还需设定LC的各项属性.

 export LC_ALL=en_US.UTF-8
 export LANG=en_US.UTF-8
 export LANGUAGE=en_US.UTF-8

 

PS,针对 CI 集成 mesos 做了一次性能测试,同时 build 200+ 个job,配合14 个 slave
虽然数据可能看不上眼,这是公司平台中在迭代的200 + 个项目在mesos slave上进行构建,包括maven,gradle,node, 物理机表现不错,虚拟机的slave挂了,证明虚拟机需要提升。
另外,可以看到,在 task 完成后,slave上资源确实得到了回收和释放。

令人在意的一点是,为什么虚拟机资源不足,会被 master 分配任务,不确定是 jenkins 的 mesos 插件的问题,如果抛弃插件,通过脚本直接联系 master, 或许效果会更好?

另外,mesos 的分配策略,目前使用默认值,需要逐步调试成符合当前场景的情况了,也需注意。

待续

 

posted on 2017-08-18 08:44  Spillage  阅读(231)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3