文章归档

tc: htb分层令牌桶

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

1. 令牌桶

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

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

»» 继续阅读全文

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状态,等等

»» 继续阅读全文

使用tc实现container级别的流控

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

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

  • 资源配额
  • 超发

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

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

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

»» 继续阅读全文