zoukankan      html  css  js  c++  java
  • 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 的分配策略,目前使用默认值,需要逐步调试成符合当前场景的情况了,也需注意。

    待续

  • 相关阅读:
    【转】Elasticsearch 聚合数据结果不精确,怎么破?
    C# ling to sql group by分组查询
    c# JArray将返回json字符串集合 转为集合
    .netcore 获取请求客户端IP
    IP转long与string相互转化方法
    C# 操作datatable校验重复行,并显示行号
    springboot 以多模块形式集成Dubbo部署RPC服务
    windows 下搭建dubbo环境搭建
    spring 创建多模块项目,找不到jar包
    使用ZKUI Web页面管理zookeeper
  • 原文地址:https://www.cnblogs.com/spillage/p/7387634.html
Copyright © 2011-2022 走看看