日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统调优

發布時間:2024/9/3 linux 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统调优 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 系統硬件資源
      • 1.CPU
      • 2.內存
      • 3.磁盤I/O性能
      • 4.網絡寬帶
  • 操作系統相關資源
      • 1.系統安裝優化
      • 2.內核參數優化
      • 3.文件系統優化
  • 應用程序軟件資源
  • 一 linux服務器性能查看
    • 1.1 cpu性能查看
      • 1、查看物理cpu個數:
      • 2、查看每個物理cpu中的core個數:
      • 3、邏輯cpu的個數:
    • 1.2 內存查看
      • 1、查看內存使用情況:
    • 1.3 硬盤查看
      • 1、查看硬盤及分區信息:
      • 2、查看文件系統的磁盤空間占用情況:4
      • 3、查看硬盤的I/O性能(每隔一秒顯示一次,顯示5次):
      • 4、查看linux系統中某目錄的大小:
    • 1.4 查看平均負載
    • 1.5 其他參數
  • 二 Linux服務器性能評估
    • 2.1.1 影響Linux服務器性能的因素
      • 1. 操作系統級
      • 2. 程序應用級
    • 2.1.2 系統性能評估標準
    • 2.1.3 系統性能分析工具
      • 1.常用系統命令
      • 2.常用組合方式
    • 2.1.4 Linux性能評估與優化
    • 2.2.1 CPU性能評估
      • 1.利用vmstat命令監控系統CPU
        • CPU
          • us
          • sy
      • 2.利用sar命令監控系統CPU
    • 2.3.1 內存性能評估
      • 1.利用free指令監控內存
      • 2.利用vmstat命令監控內存
    • 2.4.1磁盤I/O性能評估
      • 1.磁盤存儲基礎
      • 2.利用iostat評估磁盤性能
      • 3.利用sar評估磁盤性能
    • 2.5.1. 網絡性能評估
  • 三 Linux服務器性能調優
    • 1.為磁盤I/O調整Linux內核電梯算法
    • 2.禁用不必要的守護進程,節省內存和CPU資源
    • 3.關掉GUI
    • 4、清理不需要的模塊或功能
    • 5、禁用控制面板
    • 6、改善Linux Exim服務器性能
    • 7、使用AES256增強gpg文件加密安全
    • 8、遠程備份服務安全
    • 9、更新默認內核參數設置
    • 10、優化TCP
    • 11、選擇正確的文件系統
    • 12、使用noatime文件系統掛載選項
    • 13、調整Linux文件描述符限制
    • 14、正確配置MySQL
    • 15、正確配置Apache
    • 16、分析Linux服務器性能
    • 17、學習5個Linux性能命令
      • (1)top
      • (2)vmstat
      • (3)iostat
      • (4)free
      • (5)sar
    • 18、將日志文件轉移到內存中
    • 19、先打包,后寫入
    • 20、一般調優技巧

系統硬件資源

1.CPU

CPU是操作系統穩定運行的根本,CPU的速度與性能在很大程度上決定了系統整體的性能,因此,CPU數量越多、主頻越高,服務器性能也就相對越好。但事實并非完全如此。 目前大部分CPU在同一時間內只能運行一個線程,超線程的處理器可以在同一時間運行多個線程,因此,可以利用處理器的超線程特性提高系統性能。在Linux系統下,只有運行SMP內核才能支持超線程,但是,安裝的CPU數量越多,從超線程獲得的性能方面的提高就越少。另外,Linux內核會把多核的處理器當作多個單獨的CPU來識別,例如兩個4核的CPU,在Lnux系統下會被當作8個單核CPU。但是從性能角度來講,兩個4核的CPU和8個單核的CPU并不完全等價,根據權威部門得出的測試結論,前者的整體性能要比后者低25%~30%。 可能出現CPU瓶頸的應用有郵件服務器、動態Web服務器等,對于這類應用,要把CPU的配置和性能放在主要位置。

2.內存

