歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

深入淺出Linux操作系統的優化和微調

  針對系統的優化工作需要根據不同的系統采用不同的辦法。本文旨在描述通用的優化 Linux 的一些辦法。

  一、編譯選項

  當我們采用 -O9 來編譯程序時,或許文件字節數是最大的,但是往往其運行速度也是最快的。 根據不同的機器架構,你可以把下面的語句加入 /etc/profile 。

  

i686:      eXPort CFLAGS=-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions         i586:      export CFLAGS=-O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malign-double -fno-exceptions         i486:      FLAGS=-O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions 

  另外,安裝程序時,使用 tarball 格式總要比 RPM 格式來得好,因為, tarball 需要重新編譯,能針對你的機器架構作優化,得到最好的性能。這也是本站下載中心提供的都是 .tar.gz 格式的原因吧!

  二、重新編譯內核

  一般的 Linux 發行商發布的 Linux 版本,其內核總是會帶有一些對你來說不是很實用的東西,例如對無線火腿(HAM Radio)的支持,對 Token Ring 的支持等。

  如果對自己編譯感到怯生生的話,可以查看下面的兩個網站的資料:Linux Kernel Howto: www.linuxdoc.org/HOWTO/Kernel-HOWTO.Html;Linux Kernel : www.kernel.org。經過三次失敗的編譯後,你就能成功編譯自己需要的內核了。“失敗是成功之母”麼!

  三、停止不使用的服務

  Sendmail, http, crond, kudzu, mysql, portmap, postgresql, smb, snortd, webmin, inetd (或者 xinetd) 等都是很棒的程序,但是如果你不會使用他們,干嗎要讓他們占用您寶貴的資源呢?而且,這些程序都會帶來安全隱患。一般說來,一套“干淨”的 Linux 系統,只需要gpm, network, syslog, ssh 和 xfs。如果臨時有需要,就手工啟動好了。這些啟動腳本一般都在 /etc/rc.d/init.d 目錄下。

  檢查自己的機器上使用中的服務,可以采用 nmap 工具掃描。

  

[[email protected]]$ nmap -p1-65535 211.94.129.28      Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )      Interesting ports on freelamp.com (211.94.129.28):      (The 65492 ports scanned but not shown below are in state: closed)      ---Edited version of the output due to space considerations--      Port State Service      ...      514/tcp open shell      1025/tcp open listen      1099/tcp open unknown      1214/tcp open unknown      ...

  檢查特定端口上正在運行的程序名,可以采用:

  

[[email protected] /root]# netstat -anpmore         Active Internet connections (servers and established)      Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name      ....      tcp 0 0 203.199.66.200:8007 203.199.66.197:1060 CLOSE 1005/Java      tcp 0 0 203.199.66.200:22 203.199.66.197:3768 ESTABLISHED 1381/sshd      tcp 0 0 203.199.66.200:23 192.168.57.46:1546 ESTABLISHED 1229/in.telnetd: 19      ....

  最後一列顯示運行的程序及其 PID。 我們還可以采用 ps 命令檢查機器上正在運行的守護程序:

  

[[email protected] root]# ps xc -u 0      PID TTY STAT TIME COMMAND      ...      1475 ? S 0:02 sendmail      1498 ? S 0:04 gpm      16539 ? S 0:01 httpd      ... 四、規劃好你的文件系統

  在安裝系統之前,您就需要對硬盤做好恰當的規劃。劃分一定的文件系統,不僅僅是系統本身的需要,而且在安全層面上也十分有意義。我們一般需要 /,/usr,/var,/tmp ,/home 和 swap 這麼幾個。另外,把 / 和 /usr 開得大一點,十分有必要。如果你的機器提供別人發送郵件,或者提供個人主頁等服務,那麼一個很大的 /home 就極為重要,如果你的業務夠好的話,你甚至可以購買第二個硬盤,建立 /home2 。

  另外,把 swap 分區,放到硬盤的最外層,能提高讀寫速率。如果有多個硬盤的話,可以在每個硬盤上各開 swap 分區,另外,建議 swap 分區的大小為物理內存的兩倍。

  如果采用 IDE 硬盤的話,您可以采用:

  

  /sbin/hdparm -c1 -d1 -m16 /dev/hda

  來提高硬盤性能。 新版本的 Linux 都支持日志文件系統,這類文件系統不僅提供文件完整性上快速恢復,在讀寫速度上也較普通的 ext2 文件系統有很大提升。

  文件的最後存取時間,對很多人來說沒有任何用戶,因此,我們可以關閉操作系統記錄文件最後存取時間的功能,修改/etc/fstab :

  把 dev/hda6 /home ext2 defaults 1 2

  改為:

  

/dev/hda6 /home ext2 defaults,noatime 1 2

  五、關閉 X 相關的軟件

  如果你像我一樣,不喜歡在窗口環境下干活,那麼要 X 干麼?讓我們把機器啟動後的缺省界面為 Console 吧!修改: /etc/inittab 把

  

id:5:initdefault:

  修改為:

  

id:3:initdefault:

  沒有浏覽器了麼,不要緊,你可以在 Console 下使用 lynx 來浏覽網站。links 也是一個不錯的浏覽器,你可以從 artax.karlin.mff.cuni.cz/ mikulas/links/下載。

  六、關閉多余的虛擬控制台

  我們知道從控制台切換到 X 窗口,一般采用 Alt-F7 ,為什麼呢?因為系統默認定義了 6 個虛擬控制台,所以 X 就成了第7個。實際上,很多人一般不會需要這麼多虛擬控制台的,修改/etc/inittab ,注釋掉那些你不需要的。

  

# Run gettys in standard runlevels      1:2345:respawn:/sbin/mingetty tty1      2:2345:respawn:/sbin/mingetty tty2      3:2345:respawn:/sbin/mingetty tty3      4:2345:respawn:/sbin/mingetty tty4      #5:2345:respawn:/sbin/mingetty tty5      #6:2345:respawn:/sbin/mingetty tty6

  結論:

  系統優化的哲學可以簡單的歸結為四個字:”少就是多“;只運行那些你需要的服務,使用正確的應用來完成任務,使用命令行方式,只有充分精簡了你的系統後,你的系統性能才能充分發揮。我的願望就是,全部重新編譯我系統裡面的所有程序。:-)實際上,FreeLAMP.com 裡面的大多數程序,都是經過我重新編譯以後的“傑作”。




Copyright © Linux教程網 All Rights Reserved