成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 測試cpu性能詳解

運維 系統運維
在這篇文章中,主要介紹Linux 測試cpu性能的一些基礎知識,首先介紹一下Linux kernel中的調度器(scheduler),調度器負責調度系統中的兩種資源,一是線程,二是中斷。調度器給不同資源不同的優先級。

在這篇文章中,主要介紹Linux 測試cpu性能的一些基礎知識.首先介紹一下Linux kernel中的調度器(scheduler),調度器負責調度系統中的兩種資源,一是線程,二是中斷。調度器給不同資源不同的優先級。

Linux 測試cpu性能從高到低為:
1. 硬件中斷(Hardware Interrupts)--這些請求由硬件觸發,比如磁盤已經完成了讀寫任務或是網卡受到了新的數據包。
2. 軟件中斷(Software Interrupts)--這里指的是維護內核運行的內核態軟件中斷。比如內核的時鐘管理進程。
3. 實時進程(Real time threads)--實時進程比內核本身具備更高的優先級,它可以搶占內核的CPU時間片,在2.4內核是一個不可搶占的內核,它中不支持實時程序。
4. 內核進程(Kernel threads)--包括所以的內核程序。
5. 用戶進程(User threads)-- 所有運行在用戶態的進程。


關于Linux 測試cpu性能,有3個重要的概念:上下文切換(context switchs),運行隊列(Run queue)和使用率(utilization)。

上下文切換:
目前流行的CPU在同一時間內只能運行一個線程,超線程的處理器可以在同一時間運行多個線程(包括多核CPU),Linux內核會把多核的處理器當作多個單獨的CPU來識別。
 一個標準的Linux內核何以支持運行50~50000個進程運行,對于普通的CPU,內核會調度和執行這些進程。每個進程都會分到CPU的時間片來運行,當一個進程用完時間片或者被更高優先級的進程搶占后,它會備份到CPU的運行隊列中,同時其他進程在CPU上運行。這個進程切換的過程被稱作上下文切換。過多的上下文切換會造成系統很大的開銷。

運行隊列:
每個CPU都會維持一個運行隊列,理想情況下,調度器會不斷讓隊列中的進程運行。進程不是處在sleep狀態就是run able狀態。 如果CPU過載,就會出現調度器跟不上系統的要求,導致可運行的進程會填滿隊列。隊列愈大,程序執行時間就愈長。“load”用來表示運行隊列,用top命令我們可以看到CPU一分鐘,5分鐘和15分鐘內的運行隊列的大小。這個值越大表明系統負荷越大。

Linux 測試cpu性能CPU使用率:
CPU使用率可分為一下幾個部分
User Time—執行用戶進程的時間百分比;
System Time—執行內核進程和中斷的時間百分比;
Wait IO—因為IO等待而使CPU處于idle狀態的時間百分比;
Idle—CPU處于Idle狀態的時間百分比。

關于時間片和動態優先級:
時間片對于CPU來說是很關鍵的參數,如果時間片太長,就會使系統的交互性能變差,用戶感覺不到并行。如果太短,又會造成系統頻繁的上下文切換,使性能下降。對于IO Bound的系統來講并不需要太長的時間片,因為系統主要是IO操作;而對于CPU Bound的系統來說需要長的時間片以保持cache的有效性。每一個進程啟動的時候系統都會給出一個默認的優先級,但在運行過程中,系統會根據進程的運行狀況不斷調整優先級,內核會升高或降低進程的優先級(每次增加或降低5),判斷標準是根據進程處于sleep狀態的時間。IO Bound進程大部分時間在sleep狀態,所以內核會調高它的優先級,CPU Bound進程會被內核懲罰降低優先級。因此,如果一個系統上即運行IO Bound進程,又運行CPU Bound進程,我們會發現,IO Bound進程的性能不會下降,而CPU Bound進程性能會不斷下降。
我們運行一個CPU Bound的程序:cpu-hog。用ps命令可以看出它的優先級在不斷下降。
 

  1. term1# ./cpu-hog  
  2. term2# while :; do ps -eo pid,ni,pri,pcpu,comm | egrep  
  3. 'hog|PRI'; sleep 1; done  
  4. PID NI PRI %CPU COMMAND  
  5. 22855 0 20 84.5 cpu-hog  
  6. PID NI PRI %CPU COMMAND  
  7. 22855 0 18 89.6 cpu-hog  
  8. PID NI PRI %CPU COMMAND  
  9. 22855 0 15 92.2 cpu-hog  
  10. PID NI PRI %CPU COMMAND  
  11. 22855 0 15 93.8 cpu-hog  

