Linux操作系統(tǒng)性能調(diào)優(yōu)的方法_第1頁
Linux操作系統(tǒng)性能調(diào)優(yōu)的方法_第2頁
Linux操作系統(tǒng)性能調(diào)優(yōu)的方法_第3頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、依據(jù)傳統(tǒng),linux 不同的發(fā)行版本和不同的內(nèi)核對各項參數(shù)及設(shè)置均做了改動, 從而使得系統(tǒng)能夠獲得更好的性能。下邊將分四部分介紹在 red hat enterprise linux as 和 suse linux enterprise server 系統(tǒng)下,如何用以下幾種技巧進行性能的優(yōu)化:quote:1、disabling daemons (關(guān)閉 daemons) 2、shutting down the gui (關(guān)閉 gui)3、changing kernel parameters (轉(zhuǎn)變內(nèi)核參數(shù)) 4、kernel parameters (內(nèi)核參數(shù))5、tuning the proces

2、sor subsystem(處理器子系統(tǒng)調(diào)優(yōu)) 6、tuning the memory subsystem (內(nèi)存子系統(tǒng)調(diào)優(yōu))7、tuning the file system(文件系統(tǒng)子系統(tǒng)調(diào)優(yōu))8、tuning the network subsystem(網(wǎng)絡(luò)子系統(tǒng)調(diào)優(yōu))1 關(guān)閉 daemons有些運行在服務(wù)器中的 daemons (后臺服務(wù)),并不是完全必要的。關(guān)閉這些daemons 可釋放更多的內(nèi)存、削減啟動時間并削減 cpu 處理的進程數(shù)。削減daemons 數(shù)量的同時也增加了服務(wù)器的平安性。缺省狀況下,多數(shù)服務(wù)器都可以平安地停掉幾個 daemons。table 10-1 列出了 re

3、d hat enterprise linux as 下的可調(diào)整進程. table 10-2 列出了 suse linux enterprise server 下的可調(diào)整進程.留意:關(guān)閉 xfs daemon 將導(dǎo)致不能啟動 x,因此只有在不需要啟動 gui 圖形的時候才可以關(guān)閉 xfs daemon。使用 startx 命令前,開啟 xfs daemon,恢復(fù)正常啟動 x。可以依據(jù)需要停止某個進程,如要停止 sendmail 進程,輸入如下命令:red hat: /sbin/service sendmail stop suse linux: /etc/init.d/sendmail stop也

4、可以配置在下次啟動的時候不自動啟動某個進程,還是 sendmail:red hat: /sbin/chkconfig sendmail offsuse linux: /sbin/chkconfig -s sendmail off除此之外,linux 還供應(yīng)了圖形方式下的進程管理功能。對于 red hat,啟動 gui,使用如下命令: /usr/bin/redhat-config-services 或者鼠標(biāo)點擊 main menu -> system settings ->server settings -> services.提示:并非全部的 daemons 都會顯示在該配置

5、界面,如要看到全部的 daemons, 使用如下命令:/sbin/chkconfig list對于 suse linux,圖形界面是 yast2, 可用如下命令來啟動/sbin/yast2 runlevel 或者如 figure 10-2 所示用鼠標(biāo)點擊browse: yast/ ?> yast modules ?> system ?> runlevel editor2 關(guān)閉 gui只要有可能,就不要在 linux server 上啟動 gui 圖形,通常在 linux server 上,沒有必要啟動gui。,全部的管理任務(wù)均可在命令行方式下完成、或者通過重定向 x 和 we

6、b 掃瞄器界面。有幾個可用的基于 web 的工具(例 如 webmin, linuxconf, 和 swat).需要的時候啟動 gui,用完馬上關(guān)閉 gui。多數(shù)狀況,服務(wù)器運行在 runlevel 3, 即在機器啟動的時候不進入 gui。命令行方式下,執(zhí)行startx 來啟動 xserver.1. 查看runlevel的命令:runlevel會顯示出上次和當(dāng)前的 runlevel (如 n 5 表示沒有上次的 runlevel (n) ,當(dāng)前的 runlevel 是 5).2. 在不同的runlevels之間切換,使用命令init如切換到 run level 3,鍵入命令 init 3下邊是