內存的大小也是影響Linux性能的一個重要的因素,內存太小,系統進程將被阻塞,應用也將變得緩慢,甚至失去響應;內存太大,導致資源浪費。Linux系統采用了物理內存和虛擬內存兩種方式,虛擬內存雖然可以緩解物理內存的不足,但是占用過多的虛擬內存,應用程序的性能將明顯下降,要保證應用程序的高性能運行,物理內存一定要足夠大;但是過大的物理內存,會造成內存資源浪費,例如,在一個32位處理器的Linux操作系統上,超過8GB的物理內存都將被浪費。因此,要使用更大的內存,建議安裝64位的操作系統,同時開啟Linux的大內存內核支持。 由于處理器尋址范圍的限制,在32位Linux操作系統上,應用程序單個進程最大只能使用2GB的內存,這樣以來,即使系統有更大的內存,應用程序也無法“享”用,解決的辦法就是使用64位處理器,安裝64位操作系統。在64位操作系統下,可以滿足所有應用程序對內存的使用需求,幾乎沒有限制。 可能出現內存性能瓶頸的應用有打印服務器、數據庫服務器、靜態Web服務器等,對于這類應用要把內存大小放在主要位置。

3.磁盤I/O性能

磁盤的I/O性能直接影響應用程序的性能,在一個有頻繁讀寫的應用中,如果磁盤I/O性能得不到滿足,就會導致應用停滯。好在現今的磁盤都采用了很多方法來提高I/O性能,比如常見的磁盤RAID技術。

RAID的英文全稱為:RedundantArrayofIndependentDisk,即獨立磁盤冗余陣列,簡稱磁盤陣列。RAID通過將多塊獨立的磁盤(物理硬盤)按不同方式組合起來形成一個磁盤組(邏輯硬盤),從而提供比單個硬盤更高的I/O性能和數據冗余。 通過RAID技術組成的磁盤組,就相當于一個大硬盤,用戶可以對它進行分區格式化、建立文件系統等操作,跟單個物理硬盤一模一樣,唯一不同的是RAID磁盤組的I/O性能比單個硬盤要高很多,同時在數據的安全性也有很大提升。

根據磁盤組合方式的不同,RAID可以分為RAID0,RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等級別,常用的RAID級別有RAID0、RAID1、RAID5、RAID0+1,這里進行簡單介紹。

RAID0:通過把多塊硬盤粘合成一個容量更大的硬盤組,提高了磁盤的性能和吞吐量。這種方式成本低,要求至少兩個磁盤,但是沒有容錯和數據修復功能,因而只能用在對數據安全性要求不高的環境中。

RAID1:也就是磁盤鏡像,通過把一個磁盤的數據鏡像到另一個磁盤上,最大限度地保證磁盤數據的可靠性和可修復性,具有很高的數據冗余能力,但磁盤利用率只有50%,因而,成本最高,多用在保存重要數據的場合。

RAID5:采用了磁盤分段加奇偶校驗技術,從而提高了系統可靠性,RAID5讀出效率很高,寫入效率一般,至少需要3塊盤。允許一塊磁盤故障,而不影響數據的可用性。

RAID0+1:把RAID0和RAID1技術結合起來就成了RAID0+1,至少需要4個硬盤。此種方式的數據除分布在多個盤上外,每個盤都有其鏡像盤,提供全冗余能力,同時允許一個磁盤故障,而不影響數據可用性,并具有快速讀/寫能力。 通過了解各個RAID級別的性能,可以根據應用的不同特性,選擇適合自身的RAID級別,從而保證應用程序在磁盤方面達到最優性能。

4.網絡寬帶

Linux下的各種應用,一般都是基于網絡的,因此網絡帶寬也是影響性能的一個重要因素,低速的、不穩定的網絡將導致網絡應用程序的訪問阻塞,而穩定、高速的網絡帶寬,可以保證應用程序在網絡上暢通無阻地運行。幸運的是,現在的網絡一般都是千兆帶寬或光纖網絡,帶寬問題對應用程序性能造成的影響也在逐步降低。

操作系統相關資源

基于操作系統的性能優化也是多方面的,可以從系統安裝、系統內核參數、網絡參數、文件系統等幾個方面進行衡量,下面依次進行簡單介紹。

1.系統安裝優化

系統優化可以從安裝操作系統開始,當安裝Linux系統時,磁盤的劃分,SWAP內存的分配都直接影響以后系統的運行性能,例如,磁盤分配可以遵循應用的需求:對于對寫操作頻繁而對數據安全性要求不高的應用,可以把磁盤做成RAID0;而對于對數據安全性較高,對讀寫沒有特別要求的應用,可以把磁盤做成RAID1;對于對讀操作要求較高,而對寫操作無特殊要求,并要保證數據安全性的應用,可以選擇RAID5;對于對讀寫要求都很高,并且對數據安全性要求也很高的應用,可以選擇RAID01。這樣通過不同的應用需求設置不同的RAID級別,在磁盤底層對系統進行優化操作。

