歡迎您光臨本站 註冊首頁

為最佳性能而調優 Red Hat(3)

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  系統服務管理 第 1 頁(共6 頁)

在完成軟體包維護和升級后,我們應當把目光轉向系統本身,進行進一步的清理。如果您只完成這部分中的個別步驟,那麼它們產生的效果不會很顯著。但是如果您完成所有的步驟,那麼您的系統將變成優化的易於維護的系統。

系統服務是程序,它們通常的形式是守護程序,它們在後端的預先分配的 TCP/IP 埠上偵聽請求。當用戶連接到 Web 伺服器的時候,在埠 80(預設值)上偵聽的 Apache 守護程序將響應服務請求。如果請求是有效的,那麼 Apache 將作出響應並把所請求的 Web 頁面返回給客戶機,然後 Apache 將再次「休眠」,直到接收的下一個請求。是的,休眠的服務並不需要太多的系統資源,但是如果您的系統並不是被配置成 Web 伺服器,那麼為什麼要運行 Apache?如果您從不使用 NFS,那麼為什麼要激活 portmapper 守護程序?本教程信奉「越少越好」的理念,對於某個系統來說,沒有理由運行那些不是特別需要的服務。

取消系統服務 第 2 頁(共6 頁)




在 Red Hat 系統中,控制哪些服務在啟動時運行的方法是以 root 用戶的身份登錄(或通過輸入 su - 來獲得完全的 root 環境)再輸入:


[root@thor root] # setup


這將調用一個基於游標的管理設置程序。下一步,在提供的列表中選擇 System services。向下滾動各條目,不選擇所有不必要的服務。如果您想查看結果,請重新引導系統,然後查看 netstat -lnp --ip 命令的輸出。以下是「以前」(標準的系統安裝)和「以後」(關閉所有沒用的服務,只剩下 SSH 守護程序在運行):


[root@thor root]# netstat -lnp --ip
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 669/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 641/portmap
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 831/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 906/sendmail: accep
udp 0 0 0.0.0.0:32768 0.0.0.0:* 669/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 641/portmap

[after]
[root@thor root]# netstat -lnp --ip
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 712/sshd
[root@thor root]#


請注意:與其使用「-a」(all,全部)選項,不如使用「-l」選項,因為我們只關心在套接字上偵聽的守護程序。

減少虛擬控制台 第 3 頁(共6 頁)




虛擬控制台使您能夠作為同一個用戶或不同的用戶多次登錄到系統中去。啟動新的控制台或登錄會話的方法是同時按 和一個功能鍵(F1 - F6)。管理員通常這樣使用多個虛擬控制台:以 root 用戶的身份完成任務,同時在他們原來的登錄會話中仍是普通用戶。這當然很好,但有多少人需要同時訪問六個虛擬控制台(別忘了,虛擬控制台類似於系統服務;它們在被激活之前一直使用系統服務保持活動狀態)?減少可用的虛擬控制台的數量的方法是打開 /etc/inittab 並把引用 /sbin/mingetty ttyx 的一行或多行改為註釋。以下是該文件經過編輯后的輸出:


# 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


禁止 X 自動啟動 第 4 頁(共6 頁)




多數管理員喜歡從命令行完成各種日常的任務。然而,多數商業的 Linux 分發版在系統初始化后預設地啟動 X-Window 管理器。如果您在編譯程序或編輯配置文件,那麼啟動 X-Window 管理器將消耗大量系統資源。禁用 X-Window 管理器的方法是編輯 /etc/inittab 文件,找到內容是 id:5:initdefault 的那一行,再把它改為 id:3:initdefault。系統啟動后將提供命令行登錄,當您需要運行窗口管理器的時候,只要輸入 startx 就可以了,很容易。

與我們討論的窗口管理器相關的是桌面環境,通過使用最新版本的 binutils(在寫本教程的時候,最新的是 2.12.x)和 gcc 3.x 編譯器來重新編譯桌面環境能大大提高性能。2.12.x 版本的 binutils 使編譯器能利用 combreloc 功能來構建程序,combreloc 允許預先鏈接重定位的代碼:在 C++ 代碼、Qt 和 KDE 中,重定位的代碼有廣泛的應用。然而,這樣大的任務肯定不適合神經脆弱的人。根據不同的機器,需要花四到五小時才能完成對 Qt 和 KDE 的編譯。對於有耐心和所需的毅力的人來說,最終的結果是運行速度明顯提高的較大的可執行文件。

請搜索 KDE 的一個新聞組,了解這個過程的更多細節(和告誡)(請參閱參考資料)。

優化硬碟驅動器 第 5 頁(共6 頁)




如果您的系統中有一個 IDE 硬碟驅動器而且您所運行的內核比較舊(一般來說,較新的 2.4.x 內核能優化硬碟驅動器的性能設置而無需另外的配置),那麼您應當考慮使用 /sbin/hdparm 程序。但是,請注意,不恰當地使用 hdparm 至少會降低硬碟驅動器的性能,在最壞的情況下可能破壞驅動器本身。用戶需承擔使用 hdparm 的風險,所以請仔細閱讀它的手冊頁( man hdparm )。

hdparm 的一些常用選項如下:

/sbin/hdparm -c1 /dev/hda 或 hdb 或 hdc 等 :啟用 PCI 匯流排上的 32 位 I/O。

/sbin/hdparm -d1 /dev/hda :啟用 DMA。

/sbin/hdparm -d1 -X66 /dev/hda :啟用 UltraDMA 轉移。

獲取系統中當前硬碟驅動器的設置列表的方法是(作為 root)輸入: /sbin/hdparm /dev/hda

當您把一切優化到最佳狀態后,請把各種命令添加到 /etc/rc.d/rc.local 文件中去,使這些命令在每次系統引導時自動運行。


配置 TCP/IP 資源 第 6 頁(共6 頁)




對於多數人來說,配置 TCP/IP 棧是邪惡的魔術,但是如果您運行高負載的 Web 伺服器,那麼有選擇地更改 Red Hat 的一些預設值能明顯提高系統響應速度。TCP/IP 配置值被存儲在 /proc/sys/net/ipv4 目錄中,通常可以是某個值或用「0」(關)和「1」(開)來分別表示禁用和啟用。在寫本教程的時候,Red Hat 發行的 Red Hat 7.3 的預設值如下:

tcp_fin_timeout 180
tcp_keepalive_time 7200
tcp_window_scaling 1
tcp_sack 1
tcp_timestamps 1
在下面的設置中,更改某些值能增加伺服器可處理的 TCP/IP 連接的數量,縮短伺服器在終止失效連接前的等待時間,禁用一些不必要的 IP 擴展。把這些設置添加到 /etc/sysctl.conf 文件,然後重新啟動網路守護程序( /etc/rc.d/init.d/network restart )。


# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# Turn off tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
#Turn off tcp_timestamps
net.ipv4.tcp_timestamps = 0



[火星人 ] 為最佳性能而調優 Red Hat(3)已經有322次圍觀

http://coctec.com/docs/linux/show-post-69679.html