使用cgroups控制进程cpu配额
Linux
下的cgroups
,全称叫Control Groups
,最初由Google工程师提出并实现,linux从2.6开始将这个特性纳入内核。cgroups主要对进程按组(Group
)进行资源配额的控制,包括CPU、内存、IO等,相比古老的ulimit
,cgroups更为平滑和易用,成为容器技术(比如docker
)的基础。
Linux
下的cgroups
,全称叫Control Groups
,最初由Google工程师提出并实现,linux从2.6开始将这个特性纳入内核。cgroups主要对进程按组(Group
)进行资源配额的控制,包括CPU、内存、IO等,相比古老的ulimit
,cgroups更为平滑和易用,成为容器技术(比如docker
)的基础。
nxlog号称“日志收集神器”。nxlog 2.8社区版存在一个bug,此bug会导致明显的内存泄漏。
通过程序采集服务器的性能指标,并以此数据为基础构造监控系统,是运维的常见需求。本文阐述各种主要性能指标的具体采集方法和技术。
文件描述符是unix系统中最重要的概念之一,绝大部分的系统调用都涉及到文件描述符。文本阐述文件描述符的概念。
Goroutine
是Go语言最重要的机制,Goroutine
将复杂的需要异步的IO调用抽象成同步调用,符合人类正常的顺序思维,极大的简化了IO编程的难度。如同线程一样,对Goroutine
既要掌握基本的用法,更要很好的控制Goroutine
的退出机制。本文介绍一种Goroutine
的退出思路。
为了让程序可以在aix上使用smitty安装,需要采用aix下专门的打包工具。
转眼上vim
的“贼船”
有一年多了。从PHP
到C
,都在用。想要真正用vim
于日常的编码工作,必然需要一些插件的支持。不过本文并不打算总结插件,笔者认为vim的两个精髓:组合
和重复
跟插件也没有什么关系。
在上一篇概念:GNU构建系统和Autotool,我对GNU构建系统从用户视角和开发者视角分别进行了阐述。本篇从我的实践总结的角度,并阐述如何从头开始规划一个基于GNU构建系统的项目。事实上,随着开发者对跨平台认知的深入和完善,才能逐渐掌握GNU构建。注意:本文的例子不依赖于任何IDE和编辑器。这样读者可以从根本上认识到每个文件的作用。
经常使用Linux的开发人员或者运维人员,可能对configure->make->make install
相当熟悉。事实上,这叫GNU构建系统
,利用脚本和make
程序在特定平台上构建软件。这种方式成为一种习惯,被广泛使用。本文从用户视角和开发者视角详细说明,这种构建方式的细节,以及开发者如何利用autoconf
和automake
等工具(autotools)创建兼容GNU构建系统的项目。