免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
服務(wù)器性能評價
工作這么久了,主要就是服務(wù)器端的開發(fā),由于業(yè)務(wù)性質(zhì),對于性能的考慮是每天不得不面對的問題,每次出方案,都是以預(yù)估總pv、單機(jī)支持最大并發(fā)、預(yù)計機(jī)器資源。。。。。。等等一系列問題開始,所以程序運行中單個函數(shù)的耗時,上線后整體性能的觀察都非常重要。經(jīng)過一段時間的積累和同事的指點,把相關(guān)的內(nèi)容記錄下,也與有同樣需求的同學(xué)分享,共同進(jìn)步。 

        一:首先,可已從如下四個方面觀察你的服務(wù)器機(jī)器目前的性能情況: 

       1,CPU 

       2,內(nèi)存 

       3,磁盤I/O帶寬 

       4,網(wǎng)絡(luò)I/O帶寬 

       二:其次,要對如何評估系統(tǒng)性能有個基本的標(biāo)準(zhǔn),經(jīng)過一段時間的觀察,歸納如下: 

       1,對于CPU,正常情況(非高峰期)下, user% + sys% < 60% 是很好的情況 

        也許你會問,為什么要小于60%,剩余的40%做什么?這個是業(yè)務(wù)性質(zhì)決定的,tx的業(yè)務(wù)都是有時間段高峰期的,比如早九點-十點,晚八點-十點,是用戶訪問高峰期,我們要保證服務(wù)器能夠處理尖峰并發(fā),所以大多時候有30%~40%的空閑是可以接受而且是必須的。當(dāng)你的服務(wù)器在平時cpu使用率一直>80%,那就要不得不考慮擴(kuò)容或者程序本身性能優(yōu)化了調(diào)皮。 

       2,對于內(nèi)存,同樣正常情況下,Swap In(si)=0,Swap Out(so)=0是很好的情況,當(dāng)然允許偶爾的尖峰,但是曲線要相對平滑,消峰是很有必要的。如果出現(xiàn) Per CPU with 10 page/s,那么就要重點觀察了。 

       3,對于磁盤,正常情況下,iowait % < 25%是很好的情況,如果長期>40%,那么就會影響反映能力了 

      其中: 

       %user:表示CPU處在用戶模式下的時間百分比。 

       %sys:表示CPU處在系統(tǒng)模式下的時間百分比。 

       %iowait:表示CPU等待輸入輸出完成時間的百分比。 

       swap in:即si,表示虛擬內(nèi)存的頁導(dǎo)入,即從SWAP DISK交換到RAM 

       swap out:即so,表示虛擬內(nèi)存的頁導(dǎo)出,即從RAM交換到SWAP DISK。 

       三:接下來介紹,在工作中常用到的性能分析工具, 有些常用的系統(tǒng)命令: 

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

       工作中,我比較常用的組合方式為: 

      1,  用vmstat、sar、iostat檢測是否是CPU瓶頸 

      2,用free、vmstat檢測是否是內(nèi)存瓶頸 

      3,用iostat檢測是否是磁盤I/O瓶頸 

      4, 用netstat檢測是否是網(wǎng)絡(luò)帶寬瓶頸 

      通常,會用命令uptime,看下總體cpu使用情況,例如我其中一臺線上機(jī)器情況 

     uptime   
     8:40pm  up 580 days  2:34,  3 users,  load average: 1.24, 1.44, 1.67 

    重點關(guān)注,load average  ,這三個值的大小一般不能大于系統(tǒng)CPU的個數(shù),例如,本輸出中系統(tǒng)有4個CPU,如果load average的三個值長期大于4時,說明CPU很繁忙,負(fù)載很高,可能會影響系統(tǒng)性能,但是偶爾大于4時,倒不用擔(dān)心,一般不會影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個數(shù),則表示CPU還有空閑的時間片,比如本例中的輸出,CPU是非??臻e的,為下次業(yè)務(wù)放量最準(zhǔn)備,哈哈。 

   1)  用vmstat 詳細(xì)分析cpu的性能:用該命令分析我線上機(jī)器 

vmstat 1 
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------ 
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 
2  0 189216 5439580 506476 1303832    0    0     0     0    0    0 14  6 79  1  0 
6  1 189216 5439588 506476 1303832    0    0     0    60 12544 13986 17  5 77  1  0 
1  0 189216 5439340 506476 1303832    0    0     0     0 12441 14394 18  4 78  0  0 
1  0 189216 5439588 506476 1303832    0    0     0     0 12540 15346 18  4 78  0  0 

解釋下: 

