Linux伺服器作業系統核心優化

2021-10-23 13:12:57 字數 3941 閱讀 7178

linux系統管理員可能會經常遇到系統不穩定、響應速度慢等問題

作業系統完成乙個任務時,與系統自身設定、網路拓撲結構、路由裝置、路由策略、接入裝置、物理線路的多個方面都密切相關,任何乙個環節出現問題,都會影響整個系統的效能。因此當linux應用出現問題是,應當重應用程式、作業系統、伺服器硬體、網路環境等方面綜合排查,定位問題出現在哪個部分,然後集中解決。

在應用程式、作業系統、硬體服務、網路環境等方面,影響效能最大的是應用程式和作業系統兩個方面,應為這兩個方面出現問題不易察覺,隱蔽性很強。而硬體、網路方面只要出現問題,一般都能馬上定位

照傳統,linux不同的發行版本和不同的核心對各項引數及設定均做了改動,從而使得系統能夠獲得更好的效能。下邊將分四部分介紹在red hat enterprise linux as和suse linux enterprise server系統下,如何用以下幾種技巧進行效能的優化:

quote:

1、disabling daemons (關閉 daemons)

2、shutting down the gui (關閉gui)

3、changing kernel parameters (改變核心引數)

4、kernel parameters (核心引數)

5、tuning the processor subsystem(處理器子系統調優)

6、tuning the memory subsystem (記憶體子系統調優)

7、tuning the file system(檔案系統子系統調優)

8、tuning the network subsystem(網路子系統調優)

1 關閉daemons

有些執行在伺服器中的daemons (後台服務),並不是完全必要的。關閉這些daemons可釋放更多的記憶體、減少啟動時間並減少cpu處理的程序數。減少daemons數量的同時也增強了伺服器的安全性。預設情況下,多數伺服器都可以安全地停掉幾個daemons。

注意:關閉xfs daemon將導致不能啟動x,因此只有在不需要啟動gui圖形的時候才可以關閉xfs daemon。使用startx命令前,開啟xfs daemon,恢復正常啟動x。

2 關閉gui

只要有可能,就不要在linux server上啟動gui圖形,通常在linux server上,沒有必要啟動gui。,所有的管理任務均可在命令列方式下完成、或者通過重定向x和web瀏覽器介面。有幾個可用的基於web的工具(例如webmin, linuxconf, 和swat).

需要的時候啟動gui,用完馬上關閉gui。多數情況,伺服器執行在runlevel 3,即在機器啟動的時候不進入gui。命令列方式下,執行startx 來啟動xserver.

1. 檢視runlevel的命令:runlevel

會顯示出上次和當前的runlevel (如n 5 表示沒有上次的runlevel (n) ,當前的runlevel是5).

2. 在不同的runlevels之間切換,使用命令 init

如切換到run level 3,鍵入命令init 3

下邊是對linux中不同runlevels的簡要描述

– 0 – halt 停機(不要將0設定為預設,否則伺服器啟動後就會馬上關閉)

– 1 - single user mode 單使用者模式

– 2 - multi-user 不帶nfs的多使用者模式 (如果沒有網路,相當與3)

– 3 - full multi-user mode 完全多使用者模式

– 4 – unused 未使用

– 5 - x11

– 6 – reboot 重啟(不要將6設定為預設,否則伺服器會不斷地重啟)

3 改變核心引數

linux核心是作業系統的核心,對所有的linux發行版本是通用的。核心引數可以改變,在命令列下執行sysctl 命令。

核心引數儲存在/proc(特別是/proc/sys),提供了核心、處理器、記憶體、網路及其他元件的相關引數。每個執行的程序都有乙個以相應pid命名的目錄。figure 10-3列出了一些包括核心資訊的檔案。

4 核心的引數

5 處理器子系統調優

處理器對於應用和資料庫伺服器來講是最重要的硬體子系統之一。然而在這些系統中,cpu經常是效能的瓶頸。

在配有xeon處理器的高階伺服器中,你可以啟用或者關閉hyper-threading(超執行緒功能)。hyper-threading在作業系統裡將一顆處理器虛擬化為兩顆使用。red hat enterprise linux as和suse linux enterprise server都支援該功能,從而可以使處理器在同一時刻執行兩個執行緒或者程序。對於支援hyper-threading的作業系統和軟體來說,不需要增加cpu時鐘頻率即可使效能得到明顯的改進。例如,在4路的伺服器上起用hyper-threading功能並使用效能監測工具(如top)來檢測,可以看到8顆處理器。