7、對 linux 中不同 runlevels 的簡要描述0 halt 停機(不要將 0 設(shè)置為缺省,否則服務(wù)器啟動后就會馬上關(guān)閉)1- single user mode 單用戶模式2- multi-user 不帶 nfs 的多用戶模式 (假如沒有網(wǎng)絡(luò),相當(dāng)與 3)3- full multi-user mode 完全多用戶模式4 unused 未使用5- x116 reboot 重啟(不要將 6 設(shè)置為缺省,否則服務(wù)器會不斷地重啟)修改文件/etc/inittab 來設(shè)置機器啟動的 runlevel,如 figure 10-3。對于 suse linux enterprise server, 執(zhí)行

8、 yast runlevel 命令轉(zhuǎn)變?nèi)笔unlevel 值.如圖 figure 10-2。缺省狀況下,保存了6 個把握臺:f1f6。為節(jié)省內(nèi)存,可以削減為3 個。使用 mingetty ttyx 命令來實現(xiàn),如圖 figure 10-3提示:即便是已經(jīng)關(guān)閉了 gui,照舊可以遠程連接并啟動 gui,可以使用 ssh-x。3 轉(zhuǎn)變內(nèi)核參數(shù)linux 內(nèi)核是操作系統(tǒng)的核心,對全部的linux 發(fā)行版本是通用的。內(nèi)核參數(shù)可以轉(zhuǎn)變,在命令行下執(zhí)行 sysctl 命令。提示:缺省狀況下,linux 內(nèi)核包括不必重啟就可以使用 sysctl 命令的必要的模塊。盡管如此,假如你在安裝系統(tǒng)的時候選擇移除該

9、功能,那么你只有重新啟動 linux,才可以使得轉(zhuǎn)變生效。suse linux 供應(yīng)了圖形界面下的修改方式。使用如下命令來啟動 powertweak工具:/sbin/yast powertweak使用如下命令啟動基于字符的管理菜單:/sbin/yast2 powertweakred hat 也供應(yīng)了圖形界面下更改 sysctl 參數(shù)的方式:/usr/bin/redhat-config-proc如圖 figure 10-5:parameter storage locations內(nèi)核參數(shù)保存在/proc(特殊是/proc/sys),供應(yīng)了內(nèi)核、處理器、內(nèi)存、網(wǎng)絡(luò)及其他組件的相關(guān)參數(shù)。每個執(zhí)行的進程

10、都有一個以相應(yīng) pid 命名的名目。figure 10-3 列出了一些包括內(nèi)核信息的文件。4 內(nèi)核的參數(shù)table 10-5 列出了 red hat v2.4 與性能關(guān)系親密的一些內(nèi)核參數(shù)。5 處理器子系統(tǒng)調(diào)優(yōu)處理器對于應(yīng)用和數(shù)據(jù)庫服務(wù)器來講是最重要的硬件子系統(tǒng)之一。然而在這些系統(tǒng)中,cpu 經(jīng)常是性能的瓶頸。在配有 xeon 處理器的高端服務(wù)器中,你可以啟用或者關(guān)閉 hyper-threading(超線程功能)。hyper-threading 在操作系 統(tǒng)里將一顆處理器虛擬化為兩顆使用。red hat enterprise linux as 和 suse linux enterprise s

11、erver 都支持該功能,從而可以使處理器在同一時刻執(zhí)行兩個線程或者進程。對于支持hyper-threading 的操作系統(tǒng)和軟件來說,不需要增加 cpu 時鐘頻率即可使性能得到明顯的改進。例如,在 4 路的服務(wù)器上起用 hyper-threading 功能并使用性能監(jiān)測工具(如 top)來檢測,可以看 到 8 顆處理器。如圖 figure 10-6提示,對于 hyper-threading:_ 基于 smp 內(nèi)核的 linux 才可以支持 hyper-threading_ 安裝的 cpu 數(shù)量越多,從 hyper-threading 獲得的性能上的提高就越少??色@得的性能提高大約為: 2 顆

