June 24th, 2017

使用cgroups控制进程cpu配额

Linux下的cgroups,全称叫Control Groups,最初由Google工程师提出并实现,linux从2.6开始将这个特性纳入内核。cgroups主要对进程按组(Group)进行资源配额的控制,包括CPU、内存、IO等,相比古老的ulimit,cgroups更为平滑和易用,成为容器技术(比如docker)的基础。

March 24th, 2017

系统性能指标的采集方法(Linux篇)

通过程序采集服务器的性能指标,并以此数据为基础构造监控系统,是运维的常见需求。本文阐述各种主要性能指标的具体采集方法和技术。

March 15th, 2017

unix文件描述符

文件描述符是unix系统中最重要的概念之一,绝大部分的系统调用都涉及到文件描述符。文本阐述文件描述符的概念。

January 23rd, 2017

Go编程技巧--Goroutine的优雅控制

Goroutine是Go语言最重要的机制,Goroutine将复杂的需要异步的IO调用抽象成同步调用,符合人类正常的顺序思维,极大的简化了IO编程的难度。如同线程一样,对Goroutine既要掌握基本的用法,更要很好的控制Goroutine的退出机制。本文介绍一种Goroutine的退出思路。

November 11th, 2016

AIX程序打包

为了让程序可以在aix上使用smitty安装,需要采用aix下专门的打包工具。

November 10th, 2016

练上一年再来总结的vim使用技巧

转眼上vim“贼船”有一年多了。从PHPC,都在用。想要真正用vim于日常的编码工作,必然需要一些插件的支持。不过本文并不打算总结插件,笔者认为vim的两个精髓:组合重复跟插件也没有什么关系。

September 24th, 2016

实践:GNU构建系统

在上一篇概念:GNU构建系统和Autotool,我对GNU构建系统从用户视角和开发者视角分别进行了阐述。本篇从我的实践总结的角度,并阐述如何从头开始规划一个基于GNU构建系统的项目。事实上,随着开发者对跨平台认知的深入和完善,才能逐渐掌握GNU构建。注意:本文的例子不依赖于任何IDE和编辑器。这样读者可以从根本上认识到每个文件的作用。

September 16th, 2016

概念:GNU构建系统和Autotool

经常使用Linux的开发人员或者运维人员,可能对configure->make->make install相当熟悉。事实上,这叫GNU构建系统,利用脚本和make程序在特定平台上构建软件。这种方式成为一种习惯,被广泛使用。本文从用户视角和开发者视角详细说明,这种构建方式的细节,以及开发者如何利用autoconfautomake等工具(autotools)创建兼容GNU构建系统的项目。