提示,對於hyper-threading:

_ 基於smp核心的linux才可以支援hyper-threading

_ 安裝的cpu數量越多,從hyper-threading獲得的效能上的提高就越少。可獲得的效能提高大約為:

– 2顆物理cpu: 15-25%

– – 4顆物理cpu: 1-13%

– – 8顆物理cpu: 0-5%

– 如需更多的關於hyper-threading資訊,可。

em64t是intel ia-32處理器的64-bit擴充套件。意思是,處理器能夠支援更多的記憶體並支援64-bit應用同時完全相容現存的32-bit應用。red hat enterprise linux 3 update 2 和 suse linux enterprise server 9支援這種新的處理器。如需更多的em64t資訊,可。

選擇正確的核心

red hat enterprise linux as和suse linux enterprise server都包括有若干個核心包,如table 10-6所列。選擇合適的核心對效能非常重要。

6 記憶體子系統的調優

記憶體子系統的調優不是很容易,需要不停地監測來保證記憶體的改變不會對伺服器的其他子系統造成負面影響。如果要改變虛擬記憶體引數(在/proc/sys/vm),建議您每次只改變乙個引數然後監測效果。對與虛擬記憶體的調整包括以下幾個專案:

配置linux核心如何更新dirty buffers到磁碟。磁碟緩衝區用於暫存磁碟的資料。相對於記憶體來講,磁碟緩衝區的速度很慢。因此,如果伺服器使用這類記憶體,效能會成問題。當緩衝區內的資料完全dirty,使用:sysctl -w vm.bdflush="30 500 0 0 500 3000 60 20 0"

vm.bdflush有9個引數,但是建議您只改變其中的3個:

配置kswapd daemon,指定linux的記憶體交換頁數量

sysctl -w vm.kswapd="1024 32 64"

三個引數的描述如下:

– tries_base 相當於核心每次所交換的「頁」的數量的四倍。對於有很多交換資訊的系統,增加這個值可以改進效能。

– tries_min 是每次kswapd swaps出去的pages的最小數量。

– swap_cluster 是kswapd 即刻寫如的pages數量。數值小,會提高磁碟i/o的效能;數值大可能也會對請求佇列產生負面影響。

如果要對這些引數進行改動,請使用工具vmstat檢查對效能的影響。其它可以改進效能的虛擬記憶體引數為:

_ buffermem

_ freepages

_ overcommit_memory

_ page-cluster

_ pagecache

_ pagetable_cache

7 網路子系統的調優

作業系統安裝完畢,就要對網路子系統進行調優。對其它子系統的影響:影響cpu利用率,尤其在有大量tcp連線、塊尺寸又非常小時,記憶體的使用會明顯增加。

linux伺服器作業系統

linux作業系統異常流行和廣泛,雖然某些linux發行版適合高階使用者,但另一些linux發行版卻更簡單,而且便於從windows系統切換。基本上linux發行版經常受益於其強大的社群資源。雖然linux作業系統提供了優秀的桌面環境,但linux也非常適合於作伺服器。各linux發行版通常提供了增...

安裝linux作業系統 浪潮伺服器

一直都是在虛擬機器上進行安裝linux作業系統,在伺服器上安裝的很少,也沒有碰到過沒找到驅動的情況,例如什麼raid卡驅動,網絡卡驅動等異常情況的發生。這次安裝了兩台伺服器,浪潮的提供的伺服器,硬碟是兩塊,做的raid1,本身安裝的是centos系統,由於我們這邊基本使用的rhel5.5,從而需要重...

選擇伺服器作業系統

僅代表個人經驗之談。作業系統紛繁複雜,選擇何種作業系統都是每一台伺服器需要面對的問題。每個作業系統都有其優勢範圍。所以面對不同的應用,選擇合適的作業系統很重要,或許你的工作用windows和linux都可以完成。但基於長期發展的眼光,需要在作業系統中做出抉擇,不能說windows系統一定就差,但需要...