12、物理 cpu: 15-25% 4 顆物理 cpu: 1-13% 8 顆物理 cpu: 0-5% 如需更多的關(guān)于 hyper-threading 信息,可查看更多。em64t 是 intel ia-32 處理器的 64-bit 擴展。意思是,處理器能夠支持更多的內(nèi)存并支持 64-bit 應(yīng)用同時完全兼容現(xiàn)存的 32-bit 應(yīng)用。red hat enterprise linux 3 update 2 和 suse linux enterprise server 9支持這種新的處理器。如需更多的 em64t 信息,可查看更多。選擇正確的內(nèi)核red hat enterprise linux as 和

13、 suse linux enterprise server 都包括有若干個內(nèi)核包,如 table 10-6 所列。選擇合適的內(nèi)核對性能格外重要。6 內(nèi)存子系統(tǒng)的調(diào)優(yōu)內(nèi)存子系統(tǒng)的調(diào)優(yōu)不是很簡潔,需要不停地監(jiān)測來保證內(nèi)存的轉(zhuǎn)變不會對服務(wù)器的其他子系統(tǒng)造成負(fù)面影響。假如要轉(zhuǎn)變虛擬內(nèi)存參數(shù)(在/proc/sys/vm),建議您每次只轉(zhuǎn)變一個參數(shù)然后監(jiān)測效果。對與虛擬內(nèi)存的調(diào)整包括以下幾個項目:配置 linux 內(nèi)核如何更新 dirty buffers 到磁盤。磁盤緩沖區(qū)用于暫存磁盤的數(shù)據(jù)。相對于內(nèi)存來講,磁盤緩沖區(qū)的速度很慢。因此,假如服務(wù)器使用這類內(nèi)存, 性能會成問題。當(dāng)緩沖區(qū)內(nèi) 的數(shù)據(jù)完全 dir

14、ty,使用:sysctl -w vm.bdflush=“30 500 0 0 500 3000 60 20 0“vm.bdflush 有 9 個參數(shù),但是建議您只轉(zhuǎn)變其中的 3 個:· nfract, 為排隊寫入磁盤前,bdflush daemon 允許的緩沖區(qū)最大百分比· ndirty, 為 bdflush 即刻寫的最大緩沖區(qū)的值。假如這個值很大,bdflush需要更多的時間完成磁盤的數(shù)據(jù)更新。· nfract_sync, 發(fā)生同步前,緩沖區(qū)變 dirty 的最大百分比配置 kswapd daemon,指定 linux 的內(nèi)存交換頁數(shù)量sysctl -w vm.

15、kswapd=“1024 32 64“三個參數(shù)的描述如下: tries_base 相當(dāng)于內(nèi)核每次所交換的“頁”的數(shù)量的四倍。對于有很多交換信息的系統(tǒng),增加這個值可以改進性能。 tries_min 是每次 kswapd swaps 出去的 pages 的最小數(shù)量。 swap_cluster 是 kswapd 即刻寫如的 pages 數(shù)量。數(shù)值小,會提高磁盤 i/o的性能;數(shù)值大可能也會對懇求隊列產(chǎn)生負(fù)面影響。假如要對這些參數(shù)進行改動,請使用工具 vmstat 檢查對性能的影響。其它可以改進性能的虛擬內(nèi)存參數(shù)為:_ buffermem_ freepages_ overcommit_memory_