隨著內存價格的降低和內存容量的日益增大,對虛擬內存SWAP的設定,現在已經沒有了所謂虛擬內存是物理內存兩倍的要求,但是SWAP的設定還是不能忽略,根據經驗,如果內存較小(物理內存小于4GB),一般設置SWAP交換分區大小為內存的2倍;如果物理內存大于4GB小于16GB,可以設置SWAP大小等于或略小于物理內存即可;如果內存大小在16GB以上,原則上可以設置SWAP為0,但并不建議這么做,因為設置一定大小的SWAP還是有一定作用的。

2.內核參數優化

系統安裝完成后,優化工作并沒有結束,接下來還可以對系統內核參數進行優化,不過內核參數的優化要和系統中部署的應用結合起來整體考慮。例如,如果系統部署的是Oracle數據庫應用,那么就需要對系統共享內存段(kernel.shmmax、kernel.shmmni、kernel.shmall)、系統信號量(kernel.sem)、文件句柄(fs.file-max)等參數進行優化設置;如果部署的是Web應用,那么就需要根據Web應用特性進行網絡參數的優化,例如修改net.ipv4.ip_local_port_range、net.ipv4.tcp_tw_reuse、net.core.somaxconn等網絡內核參數。

3.文件系統優化

文件系統的優化也是系統資源優化的一個重點,在Linux下可選的文件系統有ext2、ext3、xfs、ReiserFS,根據不同的應用,選擇不同的文件系統。

Linux標準文件系統是從VFS開始的,然后是ext,接著就是ext2,應該說,ext2是Linux上標準的文件系統,ext3是在ext2基礎上增加日志形成的,從VFS到ext3,其設計思想沒有太大變化,都是早期UNIX家族基于超級塊和inode的設計理念。

XFS文件系統是SGI開發的一個高級日志文件系統,后來移植到了Linux系統下,XFS通過分布處理磁盤請求、定位數據、保持Cache的一致性來提供對文件系統數據的低延遲、高帶寬的訪問,因此,XFS極具伸縮性,非常健壯,具有優秀的日志記錄功能、可擴展性強、快速寫入性能等優點。 ReiserFS是在HansReiser領導下開發出來的一款高性能的日志文件系統,它通過完全平衡樹結構來管理數據,包括文件數據,文件名及日志支持等,與ext2/ext3相比,最大的優點是訪問性能和安全性大幅提升。ReiserFS具有高效、合理利用磁盤空間,先進的日志管理機制,特有的搜尋方式,海量磁盤存儲等優點。

應用程序軟件資源

應用程序的優化其實是整個優化工程的核心,如果一個應用程序存在BUG,那么即使所有其他方面都達到了最優狀態,整個應用系統還是性能低下,所以,對應用程序的優化是性能優化過程的重中之重,這就對程序架構設計人員和程序開發人員提出了更高的要求

一 linux服務器性能查看

1.1 cpu性能查看

1、查看物理cpu個數:

cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l

2、查看每個物理cpu中的core個數:

cat /proc/cpuinfo |grep "cpu cores"|wc -l

3、邏輯cpu的個數:

cat /proc/cpuinfo |grep "processor"|wc -l

物理cpu個數*核數=邏輯cpu個數(不支持超線程技術的情況下)

1.2 內存查看

1、查看內存使用情況:

#free -mtotal used free shared buffers cached Mem: 3949 2519 1430 0 189 1619 -/+ buffers/cache: 710 3239 Swap: 3576 0 3576total:內存總數 used:已經使用的內存數 free:空閑內存數 shared:多個進程共享的內存總額 - buffers/cache:(已用)的內存數,即used-buffers-cached + buffers/cache:(可用)的內存數,即free+buffers+cachedBuffer Cache用于針對磁盤塊的讀寫; Page Cache用于針對文件inode的讀寫,這些Cache能有效地縮短I/O系統調用的時間。對操作系統來說free/used是系統可用/占用的內存; 對應用程序來說-/+ buffers/cache是可用/占用內存,因為buffers/cache很快就會被使用。