Procs 

     r:列表示運行和等待cpu時間片的進(jìn)程數(shù),這個值如果長期大于系統(tǒng)CPU的個數(shù),說明CPU不足,需要增加CPU。 

     b:列表示在等待資源的進(jìn)程數(shù),比如正在等待I/O、或者內(nèi)存交換等。 

Cpu 

    us:列顯示了用戶進(jìn)程消耗的CPU 時間百分比。us的值比較高時,說明用戶進(jìn)程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優(yōu)化程序或算法。 

     sy:列顯示了內(nèi)核進(jìn)程消耗的CPU時間百分比。Sy的值較高時,說明內(nèi)核消耗的CPU資源很多。 

    根據(jù)經(jīng)驗,us+sy的參考值為70%,如果us+sy大于 70%說明可能存在CPU資源不足。 

Memory 

     swpd: 虛擬內(nèi)存使用情況,單位:KB 

     free: 空閑的內(nèi)存,單位KB 

     buff: 被用來做為緩存的內(nèi)存數(shù),一般對塊設(shè)備的讀寫才需要緩沖,單位:KB 

     cache:表示page cached的內(nèi)存數(shù)量,一般作為文件系統(tǒng)cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件數(shù)較多,如果此時IO中bi比較小,說明文件系統(tǒng)效率比較好。 

Swap 

     si: 從磁盤交換到內(nèi)存的交換頁數(shù)量,單位:KB/秒 

     so: 從內(nèi)存交換到磁盤的交換頁數(shù)量,單位:KB/秒 

I/O 

     bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒 

     bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒 

System 

      in: 每秒的中斷數(shù),包括時鐘中斷 

      cs: 每秒的環(huán)境(上下文)切換次數(shù) 

注意:如果 r經(jīng)常大于 4 ,且id經(jīng)常少于40,表示cpu的負(fù)荷很重。 

          如果si,so 長期不等于0,表示內(nèi)存不足。 

          如果disk 經(jīng)常不等于0, 且在 b中的隊列 大于3, 表示 io性能不好。 

    2) 用sar分析cpu性能,sar是個非常強(qiáng)大的工具,可以對系統(tǒng)的每個方面進(jìn)行單獨的統(tǒng)計,但是使用sar命令會增加系統(tǒng)開銷,不過這些開銷是可以評估的,對系統(tǒng)的統(tǒng)計結(jié)果不會有很大影響。 

sar -u 1 4 
Linux 2.6.16.60-0.21-TENCENT-090803 (RS_Server_vip)     04/28/11 

21:06:13          CPU     %user     %nice   %system   %iowait     %idle 
21:06:14          all     16.83      0.00      4.46      0.99     77.72 
21:06:15          all     15.08      0.00      4.52      0.00     80.40 
21:06:16          all     17.21      0.00      3.99      0.00     78.80 
21:06:17          all     16.75      0.00      3.25      0.00     80.00 
Average:          all     16.47      0.00      4.05      0.25     79.23 

對上面每項的輸出解釋如下: 

  %user列顯示了用戶進(jìn)程消耗的CPU 時間百分比。 

   %nice列顯示了運行正常進(jìn)程所消耗的CPU 時間百分比。 

   %system列顯示了系統(tǒng)進(jìn)程消耗的CPU時間百分比。 

   %iowait列顯示了IO等待所占用的CPU時間百分比 

   %steal列顯示了在內(nèi)存相對緊張的環(huán)境下pagein強(qiáng)制對不同的頁面進(jìn)行的steal操作 。 

   %idle列顯示了CPU處在空閑狀態(tài)的時間百分比。 

有的時候會遇到cpu很空閑,但是性能低下的情況,可能是由于開的進(jìn)程數(shù)小于你cpu的數(shù)目,通常web svr進(jìn)程都會開的很大,因為會調(diào)用很多后臺服務(wù),屬于io類型偏多,邏輯處理偏少的,例如我線上web svr 是240個proc,但邏輯svr通常進(jìn)程數(shù)相對小,因為邏輯處理是耗cpu型的,如果是異步的通常是4個proc,同步的16-32個不等。進(jìn)程數(shù)與服務(wù)器性能也是息息相關(guān)的。 

3)內(nèi)存性能評估free 

free -m 
             total       used       free     shared    buffers     cached 
Mem:          8110       2792       5318          0        494       1263 
-/+ buffers/cache:       1034       7076 
Swap:         2055        184       1870 

注意:一般有這樣一個經(jīng)驗公式:應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存>70%時,表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能,應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<20%時,表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存,20%<應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<70%時,表示系統(tǒng)內(nèi)存資源基本能滿足應(yīng)用需求,暫時不影響系統(tǒng)性能。 

同樣也可以用vmstat觀察內(nèi)存情況,重點關(guān)注si,so的值 

4)i/o性能評估iostat命令 

iostat -d 2 
Linux 2.6.16.60-0.21-TENCENT-090803 (RS_Server_vip)     04/28/11 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 
sda               9.48        22.73        41.50 1139188426 2080012464 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 
sda               0.00         0.00         0.00          0          0 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 
sda               7.50         0.00       112.00          0        224 

對上面每項的輸出解釋如下: 

     Blk_read/s表示每秒讀取的數(shù)據(jù)塊數(shù)。 

     Blk_wrtn/s表示每秒寫入的數(shù)據(jù)塊數(shù)。 

     Blk_read表示讀取的所有塊數(shù)。 

     Blk_wrtn表示寫入的所有塊數(shù)。 

     注意:1:可以通過Blk_read/s和Blk_wrtn/s的值對磁盤的讀寫性能有一個基本的了解,如果Blk_wrtn/s值很大,表示磁盤的寫操作很頻繁,可以考慮優(yōu)化磁盤或者優(yōu)化程序,如果Blk_read/s值很大,表示磁盤直接讀取操作很多,可以將讀取的數(shù)據(jù)放入內(nèi)存中進(jìn)行操作。 

              2:對于這兩個選項的值沒有一個固定的大小,根據(jù)系統(tǒng)應(yīng)用的不同,會有不同的值,但是有一個規(guī)則還是可以遵循的:長期的、超大的數(shù)據(jù)讀寫,肯定是不正常的,這種情況一定會影響系統(tǒng)性能。 

5)I/O性能評估sar 

sar -d 2 3 
Linux 2.6.16.60-0.21-TENCENT-090803 (RS_Server_vip)     04/28/11 

21:24:24          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 
21:24:26       dev8-0     10.40      0.00    324.75     31.24      0.08      7.43      5.52      5.74 

21:24:26          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 
21:24:28       dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 

21:24:28          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 
21:24:30       dev8-0      2.99      0.00     31.84     10.67      0.03     11.33     10.00      2.99 

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 
Average:       dev8-0      4.48      0.00    119.40     26.67      0.04      8.30      6.52      2.92 

需要重點關(guān)注的幾個參數(shù)含義: 

     await表示平均每次設(shè)備I/O操作的等待時間(以毫秒為單位)。 

     svctm表示平均每次設(shè)備I/O操作的服務(wù)時間(以毫秒為單位)。 

     %util表示一秒中有百分之幾的時間用于I/O操作。 

對以磁盤IO性能,一般有如下評判標(biāo)準(zhǔn): 

注意: 正常情況下svctm應(yīng)該是小于await值的,而svctm的大小和磁盤性能有關(guān),CPU、內(nèi)存的負(fù)荷也會對svctm值造成影響,過多的請求也會間接的導(dǎo)致svctm值的增加。 

     await值的大小一般取決與svctm的值和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運行的應(yīng)用程序?qū)⒆兟?,此時可以通過更換更快的硬盤來解決問題。 

     %util項的值也是衡量磁盤I/O的一個重要指標(biāo),如果%util接近100%,表示磁盤產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷的在工作,該磁盤可能存在瓶頸。長期下去,勢必影響系統(tǒng)的性能,可以通過優(yōu)化程序或者通過更換更高、更快的磁盤來解決此問題。 

6)網(wǎng)絡(luò)性能netstat,重用的幾種方式為: 

netstat -s 統(tǒng)計不同協(xié)議否有丟包 

netstat -nlp Rev-Q是否有未讀取的數(shù)據(jù) 

netstat -antl  所有tcp連接狀況 

注意:可以通過netstat查看是否timewait過多的情況,導(dǎo)致端口不夠用,在短連接服務(wù)中且大并發(fā)情況下,要不系統(tǒng)的如下兩個選項打開,允許端口重用 

cat tcp_tw_recycle 

cat tcp_tw_reuse 

7) 網(wǎng)絡(luò)接收詳細(xì)情況tcpdump 

如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包,使用命令: 

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2 

如果想要獲取主機(jī)210.27.48.1接收或發(fā)出的telnet包,使用如下命令: 

#sudo tcpdump  -i eht1 -Xnns0 tcp port 23 host 210.27.48.1
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux服務(wù)器的性能分析與優(yōu)化
Linux服務(wù)器性能評估與優(yōu)化 | MySQL OPS
每天一個linux命令(47):iostat命令
linux性能監(jiān)控工具介紹
性能測試進(jìn)階指南——基礎(chǔ)篇之磁盤IO
Linux iostat監(jiān)測IO狀態(tài)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服