【轉】linux服務器性能查看

轉載自https://blog.csdn.net/achenyuan/article/details/78974729

1.1 cpu性能查看

一、查看物理cpu個數:

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

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

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

三、邏輯cpu的個數:

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

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

1.2 內存查看

一、查看內存使用狀況:

  1.  
    #free -m
  2.  
    total used free shared buffers cached
  3.  
    Mem: 3949 2519 1430 0 189 1619
  4.  
    -/+ buffers/cache: 710 3239
  5.  
    Swap: 3576 0 3576
  6.  
     
  7.  
    total:內存總數
  8.  
    used:已經使用的內存數
  9.  
    free:空閒內存數
  10.  
    shared:多個進程共享的內存總額
  11.  
    - buffers/cache:(已用)的內存數,即used-buffers-cached
  12.  
    + buffers/cache:(可用)的內存數,即 free+buffers+cached
  13.  
     
  14.  
    Buffer Cache用於針對磁盤塊的讀寫;
  15.  
    Page Cache用於針對文件inode的讀寫,這些Cache能有效地縮短I/O系統調用的時間。
  16.  
     
  17.  
     
  18.  
    對操做系統來講 free/used是系統可用/佔用的內存;
  19.  
    對應用程序來講-/+ buffers/cache是可用/佔用內存,由於buffers/cache很快就會被使用。

咱們工做時候應該從應用角度來看。node

1.3 硬盤查看

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

fdisk -l

二、查看文件系統的磁盤空間佔用狀況:

df -h

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

iostat -x 1 5

iostat是含在套裝systat中的,能夠用yum -y install systat來安裝。linux

常關注的參數:ios

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

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

du -sh /root

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

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

1.4 查看平均負載

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

 

load average:平均負載

 

平均負載(load average)是指系統的運行隊列的平均利用率,也能夠認爲是可運行進程的平均數。數據庫

以路況爲例, 單核CPU、單車道 狀況以下:apache

image

  • 0.00-1.00 之間的數字表示此時路況很是良好,沒有擁堵,車輛能夠毫無阻礙地經過。
  • 1.00 表示道路還算正常,但有可能會惡化並形成擁堵。此時系統已經沒有多餘的資源了,管理員須要進行優化。
  • 1.00-*** 表示路況不太好了,若是到達2.00表示有橋上車輛一倍數目的車輛正在等待。這種狀況你必須進行檢查了。

多核CPU - 多車道 狀況以下:編程

image

多核CPU的話,滿負荷狀態的數字爲 "1.00 * CPU核數",即雙核CPU爲2.00,四核CPU爲4.00。 swift

 

通常的進程須要消耗CPU、內存、磁盤I/O、網絡I/O等資源,在這種狀況下,平均負載就不是單獨指的CPU使用狀況。即內存、磁盤、網絡等因素也能夠影響系統的平均負載值。 
在單核處理器中,平均負載值爲1或者小於1的時候,系統處理進程會很是輕鬆,即負載很低。當達到3的時候,就會顯得很忙,達到5或者8的時候就不能很好的處理進程了(其中5和8目前仍是個爭議的閾值,爲了保守起見,建議選擇低的)。

查看load average 數據

下面幾個命令均可以看到 load average

# top 
# uptime 
# w

截圖以下:

 

top 命令的

image

 

uptime 命令的

image

w 命令的

image

 

這裏的 load average 的三個值分別指系統在最後 1/5/15分鐘 的平均負載值。

根據經驗:咱們應該把重點放在5/15分鐘的平均負載,由於1分鐘的平均負載太頻繁,一瞬間的高併發就會致使該值的大幅度改變。

 

 

