1概述
1.1背景
本文的編寫背景是目前機房服務器資源存在未充分使用的現象,為了合理分
配資源,現需要對服務器自身性能進行評估,探索一套評估方法,從而為后續資源合理分配提供依據。
1.2評測指標
簡單來說,服務器硬件性能指標來自於測試對象,一般x86服務器的主要組
成有CPU、內存、硬盤、網卡等。針對單機,評測指標重點關注CPU、內存、IO、網絡;對於集群,重點關注網絡、高可用。
本文主要評測單機性能,指標如下:
CPU—計算能力
內存—延時、速率
IO—讀寫能力
網絡—網絡帶寬
1.3工具概況
CPU主流評測工具有Linux平台的SPECCPU、linpack,Windows平台的Sandra。
內存主流評測工具有Linux平台的stream,Windows平台的Sandra。
IO主流評測工具有Linux平台的Iozone,Windows平台的Iometer。
網絡主流評測工具有Linux平台的iperf、netperf。
其他一些對整體系統進行評測的工具就不再介紹了,例如SPEC系列、TPC基准系列。
2 CPU性能
2.1評測方法
關於Linux測試cpu性能,有3個重要的概念:上下文切換(context switchs),運行隊列(Run queue)和使用率(utilization)。
業務運行中最關注的CPU項就是使用率,使用率是和業務負載強相關的,通常可以通過監控軟件或Linux系統工具獲取。
另一個基本評測值就是計算能力,包括整數、浮點計算,可以使用SPECCPU、linpack測試。
2.2評測工具
CPU使用率是平時最關注的性能項,采用系統工具或第三方工具都可以。具體工具不再詳述。
CPU整數、浮點計算能力,是服務器發布必測項,但是對於客戶卻不太重要,客戶關注的是業務運行時CPU的能力是否會成為瓶頸。評測工具主要有SPECCPU2006、Linpack:
SPEC CPU 2006包括了CINT2006和C FP2006兩個子項目,前者用於測量和對比整數性能,而后者則用於測量和對比浮點性能,SPEC CPU 2006包括了12項整數運算和17項浮點運算。
Linpack現在在國際上已經成為最流行的用於測試高性能計算機系統浮點性能的benchmark。通過利用高性能計算機,用高斯消元法求解N元一次稠密線性代數方程組的測試,評價高性能計算機的浮點性能,測試結果以浮點運算每秒(Flops)給出。
3 內存性能
3.1評測方法
內存性能一般關注的指標是延時、帶寬,測試方法有Windows下使用Sandra,Linux使用stream進行評測,可以得到當前內存的實際速率、延時。這是單獨針對內存的測試方法,但在實際應用中通常對內存的評測是在壓力、穩定性、性能測試時的監測內存的使用。
3.2評測工具
STREAM是業界廣為流行的綜合性內存帶寬實際性能測量工具之一。隨着處理器處理核心數量的增多,內存帶寬對於提升整個系統性能越發重要,如果某個系統不能夠足夠迅速地將內存中的數據傳輸到處理器當中,若干處理核心就會處於等待數據的閑置狀態,而這其中所產生的閑置時間不僅會降低系統的效率還會抵消多核心和高主頻所帶來的性能提升因素。STREAM具有良好的空間局部性,是對TLB友好、Cache友好的一款測試。STREAM支持Copy 、Scale 、 Add、 Triad四種操作。
4 IO性能
4.1評測方法
服務器的存儲性能也就是指IO性能,通常評測的重點是各種數據塊(512B、4K、2M…)下的讀寫能力,具體指標有IOPS、帶寬、時延。測試原理是工具對存儲加壓也就是產生各種讀寫操作來測試整個IO的最大能力。
4.2評測工具
Iometer是Windows系統下對存儲子系統的讀寫性能進行測試的軟件。可以顯示磁盤系統的最大IO能力、磁盤系統的最大吞吐量、CPU使用率、錯誤信息等。用戶可以通過設置不同的測試的參數,有存取類型(如sequential ,random)、讀寫塊大小(如64K、256K),隊列深度等,來模擬實際應用的讀寫環境進行測試。
IOzone主要用來測試操作系統文件系統性能的測試工具,該工具所測試的范圍主要有,write , Re-write, Read, Re-Read, Random Read, Random Write, Random Mix, Backwards Read, Record Rewrite, Strided Read, Fwrite, Frewrite, Fread, Freread, Mmap, Async I/O。使用iozone可以在多線程、多cpu,並指定cpu cache空間大小以及同步或異步I/O讀寫模式的情況下進行測試文件操作性能。
5 網絡性能
5.1評測方法
網絡帶寬不難理解,就是系統收發包時的最大流量,一般分為TCP、UDP兩種模式。影響服務器網絡性能主要是網卡的性能,其他如系統內核、驅動也是相關因素。測試方法一般需要2台服務器進行收發包,一端server,一端client。
5.2評測工具
Iperf是一個網絡性能測試工具。Iperf可以測試TCP和UDP帶寬質量。Iperf可以測量最大TCP帶寬,具有多種參數和UDP特性。Iperf可以報告帶寬,延遲抖動和數據包丟失。利用Iperf這一特性,可以用來測試一些網絡設備如路由器,防火牆,交換機等的性能。
Netperf是一種網絡性能的測量工具,主要針對基於TCP或UDP的傳輸。
Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多快的速度接收數據。