王希刚 发布于 07月09, 2018

浅谈Cgroups

说起容器监控,首先会想到通过Cadvisor, Docker stats等多种方式获取容器的监控数据,并同时会想到容器通过Cgroups实现对容器中的资源进行限制。但是这些数据来自哪里,并且如何计算的?答案是Cgroups。最近在写docker容器监控组件,在深入Cadvisor和Docker stats源码发现数据都来源于Cgroups。了解之余,并对Cgroups做下笔记。

阅读全文 »

刘毅 发布于 07月02, 2018

退还机器推荐方法整理与总结

退还机器推荐方法整理与总结

背景

对于某些业务所使用的机器可能会出现老化,迁移等问题需要退还,随着业务数量的增多,机器数量的增多,退换机器的数量也随之增大。然而并不可能将业务中的所有机器全部退还,有效的机器退还不仅能够节约成本,也能提高业务的稳定性与效率。因此需要设计一个算法用于判断机器是否需要退还。

这个问题很容易把它想想成一个机器的分类问题,即设计一个分类器用于判断机器是否需要退还。实际上,该问题不仅仅可以用分类的方法进行解决,也可以设计一个推荐系统,为用户(即业务)推荐最应该退还的机器。

阅读全文 »

籍鑫璞 发布于 06月12, 2018

时间序列聚类方法的研究

背景

为了保证系统、服务的可靠性和稳定性,监控系统日渐成为每个公司、企业的一个必不可少的系统。随着服务、机器等数量越来越多,如何分析海量时间序列KPI成为我们在智能运维领域首先需要解决的问题。

在众多的时间序列中,有一些序列存在相关性,如果我们能将时序数据进行快速准确地聚类,只对不同类别的数据进行分析,这样就能大大降低后续数据分析与挖掘工作的开销。

阅读全文 »

高广鹏 发布于 06月11, 2018

Golang short write

背景

自定义数据结构,替换golang标准库"os/exec"中cmd原始的标准输出、标准错误输出,达到获取并限制其大小,便于日志上报。在输出达到上限后遇到“short write”报错,本文记录排查思路及过程。

阅读全文 »

高广鹏 发布于 06月08, 2018

Channels In Go

Channels In Go

原文来自go101,本文是翻译后留存,方便自己学习。

go有两个重要的内置功能,同时也是它的特性。分别是channel、goroutine。这两个特性使go编写并发程序变的简单、有趣。本文将主要介绍channel

阅读全文 »

王希刚 发布于 06月04, 2018

Kube-controller-manager解析之启动流程

最近在工作之余准备看看Kube-controller-manager比较核心的几个控制器,也是现在容器平台主要使用的几个,如:Deployment, ReplicaSet, Garbage Collection, ReousrceQuota, Node Controller等。在分析这些控制器之前,先介绍下kube-controller-manager的功能及它的启动流程。

注意: kubernetes 1.9.0, commit Id: 925c127ec6b946659ad0fd596fa959be43f0cc05

阅读全文 »