1.5 vmstat命令來判斷系統是否繁忙

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

  1.  
    procs
  2.  
    r:等待運行的進程數。
  3.  
    b:處在非中斷睡眠狀態的進程數。
  4.  
    w:被交換出去的可運行的進程數。
  5.  
     
  6.  
    memeory
  7.  
    swpd:虛擬內存使用狀況,單位爲 KB。
  8.  
    free:空閒的內存,單位爲 KB。
  9.  
    buff:被用來做爲緩存的內存數,單位爲 KB。
  10.  
     
  11.  
    swap
  12.  
    si:從磁盤交換到內存的交換頁數量,單位爲 KB。
  13.  
    so:從內存交換到磁盤的交換頁數量,單位爲 KB。
  14.  
     
  15.  
    io
  16.  
    bi:發送到塊設備的塊數,單位爲 KB。
  17.  
    bo:從塊設備接受的塊數,單位爲 KB。
  18.  
     
  19.  
    system
  20.  
    in:每秒的中斷數,包括時鐘中斷。
  21.  
    cs:每秒的環境切換次數。
  22.  
     
  23.  
    cpu
  24.  
    按cpu的總使用百分比來顯示。
  25.  
    us:cpu使用時間。
  26.  
    sy:cpu系統使用時間。
  27.  
    id:閒置時間。

 

1.6Linux下可以使用 nethogs 工具查看進程流量

1.7其餘參數
  1.  
    查看內核版本號:
  2.  
    uname -a
  3.  
     
  4.  
    簡化命令:uname -r
  5.  
     
  6.  
    查看系統是 32位仍是64位的:
  7.  
    file /sbin/ init
  8.  
     
  9.  
    查看發行版:
  10.  
    cat /etc/issue
  11.  
    或lsb_release -a
  12.  
     
  13.  
    查看系統已載入的相關模塊:
  14.  
    lsmod
  15.  
     
  16.  
    查看pci設置:
  17.  
    lspci
 
 
 

2.1.3 系統性能分析工具

1.經常使用系統命令

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

2.經常使用組合方式

  1.  
    vmstat、sar、iostat檢測是不是CPU瓶頸
  2.  
    free、vmstat檢測是不是內存瓶頸
  3.  
    iostat檢測是不是磁盤I/O瓶頸
  4.  
    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命令在某個系統的輸出結果:

  1.  
    [root@node1 ~] #vmstat 2 3
  2.  
     
  3.  
    procs
  4.  
    ———–memory———- —swap– —–io—- – system– —–cpu——
  5.  
     
  6.  
    r b swpd freebuff cache si so bi bo incs us sy idwa st
  7.  
     
  8.  
    0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 0
  9.  
     
  10.  
    0 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 0
  11.  
     
  12.  
    0 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0
  13.  
    Procs

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統計輸出:

  1.  
    [root@webserver ~] # sar -u 3 5
  2.  
     
  3.  
    Linux
  4.  
    2.6.9-42.ELsmp (webserver) 11/28/2008_i686_
  5.  
    ( 8 CPU)
  6.  
     
  7.  
    11:41:24
  8.  
    AM CPU %user %nice%system
  9.  
    %iowait %steal %idle
  10.  
     
  11.  
    11:41:27
  12.  
    AM all 0.88 0.00 0.29 0.00 0.00 98.83
  13.  
     
  14.  
    11:41:30
  15.  
    AM all 0.13 0.00 0.17 0.21 0.00 99.50
  16.  
     
  17.  
    11:41:33
  18.  
    AM all 0.04 0.00 0.04 0.00 0.00 99.92
  19.  
     
  20.  
    11:41:36
  21.  
    AM all 90.08 0.00 0.13 0.16 0.00 9.63
  22.  
     
  23.  
    11:41:39
  24.  
    AM all 0.38 0.00 0.17 0.04 0.00 99.41
  25.  
     
  26.  
    Average:
  27.  
    all 0.34 0.00 0.16 0.05 0.00 99.45

輸出解釋以下:

  1.  
    %user列顯示了用戶進程消耗的CPU 時間百分比。
  2.  
    %nice列顯示了運行正常進程所消耗的CPU 時間百分比。
  3.  
    %system列顯示了系統進程消耗的CPU時間百分比。
  4.  
    %iowait列顯示了IO等待所佔用的CPU時間百分比
  5.  
    %steal列顯示了在內存相對緊張的環境下pagein強制對不一樣的頁面進行的steal操做 。
  6.  
    %idle列顯示了CPU處在空閒狀態的時間百分比。
  7.  
    問題

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