我們工作時候應該從應用角度來看。

1.3 硬盤查看

1、查看硬盤及分區信息:

fdisk -l

2、查看文件系統的磁盤空間占用情況:4

df -h

3、查看硬盤的I/O性能(每隔一秒顯示一次,顯示5次):

iostat -x 1 5

iostat是含在套裝systat中的,可以用yum -y install systat來安裝。

常關注的參數:

如%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。 如idle小于70%,I/O的壓力就比較大了,說明讀取進程中有較多的wait。

4、查看linux系統中某目錄的大小:

du -sh /root

如發現某個分區空間接近用完,可以進入該分區的掛載點,用以下命令找出占用空間最多的文件或目錄,然后按照從大到小的順序,找出系統中占用最多空間的前10個文件或目錄:

du -cksh *|sort -rn|head -n 10

1.4 查看平均負載

有時候系統響應很慢,但又找不到原因,這時就要查看平均負載了,看它是否有大量的進程在排隊等待。

最簡單的命令:

uptime--查看過去的1分鐘、5分鐘和15分鐘內進程隊列中的平均進程數量。

還有動態命令top
我們只關心以下部分:

top - 21:33:09 up 1:00, 1 user, load average: 0.00, 0.01, 0.05如果每個邏輯cpu當前的活動進程不大于3,則系統性能良好;如果每個邏輯cpu當前的活動進程不大于4,表示可以接受;如果每個邏輯cpu當前的活動進程大于5,則系統性能問題嚴重。

一般計算方法:負載值/邏輯cpu個數

還可以結合vmstat命令來判斷系統是否繁忙,其中:

procsr:等待運行的進程數。b:處在非中斷睡眠狀態的進程數。w:被交換出去的可運行的進程數。memeoryswpd:虛擬內存使用情況,單位為KB。free:空閑的內存,單位為KB。buff:被用來作為緩存的內存數,單位為KB。swapsi:從磁盤交換到內存的交換頁數量,單位為KB。so:從內存交換到磁盤的交換頁數量,單位為KB。iobi:發送到塊設備的塊數,單位為KB。bo:從塊設備接受的塊數,單位為KB。systemin:每秒的中斷數,包括時鐘中斷。cs:每秒的環境切換次數。cpu按cpu的總使用百分比來顯示。us:cpu使用時間。sy:cpu系統使用時間。id:閑置時間。

1.5 其他參數

查看內核版本號:uname -a簡化命令:uname -r查看系統是32位還是64位的:file /sbin/init查看發行版:cat /etc/issue或lsb_release -a查看系統已載入的相關模塊:lsmod查看pci設置:lspci

二 Linux服務器性能評估

2.1.1 影響Linux服務器性能的因素

1. 操作系統級

CPU內存磁盤I/O帶寬網絡I/O帶寬

2. 程序應用級

2.1.2 系統性能評估標準

影響性能因素好壞糟糕
CPUuser% + sys%< 70%user% + sys%= 85%user% + sys% >=90%
內存Swap In(si)=0 Swap Out(so)=0Per CPU with 10 page/sMore Swap In & Swap Out
磁盤iowait % < 20%iowait % =35%iowait % >= 50%

其中:

%user:表示CPU處在用戶模式下的時間百分比。%sys:表示CPU處在系統模式下的時間百分比。%iowait:表示CPU等待輸入輸出完成時間的百分比。swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAMswap out:即so,表示虛擬內存的頁導出,即從RAM交換到SWAP DISK

2.1.3 系統性能分析工具

1.常用系統命令

Vmstat、sar、iostat、netstat、free、ps、top等

2.常用組合方式

vmstat、sar、iostat檢測是否是CPU瓶頸free、vmstat檢測是否是內存瓶頸iostat檢測是否是磁盤I/O瓶頸netstat檢測是否是網絡帶寬瓶頸

2.1.4 Linux性能評估與優化

系統整體性能評估(uptime命令)
uptime

16:38:00 up 118 days, 3:01, 5 users,load average: 1.22, 1.02, 0.91

注意:

  • load average三值大小一般不能大于系統CPU的個數。

