2023拉

Linux性能优化建议

上一篇 / 下一篇  2012-03-03 20:02:02 / 个人分类:Linux杂谈

   

每个人都希望自己的计算机运行如飞,对Linux系统而言,性能优化必不可少。我已经使用了多年Linux,现在与大家分享一些性能优化方面的技巧,希望能够对大家有所助益。

编译源代码 vs. 下载二进制文件

跟Linux系统打交道,你要么选择下载二进制形式(类似于Windows上的发布方式)的软件,要么选择下载源代码自行编译。这两种选择有什么分别?

我们来简要看看CPU的架构。近来,64位处理器大行其道。64位处理器支持64位指令集及其扩展指令集。对32位处理器和操作系统,大家可能已经熟知了这样一个术语-“x86”。如果使用64位处理器和操作系统,我们会碰到另一个术语-“x86-64”。“x86-64”描述了CPU的架构,也许你猜对了,这是基于x86架构指令集的64位扩展。

大部分的现代CPU不仅仅支持x86指令集,例如,许多CPU都支持SSE指令集。这些指令集包含了许多特定的例行操作,以提高性能。最初的SSE指令集就包含了浮点操作的例行操作。因此,支持SSE指令集的CPU能够更高效地执行浮点运算。

你下载的二进制格式安装包,被编译成可以在任何计算机上运行。为了确保高度兼容性,开发人员在二进制安装包发布前将源代码进行了一般性编译(他们会针对x86-4架构,但不会针对特定的指令集)。因此,你下载的二进制格式安装包,并没有针对你的计算机进行特定优化,而是以牺牲性能为代价换取了兼容性的最大化。

在编译时对这些额外的CPU特性忽略与否,决定了程序执行的效率。编译时针对特定指令集进行优化,意味着程序运行时执行更少的指令,以及产生结果需要更短的执行时间。

我在此不会详述编译源代码的过程,如果你能安装和配置Linux,相信你可以在Google和Linux社区中找到答案。

编译内核

对于一些高级用户,可以尝试编译内核。如果是桌面用户,推荐在编译内核时应用BFS补丁。BFS补丁会调整内核进程的调度方式,为桌面用户优化桌面体验。我们编译内核的目的是为了优化性能(比如-o2胜过-os),具体的方法要依据不同的Linux发行版和特定的计算场景。

交换分区

计算机使用内存来存储临时数据,但由于内存容量有限,所以需要在硬盘上开辟一块临时存储空间,这就是交换分区。

交换分区也有讨厌的一面。硬盘的速度比内存慢很多,更不用说CPU中的缓存和寄存器了。正式因为这个原因,当计算机使用交换分区时,你会发现,当前程序乃至整个计算机运行缓慢。

所幸,现在内存已经很便宜了。如果你有足够的内存,可以在命令行终端停用交换分区:

  1. echo"vm.swappiness=10"> /etc/sysctl.d/20-swappiness.conf

此命令适用于大多数Linux发行版。如果不确定,请针对你使用的Linux发行版运行特定的命令(Google一下)。

总结

以上是我对Linux用户的几点性能优化建议。希望大家有足够的探索精神,自己做一点研究。只有亲自尝试,才能体会Linux学习之旅的乐趣!(张志平/编译)

原文链接:Various Optimization Topics for Linux Users

参考链接:Optimizing System Performance


TAG:

 

评分:0

我来说两句

Open Toolbar