Linux的tickless设置

尽管当前已经是多核心SMP时代,但作为”多用户,多任务“操作系统,Linux还是通过分时复用的方式,即给一个个任务分配不同的时间片从而实现用户感知上的多任务。而各种中断则拥有最高的响应权限,可以直接导致线程的切换。

问题来了。记得我之前曾经在某篇帖子上说过:低时延和大吞吐量有的时候是一对矛盾。解决低时延,系统需要多个不断切换的线程接收用户端的数据——想象一下加特林机枪的射速是通过多枪管轮流发射达到低时延的目的;而大吞吐量往往需要一个不受干扰的持续运行状态——就如一条生产线,每一次更换产品都会带来一系列的时间损失。

继续阅读“Linux的tickless设置”
推荐阅读:
近一段时间一直在做些任务负载特
众所周知的是,CPU的频率和它
首先列出本站之前相关的几篇帖子

SEP,EMON和EDP

近一段时间一直在做些任务负载特征分析的事儿。针对服务器上运行的若干个不同的业务,分析它们对于不同细颗粒度资源的使用情况。本身这些分析的工作是可以通过vtune这类的工具直接得到的。但vtune是一个桌面版本的性能分析工具,一对一的执行、跟踪、数据分析不够“工业化”。于是,这里就讲讲VTune的底层实现SEP和EMON以及EMON结果的分析工具EDP。

继续阅读“SEP,EMON和EDP”

推荐阅读:
事出前些日子有人咨询我:“在某

时延 latency(亦称为延

似乎每次开头都要讲述一下计算机

Linux下CPU的手动频率设定

众所周知的是,CPU的频率和它的实际性能特别是整数运算能力上有着相当强的关联性。但同时CPU的频率也跟它的功耗成正比,而功耗是有一个TDP的热功耗上限。根据当下多核CPU、多任务的趋势我们很容易就联想到在一个系统上如果存在多个任务,我们是否可以通过为不同任务设置不同的CPU频率的方法区分优先级?也就说CPU的频率是否可以作为一种可用资源来任意分配?

继续阅读“Linux下CPU的手动频率设定”

推荐阅读:
事出前些日子有人咨询我:“在某

时延 latency(亦称为延

似乎每次开头都要讲述一下计算机

深挖NUMA

首先列出本站之前相关的几篇帖子:

这次,就来深入了解下NUMA。

继续阅读“深挖NUMA”

推荐阅读:
NUMA(Non-Unifor

事出这一段时间做了不少基于SP

似乎每次开头都要讲述一下计算机

从sysV的init说起

首先是庆祝我们开源小站再次搬家。这次的地址是阿里云。

从某种角度上来看,*nix操作系统的方式无外乎几个函数接口:fork/vfork()和exec() 也就是说所有的进程实例都应该有一个自己的父进程。然后就出现了一个鸡生蛋的问题:谁是第一个进程?

继续阅读“从sysV的init说起”

推荐阅读:
一开始学习Linux时,曾经有

我个人觉得这并不是一个很困扰人

算起来Litrin在生产环境中

字符设备和块设备的性能差异

事出同事对于某个设备的压力测试。一个存储设备在被当作块设备之后创建一个ext4的文件系统。相较对于裸设备,也就是字符设备而言,测试最大的写入带宽居然有两个数量级的下降!但测试读取却没有如此明显的性能损失,非常蹊跷。

继续阅读“字符设备和块设备的性能差异”

推荐阅读:
事出前些日子有人咨询我:“在某

时延 latency(亦称为延

似乎每次开头都要讲述一下计算机

使用zram减少内存分页

办公电脑刚升级成了window10不久,发觉windows8以后,微软引入了一套“内存压缩”技术,旨在大幅度减少系统对内存的使用。随手查了一下其实Linux在3.14版本(2014年3月)中已经引入了类似的技术,那就是zram。

当前的操作系统中,由于牵扯到多进程操作,在操作系统层面上会给每个独立进程分配各自的虚拟内存,而这个zram就是将不活动的内存通过压缩的方式避免内存不足导致的频繁分页。

继续阅读“使用zram减少内存分页”

推荐阅读:
尽管当前已经是多核心SMP时代

近一段时间一直在做些任务负载特

众所周知的是,CPU的频率和它

Systemd的@提示符

事出一个朋友问题:通过Docker混合部署了MySQL和Nginx,但每次重启之后,都需要手工docker start命令通过容器启动服务。自然的就是通过systemd来自动启动容器,可每一个服务都写一个systemd脚本岂不是要累死?更何况很多服务之间还有依赖关系。

继续阅读“Systemd的@提示符”

推荐阅读:
5月中旬,我参加了在加利福尼亚

之前发过一个帖子介绍了RDT在

继续在NUMA和性能差异的路上

古董命令nice/renice

一开始学习Linux时,曾经有个不是太常用但非常好听好记的命令叫做nice。这个命令允许用户通过不同的优先级启动一个程序。而且作为一条通用命令,在各种Linux和Unix发行版中都有相同的命令。此外,还有对应的另一条命令叫做renice,简单粗暴的说这命令就是为一个已经在执行中的命令修改优先级。

继续阅读“古董命令nice/renice”

推荐阅读:
首先是庆祝我们开源小站再次搬家

我个人觉得这并不是一个很困扰人

算起来Litrin在生产环境中

Linux 4.10中CAT的使用

前几天写的关于Intel RDT技术。我在这篇东西中提到过,Linux将会在4.10中正式引入对RDT技术的支持。也就在昨天(2017/02/20),4.10终于发布了!不出意料的引入了RDT技术。第一时间把它下载回来试用。

继续阅读“Linux 4.10中CAT的使用”

推荐阅读:
事出前些日子有人咨询我:“在某

时延 latency(亦称为延

似乎每次开头都要讲述一下计算机