Linux系统调优:提升启动速度的实用技巧
在Linux系统中,优化系统启动时间是提高系统性能和用户体验的关键。本文将介绍一些实用的调优技巧,帮助你减少内核模块加载时间、测量内核启动时间以及降低根文件系统启动时间。
无内核模块
Linux内核模块是在运行时链接到内核的代码。插入模块的过程取决于其大小和内核必须链接的符号数量。对于硬件配置固定的嵌入式系统,可将所有模块直接链接到内核,这样能将加载模块的时间降为零。但对于硬件配置可能变化的系统,直接将驱动添加到内核虽可避免在启动或其他时间加载正确模块,但会增加可能永远不会运行的额外代码。
加载模块所需的时间只是一部分。在加载模块之前,会执行一些代码来决定是否首先加载该模块,这些逻辑通常存在于shell脚本中。shell脚本的执行速度较慢,因为它不仅原生执行速度慢,而且大多数shell脚本为完成任务会频繁调用其他程序。
如果目标系统必须使用模块且启动时间是个问题,可以考虑使用C程序来包含确定需要加载哪些模块的逻辑。这种方法虽不能减少将模块加载到内核所需的时间,但能减少确定应加载哪些模块所需的时间。
测量内核启动时间
以下介绍三种确定内核启动所需时间的工具,有些工具还能测量内核将控制权交给init进程后所消耗的时间。
-/proc/uptime:这是一种看似简单却有效的查看系统启动速度的方法,将/proc/uptime的结果输出到控制台。将此作为init脚本的第一行,可得知系统已运行的时间,从而了解启动花费的时间。示例如下: