Linux的serial串口控制台

本人大多数情况都是在调试服务器大量的linux服务器,很多情况下也不没有必要专门准备KVM(keyboard, video, mouse),甚至有些机器根本就没有显示器接口。如何调试的?闲来无事,分享一下。

继续阅读“Linux的serial串口控制台”
推荐阅读:
首先,提个问题:64bit x
一直没有写过关于Linux内核
尽管当前已经是多核心SMP时代

一个测试性能不稳定的问题

经常会通过一些通用的测试工具测试一些服务器的性能,个人非常喜欢SPEC的一系列产品,特别是SPECcpu。SPECcpu原理上通过接近30种不同特性的组件的执行时间对服务器的计算吞吐能力进行一个客观的评价。当然,由于计算机的硬件配置不同,不同的程序跑分各有千秋,但有一点也是SPECcpu能够成为业界标准之一的原因是跑分结果的稳定。这么说不夸张:如果其中的一个测试组件两次跑分差距超过5%,请仔细检查环境有没有变化。

继续阅读“一个测试性能不稳定的问题”
推荐阅读:
首先,提个问题:64bit x
接到一个黑盒的case:一套双
去年的DCDC,我主要介绍了基

Linux的用户内存上限

首先,提个问题:64bit x86 Linux中用户空间最大可以使用多少物理内存?根据Kernel的定义,这个值是64T,Redhat官方给的是12T,但含糊的说了64T的限制。那64bit x86的寻址位宽是多少?答:48bit,理论上应该是支持2<<48=256T才是,Linux kernel为什么会强制限定了一个64T的最大内存?

继续阅读“Linux的用户内存上限”
推荐阅读:
经常会通过一些通用的测试工具测
接到一个黑盒的case:一套双
去年的DCDC,我主要介绍了基

高性能编程的困境

之前收到公司一个大牛的PPT,里边详细分析了一个典型的代码段在短短2~3秒钟时间内的内存访问特征。内容翔实紧凑,说的有理有据。技术类PPT的惯例,文中有几页折线图表达了整个过程中每一细微时间粒度上的内存带宽变化,扫了一眼细细密密的横坐标,一方面感慨大牛的数据之精确,另一方面忽然有了放challenge的冲动。

继续阅读“高性能编程的困境”
推荐阅读:
一直没有写过关于Linux内核
尽管当前已经是多核心SMP时代
经常会通过一些通用的测试工具测

Linux CFS调度器

一直没有写过关于Linux内核调度器的内容,这几天被问起,简单的讲了讲,收到一堆challenge,这次决定做一个通篇总结方便自己整理思路。
要说Linux2.4和2.6最大的差异就在于CFS调度器的引入。CFS是 Completely Fair Scheduler 的缩写。不过讲真话,个人并不完全认同“完全公平”调度是这个算法的本意,如何裁决资源抢占(preempt,字面上是优先权)才是这个调度器的本意。

继续阅读“Linux CFS调度器”
推荐阅读:
尽管当前已经是多核心SMP时代
前一段时间基于PID(等比例微
近一段时间一直在做些任务负载特

Linux的tickless设置

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

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

继续阅读“Linux的tickless设置”
推荐阅读:
本人大多数情况都是在调试服务器
首先,提个问题:64bit x
一直没有写过关于Linux内核

如何让SElinux和Docker并存

作为Redhat/Centos/Fedora 系的Linux特性之一,SElinux是一个相对简单易用安全管理工具。具体的细节我们这边就先不展开,简单的举个例子就是,假设现在某个网站的漏洞允许用户上传一个页面文件(比如php文件)到任意目录,如果有了SELinux的保护,不同的MAC权限保证了上传的文件依然无法被执行。

继续阅读“如何让SElinux和Docker并存”
推荐阅读:
自打从硬件方向研究性能优化起,
之前我们通过几个概念简单的介绍
这一段时间,凡是提及容器技术的

Ubuntu snap安装包

之前一直不太想过多的介绍Ubuntu的snap安装方式,这次就做个快速总结吧。

自从1604之后,Ubuntu增加了一个snap的安装包管理系统,经过snap封装的应用被称为uApp。个人感觉这个安装包管理系统有点类似于docker的封装,软件发行商将不再需要过多的关注Linux那复杂繁琐的依赖包问题,也就说一个snap包会将所需的软件以及依赖包统统封装在一起。如果这种封装方式得到推广,Ubuntu就会拥有一套类似于apple app store的软件发布系统。同时,uApp模式使过去跨发行版发布软件的难度降低,ubuntu的幕后Canonical当然也会一家独大的垄断snap的发布渠道。

继续阅读“Ubuntu snap安装包”

推荐阅读:
作为Linux内核级别的资源限

在前几天发布的Ubuntu16

一直用ubuntu作为自己的开

Linux下CPU的手动频率设定

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

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

推荐阅读:
经常会通过一些通用的测试工具测

首先,提个问题:64bit x

接到一个黑盒的case:一套双

深挖NUMA

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

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

继续阅读“深挖NUMA”

推荐阅读:
NUMA(Non-Unifor

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

任何一个合理的应用程序的运行时