首頁 > 服務(wù)器 > Linux服務(wù)器 > 正文

Linux 系統(tǒng)的優(yōu)化和微調(diào)

2019-10-13 18:41:32
字體:
供稿:網(wǎng)友
針對(duì)系統(tǒng)的優(yōu)化工作需要根據(jù)不同的系統(tǒng)采用不同的辦法。本文旨在描述通用的優(yōu)化 Linux 的一些辦法。

  一、編譯選項(xiàng)

  當(dāng)我們采用 -O9 來編譯程序時(shí),或許文件字節(jié)數(shù)是最大的,但是往往其運(yùn)行速度也是最快的。

  根據(jù)不同的機(jī)器架構(gòu),你可以把下面的語句加入 /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

  另外,安裝程序時(shí),使用 tarball 格式總要比 RPM 格式來得好,因?yàn)椋?tarball 需要重新編譯,能針對(duì)你的機(jī)器架構(gòu)作優(yōu)化,得到最好的性能。這也是本站下載中心提供的都是 .tar.gz 格式的原因吧!

  二、重新編譯內(nèi)核

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

  如果對(duì)自己編譯感到怯生生的話,可以查看下面的兩個(gè)網(wǎng)站的資料:

  Linux Kernel Howto: www.linuxdoc.org/HOWTO/Kernel-HOWTO.html

  Linux Kernel : www.kernel.org

  經(jīng)過三次失敗的編譯后,你就能成功編譯自己需要的內(nèi)核了。"失敗是成功之母"么!

  三、停止不使用的服務(wù)

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

  檢查自己的機(jī)器上使用中的服務(wù),可以采用 nmap 工具掃描。

  [xyj@freelamp.com]$ 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

  ...

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

  [root@freelamp.com /root]# netstat -anp|more

  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

  ....

  最后一列顯示運(yùn)行的程序及其 PID。

  我們還可以采用 ps 命令檢查機(jī)器上正在運(yùn)行的守護(hù)程序:

  [root@freelamp.com 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

  ...

  四、規(guī)劃好你的文件系統(tǒng)

  在安裝系統(tǒng)之前,您就需要對(duì)硬盤做好恰當(dāng)?shù)囊?guī)劃。劃分一定的文件系統(tǒng),不僅僅是系統(tǒng)本身的需要,而且在安全層面上也十分有意義。我們一般需要 /,/usr,/var,/tmp ,/home 和 swap 這么幾個(gè)。另外,把 / 和 /usr 開得大一點(diǎn),十分有必要。如果你的機(jī)器提供別人發(fā)送郵件,或者提供個(gè)人主頁等服務(wù),那么一個(gè)很大的 /home 就極為重要,如果你的業(yè)務(wù)夠好的話,你甚至可以購買第二個(gè)硬盤,建立 /home2 。

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

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

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

  來提高硬盤性能。

  新版本的 Linux 都支持日志文件系統(tǒng),這類文件系統(tǒng)不僅提供文件完整性上快速恢復(fù),在讀寫速度上也較普通的 ext2 文件系統(tǒng)有很大提升。

  文件的最后存取時(shí)間,對(duì)很多人來說沒有任何用戶,因此,我們可以關(guān)閉操作系統(tǒng)記錄文件最后存取時(shí)間的功能,修改: /etc/fstab :

  把 dev/hda6 /home ext2 defaults 1 2

  改為:

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

  五、關(guān)閉 X 相關(guān)的軟件

  如果你像我一樣,不喜歡在窗口環(huán)境下干活,那么要 X 干么?讓我們把機(jī)器啟動(dòng)后的缺省界面為 Console 吧:

  修改: /etc/inittab 把

  id:5:initdefault:

  修改為:

  id:3:initdefault:

  沒有瀏覽器了么,不要緊,你可以在 Console 下使用 lynx 來瀏覽網(wǎng)站。

  links 也是一個(gè)不錯(cuò)的瀏覽器,你可以從

  artax.karlin.mff.cuni.cz/ mikulas/links/ 下載。

  六、關(guān)閉多余的虛擬控制臺(tái)

  我們知道從控制臺(tái)切換到 X 窗口,一般采用 Alt-F7 ,為什么呢?因?yàn)橄到y(tǒng)默認(rèn)定義了 6 個(gè)虛擬控制臺(tái),所以 X 就成了第7個(gè)。實(shí)際上,很多人一般不會(huì)需要這么多虛擬控制臺(tái)的,修改

  /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

  七、結(jié)論

  系統(tǒng)優(yōu)化的哲學(xué)可以簡單的歸結(jié)為四個(gè)字:"少就是多";只運(yùn)行那些你需要的服務(wù),使用正確的應(yīng)用來完成任務(wù),使用命令行方式,只有充分精簡了你的系統(tǒng)后,你的系統(tǒng)性能才能充分發(fā)揮。我的愿望就是,全部重新編譯我系統(tǒng)里面的所有程序。:-)實(shí)際上,F(xiàn)reeLAMP.com 里面的大多數(shù)程序,都是經(jīng)過我重新編譯以后的"杰作"。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表