16、page-cluster_ pagecache_ pagetable_cache7 網(wǎng)絡(luò)子系統(tǒng)的調(diào)優(yōu)操作系統(tǒng)安裝完畢,就要對網(wǎng)絡(luò)子系統(tǒng)進行調(diào)優(yōu)。對其它子系統(tǒng)的影響:影響cpu 利用率,尤其在有大量tcp 連接、塊尺寸又格外小時,內(nèi)存的使用會明顯增加。如何預(yù)防性能下降如下的 sysctl 命令用于轉(zhuǎn)變平安設(shè)置,但是它也可以防止網(wǎng)絡(luò)性能的下降。這些命令被設(shè)置為缺省值。關(guān)閉如下參數(shù)可以防止黑客對服務(wù)器 ip 地址的攻擊開啟 tcp syn cookies,愛護服務(wù)器避開受 syn-flood 攻擊,包括服務(wù)取決denial-of-service (dos) 或者分布式服務(wù)拒絕 distributed

17、denial-of-service (ddos) (僅適用 red hat enterprise linux as)以下命令使服務(wù)器忽視來自被列入網(wǎng)關(guān)的服務(wù)器的重定向。因重定向可以被用來進行攻擊,所以我們只接受有牢靠來源的重定向。另外,你可以配置接受或拒絕任何icmp 重定向。icmp 重定向是路由器傳輸路由信息的機制。比如,當(dāng)網(wǎng)關(guān)接收到來自所接網(wǎng)絡(luò)主機的 internet 數(shù)據(jù)報時,網(wǎng)關(guān)可以發(fā)送重定向信息到一臺主機。網(wǎng)關(guān)檢查路由表獲得下一個網(wǎng)關(guān)的地址,其次個網(wǎng)關(guān)將數(shù)據(jù)報路由到目標(biāo)網(wǎng)絡(luò).關(guān)閉這些重定向 得命令如下:假如這個服務(wù)器不是一臺路由器,那么它不會發(fā)送重定向,所以可以關(guān)閉該功能:配置服務(wù)

18、器拒絕接受廣播風(fēng)暴或者 smurf 攻擊 attacks:忽視全部 icmp 包或者 pings:有些路由器針對廣播禎發(fā)送無效的回應(yīng),每個都產(chǎn)生警告并在內(nèi)核產(chǎn)生日志. 這些回應(yīng)可以被忽視:8.針對 tcp 和 udp 的調(diào)優(yōu)下邊的命令用來對連接數(shù)量格外大的服務(wù)器進行調(diào)優(yōu)。對于同時支持很多連接的服務(wù)器,新的連接可以重新使用 time-wait 套接字.這對于 web 服務(wù)器格外有效:假如你使用該命令,還要啟動 time-wait 套接字狀態(tài)的快速循環(huán)功能:圖figure 10-7 顯示出將這些功能啟用,連接數(shù)量明顯降低.由于每個tcp 傳輸都包含遠程客戶端的協(xié)議信息緩存,所以有利于提高性能.緩存

19、中存放 round-trip 時間、最大 segment 大小、擁塞窗口的信息。參數(shù) tcp_fin_timeout 是套接字關(guān)閉時,保持fin-wait-2 狀態(tài)的時間。一個tcp 連接以 three-segment syn 序列開頭, 以 three-segment fin 序列結(jié)束.均不保留數(shù)據(jù).通過轉(zhuǎn)變 tcp_fin_timeout 的值, 從 fin 序列到內(nèi)存可以空閑出來處理新連接的時間縮短了,使性能得到改進.轉(zhuǎn)變這個值的前要經(jīng)過認(rèn)真的監(jiān)測, 避開由于死套接字造成內(nèi)存溢出.服務(wù)器的一個問題是,同一時刻的大量 tcp 連接里有很多的連接被打開但是沒有使用. tcp 的keepali

20、ve 功能檢測到這些連接,缺省狀況下,在2 小時之后丟掉. 2 個小時的可能導(dǎo)致內(nèi)存過度使用,降低性能.因此改成 1800 秒(30 分鐘)是個更好的選擇:對于全部協(xié)議的隊列,設(shè)置最大系統(tǒng)發(fā)送緩存(wmem) 和接收緩存(rmem)到8mb這些設(shè)置指定了創(chuàng)建 tcp 套接字時為其安排的內(nèi)存容量. 另外,使用如下命令發(fā)送和接收緩存.該命令設(shè)定了三個值:最小值、初始值和最大值:第三個值必需小于或等于 wmem_max 和 rmem_max。(suse linux enterprise server 適用) 通過保留路徑驗證來源數(shù)據(jù)包。缺省狀況下,路由器轉(zhuǎn)發(fā)全部的數(shù)據(jù)包,即便是明顯的特別網(wǎng)絡(luò)流量。通