系統有8個CPU,如load average三值長期大于8,說明CPU很繁忙,負載很高,可能會影響系統性能。

  • 但偶爾大于8,一般不會影響系統性能。
  • 如load average輸出值小于CPU個數,則表示CPU有空閑時間片,比如本例中的輸出,CPU是非常空閑的

2.2.1 CPU性能評估

1.利用vmstat命令監控系統CPU

顯示系統各種資源之間相關性能簡要信息,主要看CPU負載情況。

下面是vmstat命令在某個系統的輸出結果:

[root@node1 ~]#vmstat 2 3procs ———–memory———- —swap– —–io—- –system– —–cpu——r b swpd freebuff cache si so bi bo incs us sy idwa st0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 00 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 00 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0Procs

r–運行和等待cpu時間片的進程數,這個值如果長期大于系統CPU的個數,說明CPU不足,需要增加CPU

b–在等待資源的進程數,比如正在等待I/O、或者內存交換等。

CPU

us

用戶進程消耗的CPU 時間百分比。
us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優化程序或算法。

sy

內核進程消耗的CPU時間百分比。Sy的值較高時,說明內核消耗的CPU資源很多。

根據經驗,us+sy的參考值為80%,如果us+sy大于 80%說明可能存在CPU資源不足。

2.利用sar命令監控系統CPU

sar對系統每方面進行單獨統計,但會增加系統開銷,不過開銷可以評估,對系統的統計結果不會有很大影響。

下面是sar命令對某個系統的CPU統計輸出:

[root@webserver ~]# sar -u 3 5Linux 2.6.9-42.ELsmp (webserver) 11/28/2008_i686_ (8 CPU)11:41:24 AM CPU %user %nice%system %iowait %steal %idle11:41:27 AM all 0.88 0.00 0.29 0.00 0.00 98.8311:41:30 AM all 0.13 0.00 0.17 0.21 0.00 99.5011:41:33 AM all 0.04 0.00 0.04 0.00 0.00 99.9211:41:36 AM all 90.08 0.00 0.13 0.16 0.00 9.6311:41:39 AM all 0.38 0.00 0.17 0.04 0.00 99.41Average: all 0.34 0.00 0.16 0.05 0.00 99.45

輸出解釋如下:

%user列顯示了用戶進程消耗的CPU 時間百分比。%nice列顯示了運行正常進程所消耗的CPU 時間百分比。%system列顯示了系統進程消耗的CPU時間百分比。%iowait列顯示了IO等待所占用的CPU時間百分比%steal列顯示了在內存相對緊張的環境下pagein強制對不同的頁面進行的steal操作 。%idle列顯示了CPU處在空閑狀態的時間百分比。問題

你是否遇到過系統CPU整體利用率不高,而應用緩慢的現象?

在一個多CPU的系統中,如果程序使用了單線程,會出現這么一個現象,CPU的整體使用率不高,但是系統應用卻響應緩慢,這可能是由于程序使用單線程的原因,單線程只使用一個CPU,導致這個CPU占用率為100%,無法處理其它請求,而其它的CPU卻閑置,這就導致了整體CPU使用率不高,而應用緩慢現象的發生。

2.3.1 內存性能評估

1.利用free指令監控內存

free是監控Linux內存使用狀況最常用的指令,看下面的一個輸出:

[root@webserver ~]# free -mtotal used freeshared buffers cachedMem: 8111 7185 926 0 243 6299 -/+ buffers/cache: 643 7468Swap: 8189 0 8189

經驗公式:

應用程序可用內存/系統物理內存>70%,表示系統內存資源非常充足,不影響系統性能;應用程序可用內存/系統物理內存<20%,表示系統內存資源緊缺,需要增加系統內存;20%<應用程序可用內存/系統物理內存<70%,表示系統內存資源基本能滿足應用需求,暫時不影響系統性能

2.利用vmstat命令監控內存

[root@node1 ~]# vmstat 2 3procs ———–memory———- —swap– —–io—- –system– —–cpu——r b swpd freebuff cache si so bi bo incs us sy idwa st0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 00 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 00 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0

memory

swpd--切換到內存交換區的內存數量(k為單位)。如swpd值偶爾非0,不影響系統性能free--當前空閑的物理內存數量(k為單位)buff--buffers cache的內存數量,一般對塊設備的讀寫才需要緩沖cache--page cached的內存數量

