文章归档

正态分布的前世今生

神说,要有正态分布,就有了正态分布。

神看正态分布是好的,就让随机误差服从了正态分布。

— 创世纪—数理统计

学过基础统计学的同学大都对正态分布非常熟悉。这个钟形的分布曲线不但形状优雅,它对应的密度函数写成数学表达式

\displaystyle f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{{(x-\mu})^2}{2\sigma^2}}

也非常具有数学的美感。其标准化后的概率密度函数

\displaystyle f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}

更加的简洁漂亮,两个最重要的数学常量  \pi 、 e  都出现在这公式之中。在我个人的审美之中,它也属于 top-N 的最美丽的数学公式之一,如果有人问我数理统计领域哪个公式最能让人感觉到上帝的存在,那我一定投正态分布的票。因为这个分布戴着神秘的面纱,在自然界中无处不在,让你在纷繁芜杂的数据背后看到隐隐的秩序。

»» 继续阅读全文

Namespaces系列4:user namespace

User namespaces are have been introduced as early as Linux 3.5 and are considered as stable starting with Linux 4.3.

1. 简介

user namespace是最近才出现在内核主干里的,主要是为了隔离安全相关的标识和属性,例如 user IDs and group IDs (see credentials(7)), the root directory, keys (see keyctl(2)), and capabilities等等。但是从内核实现上来看,user namespace只是简单的提供了一种uid/gid映射机制,capabilities虽然与user namespace非常相关,但它不是user namespace中的概念,capabilities是进程的概念,它是进程的一种属性,它要远比user namespace出现的早

在这篇文章里,我们分四步走:

  1. 我们先来了解一下,user namespace的基本用法
  2. 以及user namespace如何结合capabilities实现容器的安全性隔离
  3. user namespace在解决什么问题?
  4. 内核实现
  5. 与其他namespace的交互以及兼容性问题

简单来说,有了这个东西之后,容器可以有一个假的root账户,在不影响宿主安全的情况下,最大限度的使用更多的内核特权功能,user namespace让容器变得更像虚拟机了

»» 继续阅读全文

文件系统:overlayfs

overlay文件系统的主要目的是要实现文件系统重叠,docker中的差分机制所依赖的文件系统分层就是依赖这种技术来实现的

1. upper and lower

overlay机制允许将两个文件系统重叠成一个文件系统,其中一个是upper,另一个是lower,对用户的可视顺序是: upper -> lower

简单来说,如果upper和lower同时存在一个相同的文件,那么用户看到的是upper中的文件,lower中的同路径文件会被自动隐藏

overlay只关心文件,目录是会被穿透的,所以严格来说,overlay重叠的是目录树,而不是“文件系统”

所有的修改都会写入upper,lower是只读的。upper的文件系统必须支持trusted.*扩展属性,所以upper是不支持NFS的

»» 继续阅读全文

为什么我们需要Pod和Service?

我们知道pod和service是kubernetes中非常核心的两个概念,要了解这两个东西,就需要看看它们解决了什么问题。

Pod要解决的问题是:数据共享和交互

而Service,是解决Naming问题的另一种思路

»» 继续阅读全文

tc: htb分层令牌桶

分层令牌桶是tc中最强大的工具,没有之一,htb使用令牌桶的原理,结合分类、过滤器,可以实现非常复杂的流控,更重要的是,htb支持流量租借,当孩子节点流量不足或者也叫带宽不足但是父亲节点流量仍有冗余的情况下,孩子节点通过超发模式使用父亲的带宽资源

1. 令牌桶

令牌桶是HTB的基础,HTB主要是在令牌桶的原理之上支持了分层机制

令牌桶算法是网络流量整形和速率限制中最常使用的一种算法,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送

»» 继续阅读全文

使用tc实现container级别的流控

关于tc的用法:http://pipul.org/2015/07/queueing-disciplines-for-bandwidth-management/

流控需要解决两个非常核心的问题:

  • 资源配额
  • 超发