在一個多CPU的系統中,若是程序使用了單線程,會出現這麼一個現象,CPU的總體使用率不高,可是系統應用卻響應緩慢,這多是因爲程序使用單線程的緣由,單線程只使用一個CPU,致使這個CPU佔用率爲100%,沒法處理其它請求,而其它的CPU卻閒置,這就致使了總體CPU使用率不高,而應用緩慢現象的發生。

2.3.1 內存性能評估

1.利用free指令監控內存

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

  1.  
    [root@webserver ~] # free -m
  2.  
     
  3.  
    total
  4.  
    used freeshared
  5.  
    buffers cached
  6.  
     
  7.  
    Mem:
  8.  
    8111 7185 926 0 243 6299
  9.  
     
  10.  
    - /+
  11.  
    buffers/cache:
  12.  
    643 7468
  13.  
     
  14.  
    Swap:
  15.  
    8189 0 8189

經驗公式:

  1.  
    應用程序可用內存/系統物理內存>70%,表示系統內存資源很是充足,不影響系統性能;
  2.  
    應用程序可用內存/系統物理內存<20%,表示系統內存資源緊缺,須要增長系統內存;
  3.  
    20%<應用程序可用內存/系統物理內存<70%,表示系統內存資源基本能知足應用需求,暫時不影響系統性能

2.利用vmstat命令監控內存

  1.  
    [root@node1
  2.  
    ~] #
  3.  
    vmstat 2 3
  4.  
     
  5.  
    procs
  6.  
    ———–memory———- —swap– —–io—- – system– —–cpu——
  7.  
     
  8.  
    r b swpd freebuff cache si so bi bo incs us sy idwa st
  9.  
     
  10.  
    0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 0
  11.  
     
  12.  
    0 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 0
  13.  
     
  14.  
    0 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0

memory

  1.  
    swpd --切換到內存交換區的內存數量(k爲單位)。如swpd值偶爾非0,不影響系統性能
  2.  
    free --當前空閒的物理內存數量(k爲單位)
  3.  
    buff --buffers cache的內存數量,通常對塊設備的讀寫才須要緩衝
  4.  
    cache--page cached的內存數量

通常做爲文件系統cached,頻繁訪問的文件都會被cached,如cache值較大,說明cached的文件數較多,若是此時IO中bi比較小,說明文件系統效率比較好。

swap

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

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

2.4.1磁盤I/O性能評估

1.磁盤存儲基礎

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

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

對於寫操做頻繁的數據,能夠考慮使用裸設備代替文件系統。

裸設備優勢:

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

使用裸設備的缺點是:

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

2.利用iostat評估磁盤性能

  1.  
    [root@webserver ~] # iostat -d 2 3
  2.  
     
  3.  
    Linux
  4.  
    2.6.9-42.ELsmp (webserver) 12/01/2008_i686_
  5.  
    ( 8 CPU)
  6.  
     
  7.  
     
  8.  
     
  9.  
    Device:
  10.  
    tps Blk_read/sBlk_wrtn/sBlk_read
  11.  
    Blk_wrtn
  12.  
     
  13.  
    sda 1.87 2.58 114.12 6479462 286537372
  14.  
     
  15.  
     
  16.  
     
  17.  
    Device:
  18.  
    tps Blk_read/sBlk_wrtn/sBlk_read
  19.  
    Blk_wrtn
  20.  
     
  21.  
    sda
  22.  
    0.00 0.00 0.00 0 0
  23.  
     
  24.  
     
  25.  
    Device:
  26.  
    tps Blk_read/sBlk_wrtn/sBlk_read
  27.  
    Blk_wrtn
  28.  
     
  29.  
    sda
  30.  
    1.00 0.00 12.00 0 24

解釋以下:

  1.  
    Blk_read/s --每秒讀取數據塊數
  2.  
    Blk_wrtn/s --每秒寫入數據塊數
  3.  
    Blk_read --讀取的全部塊數
  4.  
    Blk_wrtn --寫入的全部塊數

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

規則遵循:

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

3.利用sar評估磁盤性能