一般作為文件系統cached,頻繁訪問的文件都會被cached,如cache值較大,說明cached的文件數較多,如果此時IO中bi比較小,說明文件系統效率比較好。

swap

si--由磁盤調入內存,也就是內存進入內存交換區的數量。so--由內存調入磁盤,也就是內存交換區進入內存的數量。

si、so的值長期不為0,表示系統內存不足。需增加系統內存。

2.4.1磁盤I/O性能評估

1.磁盤存儲基礎

頻繁訪問的文件或數據盡可能用內存讀寫代替直接磁盤I/O,效率高千倍。

將經常進行讀寫的文件與長期不變的文件獨立出來,分別放置到不同的磁盤設備上。

對于寫操作頻繁的數據,可以考慮使用裸設備代替文件系統。

裸設備優點:

數據可直接讀寫,不需經過操作系統級緩存,節省內存資源,避免內存資源爭用;避免文件系統級維護開銷,如文件系統需維護超級塊、I-node等;避免了操作系統cache預讀功能,減少了I/O請求

使用裸設備的缺點是:

數據管理、空間管理不靈活,需要很專業的人來操作。

2.利用iostat評估磁盤性能

[root@webserver ~]# iostat -d 2 3Linux 2.6.9-42.ELsmp (webserver) 12/01/2008_i686_ (8 CPU) Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 1.87 2.58 114.12 6479462 286537372 Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 0.00 0.00 0.00 0 0 Device: tps Blk_read/sBlk_wrtn/sBlk_read Blk_wrtnsda 1.00 0.00 12.00 0 24

解釋如下:

Blk_read/s--每秒讀取數據塊數Blk_wrtn/s--每秒寫入數據塊數Blk_read--讀取的所有塊數Blk_wrtn--寫入的所有塊數

可通過Blk_read/s和Blk_wrtn/s值對磁盤的讀寫性能有一個基本的了解.
如Blk_wrtn/s值很大,表示磁盤寫操作頻繁,考慮優化磁盤或程序,
如Blk_read/s值很大,表示磁盤直接讀操作很多,可將讀取的數據放入內存

規則遵循:

長期的、超大的數據讀寫,肯定是不正常的,這種情況一定會影響系統性能。

3.利用sar評估磁盤性能

通過“sar –d”組合,可以對系統的磁盤IO做一個基本的統計,請看下面的一個輸出:

[root@webserver ~]# sar -d 2 3Linux 2.6.9-42.ELsmp (webserver) 11/30/2008_i686_ (8 CPU)11:09:33 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0011:09:35 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:37 PM dev8-0 1.00 0.00 12.00 12.00 0.00 0.00 0.00 0.0011:09:37 PM DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %util11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05Average: DEV tps rd_sec/swr_sec/savgrq-sz avgqu-sz await svctm %utilAverage: dev8-0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0.02

參數含義:

await--平均每次設備I/O操作等待時間(毫秒)svctm--平均每次設備I/O操作的服務時間(毫秒)%util--一秒中有百分之幾的時間用于I/O操作

對磁盤IO性能評判標準:

正常svctm應小于await值,而svctm和磁盤性能有關,CPU、內存負荷也會對svctm值造成影響,過多的請求也會間接的導致svctm值的增加。

await值取決svctm和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時可以通過更換更快的硬盤來解決問題。

%util–衡量磁盤I/O重要指標,

如%util接近100%,表示磁盤產生的I/O請求太多,I/O系統已經滿負荷工作,該磁盤可能存在瓶頸。

可優化程序或者 通過更換 更高、更快的磁盤。

2.5.1. 網絡性能評估

(1)通過ping命令檢測網絡的連通性(2)通過netstat –i組合檢測網絡接口狀況(3)通過netstat –r組合檢測系統的路由表信息(4)通過sar –n組合顯示系統的網絡運行狀態

三 Linux服務器性能調優

1.為磁盤I/O調整Linux內核電梯算法

選擇文件系統后,該算法可以平衡低延遲需求,收集足夠數據,有效組織對磁盤讀寫請求。

2.禁用不必要的守護進程,節省內存和CPU資源

許多守護進程或服務通常非必需,消耗寶貴內存和CPU時間。將服務器置于險地。禁用可加快啟動時間,釋放內存。減少CPU要處理的進程數

一些應被禁用的Linux守護進程,默認自動運行:

