摘要:
HACK #14 虚拟存储子系统的调整 本节介绍如何使用/proc进行虚拟存储子系统的调整。虚拟空间存储方式在Linux上向应用程序分配内存时,是通过以页面为单位的虚拟存储方式进行的。采用虚拟存储方式,在实际操作中具有不需要确保连续的物理内存(不用担心内存碎片)的优点。最近的处理器大部分都具备用于虚 阅读全文
摘要:
HACK #13 使用Block I/O控制器设置I/O优先级 本节介绍使用Block I/O控制器的功能设置I/O优先级的方法。Block I/O控制器可以将任意进程分组,并对该分组设置I/O的优先级。这个功能是在Linux 2.6.33时添加到Linux内核中的。例如,在前台进行一般处理的同时, 阅读全文
摘要:
HACK #12 使用Memory Cgroup限制内存使用量 Memory Cgroup是Cgroup的资源限制功能之一,可以控制特定进程可以使用的内存量。Memory CgroupMemory Cgroup是Cgroup(参考Hack #7)之一,用来控制进程所使用的内存(LRU管理的缓存)数量 阅读全文
摘要:
HACK #11cpuset 本节介绍控制物理CPU分配的cpuset。cpuset是Linux控制组(Cgroup)之一,其功能是指定特定进程或线程所使用的CPU组。另外,除CPU以外,同样还能指定内存节点的分配。以前的内核具有CPU affinity功能,该功能将线程分配给特定CPU。现在的内核 阅读全文
摘要:
HACK #9 RT Group Scheduling 与RT Throttling 本节介绍对实时进程所使用的CPU时间进行限制的功能RT Group Scheduling和RT Throttling。RT Group Scheduling和RT Throttling功能是用来限制使用实时调度策略 阅读全文
摘要:
HACK #10 Fair Group Scheduling 本节介绍Cgroup之一、管理CPU资源的Fair Group Scheduling。Fair Group SchedulingFair Group Scheduling是Cgroup的资源管理之一,用来控制Linux内核的进程调度程序进 阅读全文
摘要:
HACK #8 调度策略 本节介绍Linux的调度策略(scheduling policy)。Linux调度策略的类别大致可以分为TSS(Time Sharing System,分时系统)和实时系统这两种。一方面,一般的进程是通过分时运行的。也就是说,使用CPU的时间达到分配给进程的时间(时间片)时 阅读全文
摘要:
HACK #6 使用localmodconfig缩短编译时间 本节介绍使用make localmodconfig生成精简的.config文件,缩短内核编译时间的方法。为了能够应对各种各样的环境,发布版的内核包含很多内核模块。但是在某个特定机器,例如,大家自己平时使用的PC上实际用到的模块只是其中的极 阅读全文
摘要:
HACK #7 Cgroup、Namespace、Linux容器 本节将介绍Cgroup与Namespace以及通过这两个功能实现的容器功能。CgroupCgroup(control group)是将任意进程进行分组化管理的Linux内核功能。Cgroup本身是提供将进程进行分组化管理的功能和接口的 阅读全文
摘要:
HACK #5 使用checkpatch.pl检查补丁的格式 本节介绍发布前检查补丁格式的方法。Linux内核是由多个开发者进行开发的。因此,为了保持补丁评估与源代码的可读性,按照统一的规则进行编写是非常重要的。编写规则写在Linux内核源代码的Documentation/CodingStyle中。 阅读全文