21、過啟動和是的過濾功能,丟掉這些數(shù)據(jù)包:當(dāng)服務(wù)器負(fù)載繁重或者是有很多客戶端都是超長延時的連接故障,可能會導(dǎo)致half-open 連接數(shù)量的增加。這對于 web 服務(wù)器很來講很平常,尤 其有很多撥號客戶時.這些 half-open 連接保存在 backlog connections 隊列中.將這個值最少設(shè)置為 4096 (缺省為 1024). 即便是服務(wù)器不接收這類連接,設(shè)置這個值還能防止受到 denial-of-service (syn-flood)的攻擊.設(shè)置 ipfrag 參數(shù),尤其是 nfs 和 samba 服務(wù)器。這里,我們可以設(shè)置用于重新組合 ip 碎片的最大、最小內(nèi)存。當(dāng) ipfra

22、g_high_thresh 值被指派,碎片會被丟棄直到達到 ipfrag_low_thres 值。當(dāng) tcp 數(shù)據(jù)包傳輸發(fā)生錯誤時,開頭碎片整理。有效的數(shù)據(jù)包保留在內(nèi)存,同時損壞的數(shù)據(jù)包被轉(zhuǎn)發(fā)。例如,設(shè)置可用內(nèi)存范圍從 256 mb 到 384 mb五大 linux 簡潔命令解決系統(tǒng)性能問題管理 linux 主機的性能看起來經(jīng)常象是在變魔術(shù)一樣。很多管理員在遇到性能問題的時候經(jīng)常簡潔化處理,依靠硬件的更新?lián)Q代,更大的內(nèi)存和更強的 cpu 來解決問題。事實上,利用一些簡潔的 linux 命令,可以發(fā)覺很多管理主機的細節(jié)問題并且能快速而簡潔地解決性能問題。一、top對很多管理員來說,最新學(xué)會的就是

23、 top 命令,它可以顯示出當(dāng)前運行的全部內(nèi)核任務(wù),并且供應(yīng)了一些主機狀態(tài)的統(tǒng)計報告。默認(rèn)地,top 命令每隔五分鐘自動更新一次這個數(shù)據(jù)(這個更新間隔是可設(shè)置的)。top 命令的功能豐富到令人難以置信(估量很少有人使用過一半以上的功能)。一般來說你會以h鍵開頭,就是help(說明文檔也格外精彩)。掛念參數(shù)可以快速顯示出你能從中增加和減去的內(nèi)容,同時也可以轉(zhuǎn)變排序。你還可以用 k 來結(jié)束進程或者用 r 標(biāo)注特殊的進程。top 命令顯示當(dāng)天的正常運行時間、系統(tǒng)負(fù)載、處理器的數(shù)量、內(nèi)存的使用率和哪些進程使用了大多數(shù) cpu 資源(包括每個進程的大量相關(guān)信息,例如在線用戶和正在執(zhí)行的命令等)。二、vm

24、statvmstat 命令供應(yīng)應(yīng)你一個當(dāng)前 cpu、io、進程和內(nèi)存使用率的快照。和 top 命令一樣,它自動動態(tài)刷新,并且可以用下面的命令執(zhí)行:$ vmstat 10在這里延遲是指兩次刷新間隔的以秒為單位的時間,這里是 10 秒鐘。vmstat 命令會將檢查的結(jié)果不停刷新顯示在屏幕上,直到你用 ctrl-c 命令 結(jié)束它(或者你也可以在執(zhí)行的時候設(shè)置一個限制)。這個持續(xù)輸出的結(jié)果有時候被用來導(dǎo)入到文件中用來分析性能趨勢,但是我們將找到更好的方式來做這件事 情,在文章后面的部分會介紹。第一列顯示的是處理器, r 列是待命的處理器,而 b 列是休眠的處理器。假如你在這里看到好多個待命的處理器,那