序號 守護進程 描述
1 Apmd 高級電源管理守護進程
2 Nfslock 用于NFS文件鎖定
3 Isdn ISDN Moderm支持
4 Autofs 在后臺自動掛載文件系統(如自動掛載CD-ROM)
5 Sendmail 郵件傳輸代理
6 Xfs X Window的字體服務器

3.關掉GUI

4、清理不需要的模塊或功能

服務器軟件包中太多被啟動的功能或模塊實際上是不需要的(如Apache中的許多功能模塊),禁用掉有助于提高系統內存可用量,騰出資源給那些真正需要的軟件,讓它們運行得更快。

5、禁用控制面板

在Linux中,有許多流行的控制面板,如Cpanel,Plesk,Webmin和phpMyAdmin等,禁用釋放出大約120MB內存,內存使用量大約下降30-40%。

6、改善Linux Exim服務器性能

使用DNS緩存守護進程,可降低解析DNS記錄需要的帶寬和CPU時間,DNS緩存通過消除每次都從根節點開始查找DNS記錄的需求,從而改善網絡性能。

Djbdns是一個非常強大的DNS服務器,它具有DNS緩存功能,Djbdns比BIND DNS服務器更安全,性能更好,可以直接通過http://cr.yp.to/下載,或通過Red Hat提供的軟件包獲得。

7、使用AES256增強gpg文件加密安全

為提高備份文件或敏感信息安全,許多Linux系統管理員都使用gpg進行加密,在使用gpg時,最好指定gpg使用AES256加密算法,AES256使用256位密鑰,它是一個開放的加密算法,美國國家安全局(NSA)使用它保護絕密信息。

8、遠程備份服務安全

安全是選擇遠程備份服務最重要的因素,大多數系統管理員都害怕兩件事:(黑客)可以刪除備份文件,不能從備份恢復系統。

為了保證備份文件100%的安全,備份服務公司提供遠程備份服務器,使用scp腳本或RSYNC通過SSH傳輸數據,這樣,沒有人可以直接進入和訪問遠程系統,因此,也沒有人可以從備份服務刪除數據。在選擇遠程備份服務提供商時,最好從多個方面了解其服務強壯性,如果可以,可以親自測試一下。

9、更新默認內核參數設置

為了順利和成功運行企業應用程序,如數據庫服務器,可能需要更新一些默認的內核參數設置,例如,2.4.x系列內核消息隊列參數msgmni有一個默認值(例如,共享內存,或shmmax在Red Hat系統上默認只有33554432字節),它只允許有限的數據庫并發連接,下面為數據庫服務器更好地運行提供了一些建議值(來自IBM DB2支持網站):

kernel.shmmax=268435456 (32位)
kernel.shmmax=1073741824 (64位)
kernel.msgmni=1024
fs.file-max=8192
kernel.sem=”250 32000 32 1024″

10、優化TCP

優化TCP協議有助于提高網絡吞吐量,跨廣域網的通信使用的帶寬越大,延遲時間越長時,建議使用越大的TCP Linux大小,以提高數據傳輸速率,TCP Linux大小決定了發送主機在沒有收到數據傳輸確認時,可以向接收主機發送多少數據。

11、選擇正確的文件系統

使用ext4文件系統取代ext3

● Ext4是ext3文件系統的增強版,擴展了存儲限制

●具有日志功能,保證高水平的數據完整性(在非正常關閉事件中)

●非正常關閉和重啟時,它不需要檢查磁盤(這是一個非常耗時的動作)

●更快的寫入速度,ext4日志優化了硬盤磁頭動作

12、使用noatime文件系統掛載選項

在文件系統啟動配置文件fstab中使用noatime選項,如果使用了外部存儲,這個掛載選項可以有效改善性能。

13、調整Linux文件描述符限制

Linux限制了任何進程可以打開的文件描述符數量,默認限制是每進程1024,這些限制可能會阻礙基準測試客戶端(如httperf和apachebench)和Web服務器本身獲得最佳性能,Apache每個連接使用一個進程,因此不會受到影響,但單進程Web服務器,如Zeus是每連接使用一個文件描述符,因此很容易受默認限制的影響。

打開文件限制是一個可以用ulimit命令調整的限制,ulimit -aS命令顯示當前的限制,ulimit -aH命令顯示硬限制(在未調整/proc中的內核參數前,你不能增加限制)。