經過「sar –d」組合,能夠對系統的磁盤IO作一個基本的統計,請看下面的一個輸出:

  1.  
    [root@webserver ~] # sar -d 2 3
  2.  
     
  3.  
    Linux
  4.  
    2.6.9-42.ELsmp (webserver) 11/30/2008_i686_
  5.  
    ( 8 CPU)
  6.  
     
  7.  
    11:09:33
  8.  
    PM DEV tps rd_sec/swr_sec/savgrq-sz
  9.  
    avgqu-sz await svctm %util
  10.  
     
  11.  
    11:09:35
  12.  
    PM dev8- 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
  13.  
     
  14.  
    11:09:35
  15.  
    PM DEV tps rd_sec/swr_sec/savgrq-sz
  16.  
    avgqu-sz await svctm %util
  17.  
     
  18.  
    11:09:37
  19.  
    PM dev8- 0 1.00 0.00 12.00 12.00 0.00 0.00 0.00 0.00
  20.  
     
  21.  
    11:09:37
  22.  
    PM DEV tps rd_sec/swr_sec/savgrq-sz
  23.  
    avgqu-sz await svctm %util
  24.  
     
  25.  
    11:09:39
  26.  
    PM dev8- 0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05
  27.  
     
  28.  
    Average:
  29.  
    DEV tps rd_sec/swr_sec/savgrq-sz
  30.  
    avgqu-sz await svctm %util
  31.  
     
  32.  
    Average:
  33.  
    dev8- 0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0.02

參數含義:

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

對磁盤IO性能評判標準:

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

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

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

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

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

2.5.1. 網絡性能評估

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

三 Linux服務器性能調優

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

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

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

  1.  
    許多守護進程或服務一般非必需,消耗寶貴內存和CPU時間。將服務器置於險地。
  2.  
    禁用可加快啓動時間,釋放內存。
  3.  
     
  4.  
    減小CPU要處理的進程數

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

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

3.關掉GUI

四、清理不須要的模塊或功能

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

五、禁用控制面板

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

六、改善Linux Exim服務器性能

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

Djbdns是一個很是強大的DNS服務器,它具備DNS緩存功能,Djbdns比BIND DNS服務器更安全,性能更好,能夠直接經過http://cr.yp.to/下載,或經過Red Hat提供的軟件包得到。

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

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

八、遠程備份服務安全

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

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

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

爲了順利和成功運行企業應用程序,如數據庫服務器,可能須要更新一些默認的內核參數設置,例如,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″

十、優化TCP

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

十一、選擇正確的文件系統

使用ext4文件系統取代ext3

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

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

●非正常關閉和重啓時,它不須要檢查磁盤(這是一個很是耗時的動做)

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

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

在文件系統啓動配置文件fstab中使用noatime選項,若是使用了外部存儲,這個掛載選項能夠有效改善性能。

1三、調整Linux文件描述符限制

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

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

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

對於運行在Linux上的第三方應用程序,同樣有許多性能優化技巧,這些技巧能夠幫助你提升Linux服務器的性能,下降運行成本。

1四、正確配置MySQL

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

1五、正確配置Apache

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

1六、分析Linux服務器性能

提升系統效率最好的辦法是找出致使總體速度降低的瓶頸並解決掉,下面是找出系統關鍵瓶頸的一些基本技巧:

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

● 若是啓動時真的很慢,多是應用程序初次啓動須要較長的加載時間,一旦啓動好後運行就正常了,不然極可能是硬盤太慢了。

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

1七、學習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

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

其它

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

1八、將日誌文件轉移到內存中

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

1九、先打包,後寫入

在內存中劃分出固定大小的空間保存日誌文件,這意味着筆記本電腦硬盤不用一直保持運轉,只有當某個守護進程須要寫入日誌時才運轉,注意ramlog使用的內存空間大小是固定的,不然系統內存會很快被用光,若是筆記本使用固態硬盤,能夠分配50-80MB內存給ramlog使用,ramlog能夠減小許多寫入週期,極大地提升固態硬盤的使用壽命。

20、通常調優技巧

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

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

種一棵樹,最好的時間是十年前,其次是如今。
相關文章
相關標籤/搜索