Linux系統的性能測試與性能分析

發表于:2012-12-03來源:一淘測試作者:若凌點擊數: 標簽:性能分析linux
Linux系統的性能測試與性能分析1 性能測試簡介 性能測試的過程就是找到系統瓶頸的過程。 性能測試(包括分析和調優)的過程就是在操作系統的各個子系統之間取得平衡的過程。

  Revision History

Version Date Author Description
1.0 2011/5/26 dengwu@taobao.com 初稿
1.1 2011/6/23 dengwu@taobao.com 添加CPU分析
1.2 2012/2/20 dengwu@taobao.com 添加MEM,IO分析
1.3 2012/2/23 dengwu@taobao.com 更新工作原理
1.4 2012/2/25 dengwu@taobao.com 添加中斷分析
1.5 2012/2/28 dengwu@taobao.com 添加網絡分析

  1 性能測試簡介

  性能測試的過程就是找到系統瓶頸的過程。

  性能測試(包括分析和調優)的過程就是在操作系統的各個子系統之間取得平衡的過程。

  操作系統的各個子系統包括:

  CPU

  Memory

  IO

  Network

  他們之間高度依賴,互相影響。比如:

  1. 頻繁的磁盤讀寫會增加對內存的使用

  2. 大量的網絡吞吐,一定意味著非??捎^的CPU利用率

  可用內存的減少可能增加大量的swapping,從而使系統負載上升甚至崩潰

  2 應用程序類型

  性能測試之前,你首先需要判斷你的應用程序是屬于那種類型的,這可以幫助你判斷哪個子系統可能會成為瓶頸。

  通??煞譃槿缦聝煞N:

  CPU bound – 這類程序,cpu往往會處于很高的負載,當系統壓力上升時,相對于磁盤和內存,往往CPU會首先到達瓶頸。Web server,mail server以及大部分服務類程序都屬于這一類。

  I/O bound – 這類程序,往往會頻繁的訪問磁盤,從而發送大量的IO請求。IO類應用程序往往利用cpu發送IO請求之后,便進入sleep狀態,從而造成很高的IOWAIT。數據庫類程序,cache服務器往往屬于這種類型。

  3 CPU

  3.1 性能瓶頸

  3.1.1 運算性能瓶頸

  作為計算機的計算單元,其運算能力方面,可能出現如下瓶頸:

  1. 用戶態進程CPU占用率很高

  2. 系統態(內核態)CPU占用率很高

  測試CPU的運算性能,通常是通過計算圓周率來測試CPU的浮點運算能力和穩定性。據說Pentium CPU的一個運算bug就是通過計算圓周率來發現的。圓周率的計算方法,通常是計算小數點后104萬位,通過比較運算時間來評測CPU的運算能力。

  常用工具:

  SUPER PI(π)

  Wprime 與SuperPI不同的是,可以支持多核CPU的運算速度測試

  FritzChess 一款國際象棋測試軟件,測試每秒鐘可運算的步數

  突破CPU的運算瓶頸,一般只能靠花錢。比如提高時鐘頻率,提高L1,L2 cache容量或不斷追求新一代的CPU架構:

  Core -> Nehalem(E55x,如r710,dsc1100) -> Westmere –> Sandy Bridge

  3.1.2 調度性能瓶頸

  CPU除了負責計算之外,另一個非常重要的功能就是調度。在調度方面,CPU可能會出現如下性能瓶頸:

  Load平均值超過了系統可承受的程度

  IOWait占比過高,導致Load上升或是引入新的磁盤瓶頸

  Context Switch過高,導致CPU就像個搬運工一樣,頻繁在寄存器(CPU Register)和運行隊列(run queue)之間奔波

  硬中斷CPU占比接近于100%

  軟中斷CPU占比接近于100%

  超線程

  超線程芯片可以使得當前線程在訪問內存的間隙,處理器可以使用它的機器周期去執行另外一個線程。一個超線程的物理CPU可以被kernel看做是兩個獨立的CPU。

  3.2 典型監控參數

  3.2.1 參數含義

  Load

  Load是指CPU所有內核正在處理的任務加上處于等待隊列中的進程數之和。

  處于等待隊列(run queue)中的進程包括TASK_RUNNING 和 TASK_UNINTERRUPTIBLE兩種狀態的任務:

  ? 處于可運行狀態的進程

  ? 等待不可中斷任務的進程

  在一個雙核的系統中,如果兩個進程正在執行,有四個進程處于run quque當中,那么load就是6

  Nice%

  用戶進程空間內,通過調用nice或setpriority系統調用改變過優先級的進程的CPU占用率

  Iowait%

  CPU等待IO操作的時間

  Idle%

  CPU空閑時間

  Intr/s

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97