Linux第三方應用程序性能技巧

對于運行在Linux上的第三方應用程序,一樣有許多性能優化技巧,這些技巧可以幫助你提高Linux服務器的性能,降低運行成本。

14、正確配置MySQL

為了給MySQL分配更多的內存,可設置MySQL緩存大小,要是MySQL服務器實例使用了更多內存,就減少緩存大小,如果MySQL在請求增多時停滯不動,就增加MySQL緩存。

15、正確配置Apache

檢查Apache使用了多少內存,再調整StartServers和MinSpareServers參數,以釋放更多的內存,將有助于你節省30-40%的內存。

16、分析Linux服務器性能

提高系統效率最好的辦法是找出導致整體速度下降的瓶頸并解決掉,下面是找出系統關鍵瓶頸的一些基本技巧:

● 當大型應用程序,如OpenOffice和Firefox同時運行時,計算機可能會開始變慢,內存不足的出現幾率更高。

● 如果啟動時真的很慢,可能是應用程序初次啟動需要較長的加載時間,一旦啟動好后運行就正常了,否則很可能是硬盤太慢了。

●CPU負載持續很高,內存也夠用,但CPU利用率很低,可以使用CPU負載分析工具監控負載時間。

17、學習5個Linux性能命令

使用幾個命令就可以管理Linux系統的性能了,下面列出了5個最常用的Linux性能命令,包括
top、vmstat、iostat、free和sar,它們有助于系統管理員快速解決性能問題。

(1)top

當前內核服務的任務,還顯示許多主機狀態的統計數據,默認情況下,它每隔5秒自動更新一次。
如:當前正常運行時間,系統負載,進程數量和內存使用率,

此外,這個命令也顯示了那些使用最多CPU時間的進程(包括每個進程的各種信息,如運行用戶,執行的命令等)。

(2)vmstat

Vmstat命令提供當前CPU、IO、進程和內存使用率的快照,它和top命令類似,自動更新數據,如:

$ vmstat 10

(3)iostat

Iostat提供三個報告:CPU利用率、設備利用率和網絡文件系統利用率,使用-c,-d和-h參數可以分別獨立顯示這三個報告。

(4)free

顯示主內存和交換空間內存統計數據,指定-t參數顯示總內存,指定-b參數按字節為單位,使用-m則以兆為單位,默認情況下千字節為單位。

Free命令也可以使用-s參數加一個延遲時間(單位:秒)連續運行,如:

$ free -s 5

(5)sar

收集,查看和記錄性能數據,這個命令比前面幾個命令歷史更悠久,它可以收集和顯示較長周期的數據。

其它

下面是一些歸類為其它的性能技巧:

18、將日志文件轉移到內存中

當一臺機器處于運行中時,最好是將系統日志放在內存中,當系統關閉時再將其復制到硬盤,當你運行一臺開啟了syslog功能的筆記本電腦或移動設備時,ramlog可以幫助你提高系統電池或移動設備閃存驅動器的壽命,使用ramlog的一個好處是,不用再擔心某個守護進程每隔30秒向syslog發送一條消息,放在以前,硬盤必須隨時保持運轉,這樣對硬盤和電池都不好。

19、先打包,后寫入

在內存中劃分出固定大小的空間保存日志文件,這意味著筆記本電腦硬盤不用一直保持運轉,只有當某個守護進程需要寫入日志時才運轉,注意ramlog使用的內存空間大小是固定的,否則系統內存會很快被用光,如果筆記本使用固態硬盤,可以分配50-80MB內存給ramlog使用,ramlog可以減少許多寫入周期,極大地提高固態硬盤的使用壽命。

20、一般調優技巧

盡可能使用靜態內容替代動態內容,如果你在生成天氣預告,或其它每隔1小時就必須更新的數據,最好是寫一個程序,每隔1小時生成一個靜態的文件,而不是讓用戶運行一個CGI動態地生成報告。

為動態應用程序選擇最快最合適的API,CGI可能最容易編程,但它會為每個請求產生一個進程,通常,這是一個成本很高,且不必要的過程,FastCGI是更好的選擇,和Apache的mod_perl一樣,都可以極大地提高應用程序的性能。

總結

以上是生活随笔為你收集整理的Linux系统调优的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。