超发和配额的区别在于,配额是分配给你能够保证你真实拥有的资源,当你需要使用就能立即能用的资源,能够完全独立支配而不受其他container的干扰。但是配额的问题在于很容易造成资源浪费或者无法应对峰值负载。因为流量是很容易具备时段性的

超发当你资源不足而别人资源冗余的时候,你能够使用别人的空闲资源

从业务方角度来看,这是一个成本控制的问题,从平台方的角度来看,这是一个提升整体的资源利用率的问题。

»» 继续阅读全文

The Linux Scheduler: a Decade of Wasted Cores

论文原址:http://www.ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf

这是一篇很好的linux调度器综述论文,论文首先介绍了linux调度器的基本工作原理,然后介绍了调度器算法的改进历史,最后详细分析了现有调度器负载均衡算法的4个bug,正如论文的标题所说:a Decade of Wasted Cores,这些bug导致了内核在某些场景下很容易会出现多核负载不均衡的现象,例如一些核心非常忙,但是另外一些核心仍然处于idle状态,等等

»» 继续阅读全文

CPI2 : CPU performance isolation for shared compute clusters

论文原址: http://research.google.com/pubs/pub40737.html

This paper describes CPI2, a system that builds on the useful properties of CPI measures to automate all of the following:

  1. observe the run-time performance of hundreds to thousands of tasks belonging to the same job, and learn to distinguish normal performance from outliers
  2. identify performance interference within a few minutes by detecting such outliers
  3. determine which antagonist applications are the likely cause with an online cross-correlation analysis
  4. (if desired) ameliorate the bad behavior by throttling or migrating the antagonists.

»» 继续阅读全文

Heracles: Improving Resource Efficiency at Scale

论文原址:

  1. http://csl.stanford.edu/~christos/publications/2015.heracles.isca.pdf
  2. https://cs.stanford.edu/~davidlo/resources/2015.heracles.isca.slides.pdf

一个实时的、自反馈的,大规模提升资源利用率的系统

1. 简介

为了解决LC服务和BE作业混部引起的LC服务SLO下降的问题,我们开发了Heracles,一个实时的控制器,能够动态使用硬件隔离机制和软隔离机制,保证共享资源的干扰问题

Heracles能够在保证LC服务足够SLO的情况下,最大限度的将空闲资源用来运行BE作业,同时,结合实时监控离线分析,自动检测干扰源,并在合适的时机,自动调整隔离机制防御干扰产生

在这里我们分两步走:

第一步,我们首先来研究一些经典案例,最终会抛出一个结论,那就是混部情况下【如无特殊说明,以下混部一律特指LC服务和BE作业】,干扰绝大部分情况下都是不均匀的、但是和负载有较强的相关性,所以,通过静态分区的方式来隔离共享资源是不够的

第二步,然后我们会解释为什么要设计Heracles,并且会证明

  1. 多种隔离机制的互相结合,是实现高利用率并且不打破LC服务SLO的关键所在
  2. 将干扰问题细分成几个独立的子问题,能够大大的降低动态控制的复杂性
  3. 为什么一个运行在所有机器上的、实时的监控程序是必须的

第三步,我们来评估一下Heracles在Google内部生产环境能产生多大的收益,测试表明,能够将机器利用率提高到90%左右

最后,我们通过硬件的一些机制来实现DRAM带宽的监控与隔离,进一步提高Heracles的精确性以及降低对离线分析的依赖

»» 继续阅读全文

Reconciling High Server Utilization and Sub-millisecond Quality-of-Service

论文原址:http://csl.stanford.edu/~christos/publications/2014.mutilate.eurosys.pdf

In this paper, we analyze the challenges of maintaining high QoS for low-latency workloads when sharing servers with other workloads.

The additional workloads can interfere with resources such as processing cores, cache space, memory or I/O bandwidth

The goal of this work is to investigate if workload colocation and good quality-of-service for latency-critical services are fundamentally incompatible in modern systems, or if instead we can reconcile the two

»» 继续阅读全文

第 1 页,共 13 页12345...10...最旧 »