25、說明你可能在某個地方遇到了性能瓶頸。其次列顯示的是內(nèi)存:虛擬的, 空閑的,緩沖和緩存內(nèi)存。第三列顯示的是交換存儲以及具體有多少內(nèi)存在和磁盤做交換。第四列則是 i/o 信息,顯示了塊服務(wù)接收和發(fā)送的塊數(shù)據(jù)信息。最終兩列顯示了系統(tǒng)和 cpu 相關(guān)的信息。系統(tǒng)列顯示的是沖突的數(shù)量和每秒鐘的交換。cpu 列是顯示了特殊有用的信息。每個分列顯示了一個 cpu 時間的百分比。這些分列如下:us:運行用戶任務(wù)和代碼耗費的時間sy:運行內(nèi)核或者系統(tǒng)代碼耗費的時間id:空閑時間wa:等待 io 耗費的時間st:虛擬機占用的時間vmstat 命令擅長用來查詢 cpu 使用狀況,雖然記住每個參數(shù)主要取決于持續(xù)的監(jiān)控

26、,由于對 cpu 進行短時間的觀看你可能無法獲知 cpu 真正的問題所在。你需要查看長期的運行趨勢來獲得一個精確的 cpu 性能信息。三、iostat我們接下來要講的命令是 iostat。iostat 命令(在 ubuntu、紅帽和fedora 系統(tǒng)中都是由 sysstat 軟件包供應(yīng)的)可以供應(yīng)三 個報告:cpu 使用率、設(shè)備使用率和網(wǎng)絡(luò)文件系統(tǒng)使用率。假如你不加任何參數(shù)地運行該命令,它會顯示全部這三個報告,你可以通過加參數(shù)-c、-d 和h 來 單獨顯示它們中的一種。在上面的圖中你可以看到它們中的其中兩個報告,第一個是 cpu 使用率,它將各進程占用的 cpu 用百分比分類列出來了。你能看到

27、用戶進程、系統(tǒng)進程、iowait 和空閑時間等信息。其次個報告是關(guān)于設(shè)備使用率,顯示了安裝在該主機上的每個設(shè)備和一些有用的信息,諸如每秒傳輸量、數(shù)據(jù)塊讀寫,并且允許你對有性能問題的設(shè)備做標(biāo) 記。你可以通過添加k 或者m 參數(shù)來依據(jù)千字節(jié)或者兆字節(jié)顯示統(tǒng)計信息,而不是以數(shù)據(jù)塊為單位,這樣在某些狀況下會更便于查閱和理解。最終一個報告,沒有截圖,顯示的信息和上面介紹的設(shè)備使用率有點相像,只是對象從附件的設(shè)備換成了掛載的網(wǎng)絡(luò)文件系統(tǒng)。四、free下一個命令 free,可以顯示主內(nèi)存和交換內(nèi)存的統(tǒng)計量。你可以通過添加t 參數(shù)來顯示總的內(nèi)存,或者通過添加b 參數(shù)和m 參數(shù)來用字節(jié)數(shù)顯示(默認(rèn)狀況是用千字節(jié)為單位)。free 命令還可以通過使用s 參數(shù)來使其以某個間隔時間持續(xù)刷新地運行:$ free -s 5這個命令是以每隔 5 秒鐘刷新一次的方式運行 free 命令并輸出結(jié)果。五、sar象我們見過的很多其它工具一樣,我們可以用 sar 命令來收集、查看和記錄服務(wù)器的性能數(shù)據(jù)。它比我們見過的任何類似工具都更強大,并且可以收集和顯示長時間段的數(shù)據(jù)。在紅帽和 ubun

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論