针对系统的优化工作需要根据不同的系统采用不同的办法本文旨在描述通用的优化 Linux 的一些办法
一编译选项
当我们采用 O 来编译程序时或许文件字节数是最大的但是往往其运行速度也是最快的
根据不同的机器架构你可以把下面的语句加入 /etc/profile
i:
export CFLAGS=O funrollloops ffastmath maligndouble mcpu=pentiumpro march=pentiumpro fomitframepointer fnoexceptions
i:
export CFLAGS=O march=pentium mcpu=pentium ffastmath funrollloops fomitframepointer fforcemem fforceaddr maligndouble fnoexceptions
i:
FLAGS=O funrollallloops maligndouble mcpu=i march=i fomitframepointer fnoexceptions
另外安装程序时使用 tarball 格式总要比 RPM 格式来得好因为 tarball 需要重新编译能针对你的机器架构作优化得到最好的性能这也是本站下载中心提供的都是 targz 格式的原因吧!
二重新编译内核
一般的 Linux 发行商发布的 Linux 版本其内核总是会带有一些对你来说不是很实用的东西例如对无线火腿(HAM Radio)的支持对 Token Ring 的支持等
如果对自己编译感到怯生生的话可以查看下面的两个网站的资料
Linux Kernel Howto: /HOWTO/l
Linux Kernel :
经过三次失败的编译后你就能成功编译自己需要的内核了失败是成功之母么!
三停止不使用的服务
Sendmail httpd crond kudzu mysql portmap postgresql smb snortd webmin inetd (或者 xinetd) 等都是很棒的程序但是如果你不会使用他们干吗要让他们占用您宝贵的资源呢?而且这些程序都会带来安全隐患一般说来一套干净的 Linux 系统只需要gpm network syslog ssh 和 xfs如果临时有需要就手工启动好了这些启动脚本一般都在 /etc/rcd/initd 目录下
检查自己的机器上使用中的服务可以采用 nmap 工具扫描
[]$ nmap p
Starting nmap V BETA ( /nmap/ )
Interesting ports on ():
(The ports scanned but not shown below are in state: closed)
Edited version of the output due to space considerations
Port State Service
/tcp open shell
/tcp open listen
/tcp open unknown
/tcp open unknown
检查特定端口上正在运行的程序名可以采用
[ /root]# netstat anp|more
Active Internet connections (servers and established)
Proto RecvQ SendQ Local Address Foreign Address State PID/Program name
tcp : : CLOSE /java
tcp : : ESTABLISHED /sshd
tcp : : ESTABLISHED /intelnetd:
最后一列显示运行的程序及其 PID
我们还可以采用 ps 命令检查机器上正在运行的守护程序
[ root]# ps xc u
PID TTY STAT TIME COMMAND
? S : sendmail
? S : gpm
? S : httpd
四规划好你的文件系统
在安装系统之前您就需要对硬盘做好恰当的规划划分一定的文件系统不仅仅是系统本身的需要而且在安全层面上也十分有意义我们一般需要 //usr/var/tmp /home 和 swap 这么几个另外把 / 和 /usr 开得大一点十分有必要如果你的机器提供别人发送邮件或者提供个人主页等服务那么一个很大的 /home 就极为重要如果你的业务够好的话你甚至可以购买第二个硬盘建立 /home
另外把 swap 分区放到硬盘的最外层能提高读写速率如果有多个硬盘的话可以在每个硬盘上各开 swap 分区另外建议 swap 分区的大小为物理内存的两倍
如果采用 IDE 硬盘的话您可以采用
/sbin/hdparm c d m /dev/hda
来提高硬盘性能
新版本的 Linux 都支持日志文件系统这类文件系统不仅提供文件完整性上快速恢复在读写速度上也较普通的 ext 文件系统有很大提升
文件的最后存取时间对很多人来说没有任何用户因此我们可以关闭操作系统记录文件最后存取时间的功能修改 /etc/fstab
把 dev/hda /home ext defaults
改为
/dev/hda /home ext defaultsnoatime
五关闭 X 相关的软件
如果你像我一样不喜欢在窗口环境下干活那么要 X 干么?让我们把机器启动后的缺省界面为 Console 吧
修改 /etc/inittab 把
id::initdefault:
修改为
id::initdefault:
没有浏览器了么不要紧你可以在 Console 下使用 lynx 来浏览网站
links 也是一个不错的浏览器你可以从
artaxkarlinmffcunicz/ mikulas/links/
下载
六关闭多余的虚拟控制台
我们知道从控制台切换到 X 窗口一般采用 AltF 为什么呢?因为系统默认定义了 个虚拟控制台所以 X 就成了第个实际上很多人一般不会需要这么多虚拟控制台的修改
/etc/inittab 注释掉那些你不需要的
# Run gettys in standard runlevels
::respawn:/sbin/mingetty tty
::respawn:/sbin/mingetty tty
::respawn:/sbin/mingetty tty
::respawn:/sbin/mingetty tty
#::respawn:/sbin/mingetty tty
#::respawn:/sbin/mingetty tty
结论
系统优化的哲学可以简单的归结为四个字少就是多只运行那些你需要的服务使用正确的应用来完成任务使用命令行方式只有充分精简了你的系统后你的系统性能才能充分发挥我的愿望就是全部重新编译我系统里面的所有程序)实际上 里面的大多数程序都是经过我重新编译以后的杰作