我們運行find命令,是一個IO Bound的程序,可以觀察到它的優先級不斷提高。
 

  1. term1# find /  
  2. term2# while :; do ps -eo pid,ni,pri,pcpu,comm | egrep  
  3. 'find|PRI'; sleep 1; done  
  4. PID NI PRI %CPU COMMAND  
  5. 23101 0 20 0.0 find  
  6. PID NI PRI %CPU COMMAND  
  7. 23101 0 21 4.0 find  
  8. PID NI PRI %CPU COMMAND  
  9. 23101 0 23 3.5 find  
  10. PID NI PRI %CPU COMMAND  
  11. 23101 0 23 4.3 find  
  12. PID NI PRI %CPU COMMAND  
  13. 23101 0 23 4.2 find  
  14. PID NI PRI %CPU COMMAND  
  15. 23101 0 23 4.4 find  

 

正如我們之前討論的任何系統的性能比較都是基于基線的,并且監控CPU的性能就是以上3點,運行隊列、CPU使用率和上下文切換。以下是一些對于CPU很普遍的性能要求:
1. 對于每一個CPU來說運行隊列不要超過3,例如,如果是雙核CPU就不要超過6;
2. 如果CPU在滿負荷運行,應該符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
3. 對于上下文切換要結合CPU使用率來看,如果CPU使用滿足上述分布,大量的上下文切換也是可以接受的。
常用的監視工具有,vmstat, top,dstat和mpstat.
 

  1. # vmstat 1  
  2. procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----  
  3. r b swpd free buff cache si so bi bo in cs us sy id wa  
  4. 0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0  
  5. 0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0  
  6. 0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0  

 

r表示運行隊列的大小,
b表示由于IO等待而block的線程數量,
in表示中斷的數量,
cs表示上下文切換的數量,
us表示用戶CPU時間,
sys表示系統CPU時間,
wa表示由于IO等待而是CPU處于idle狀態的時間,
id表示CPU處于idle狀態的總時間。


總結的說,Linux 測試CPU性能監控包含以下方面:
檢查系統的運行隊列,確保每一個CPU的運行隊列不大于3.
確保CPU使用分布滿足70/30原則(用戶70%,系統30%)。
如果系統時間過長,可能是因為頻繁的調度和改變優先級。
CPU Bound進程總是會被懲罰(降低優先級)而IO Bound進程總會被獎勵(提高優先級)。

【編輯推薦】

  1. Linux性能測試工具Lmbench介紹和使用說明
  2. Linux 編程工具介紹及Linux下的編程
  3. Linux 開發工具詳細介紹
  4. Linux下載工具Curl詳解
  5. Linux 測試軟件:從源代碼開始
     
責任編輯:chenqingxiang 來源: hi.baidu
相關推薦

2010-05-26 18:08:30

Linux性能監控

2010-06-04 16:07:09

Linux 性能測試工

2010-12-22 13:09:23

Linux性能監測CPU

2019-12-10 08:10:35

LinuxCPU性能優化

2011-08-01 16:24:04

XCode CodeTimer 測試

2023-07-31 09:13:13

ValidatorGolang

2010-06-04 11:00:27

hadoop性能優化

2019-07-25 07:14:03

LinuxSync操作系統

2010-06-11 11:20:18

Linux性能測試工具

2016-09-14 11:09:06

Web工具運維

2010-12-24 13:25:44

Linux性能監控CPU

2024-03-06 18:09:06

Linux性能工具

2023-11-01 11:51:08

Linux性能優化

2010-06-04 10:09:29

Linux 性能檢測

2010-06-07 14:42:47

Linux性能測試工具

2021-07-03 08:54:49

LinuxSysbench性能

2016-09-23 16:36:25

LinuxPCPhoronix

2010-02-03 17:47:49

千兆交換機

2014-07-28 16:47:41

linux性能

2023-12-11 07:21:36

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产女人与拘做视频免费 | 尤物在线视频 | 九九精品网 | 国产欧美视频一区二区三区 | 久久99蜜桃综合影院免费观看 | 国产97视频在线观看 | 亚洲欧美一区二区三区在线 | 亚洲欧洲小视频 | 亚洲精品1区2区3区 91免费看片 | 日韩一及片 | 久久久久久国产精品久久 | 国产电影一区二区三区爱妃记 | 欧美高清视频一区 | 青青草av网站 | 91九色在线观看 | 成人高清在线视频 | 亚洲三区视频 | 国产精品久久久久久久免费观看 | 亚洲欧美一区二区三区视频 | 国产伦精品一区二区三区精品视频 | 蜜臀久久99精品久久久久久宅男 | 国产精品久久久爽爽爽麻豆色哟哟 | av一级在线观看 | 亚洲交性| 在线观看你懂的网站 | 91亚洲精选 | 久久久精品一区二区三区 | 精品不卡 | 欧美日韩国产免费 | 日韩视频国产 | 亚洲精品视频三区 | 高清欧美性猛交 | 日韩精品免费在线观看 | 日韩亚洲欧美综合 | 国产精品揄拍一区二区久久国内亚洲精 | 欧美日韩一区二区在线 | 亚洲狠狠爱一区二区三区 | 91视频大全 | 999热视频 | 国产美女精品视频 | 福利片在线 |