導航:首頁 > 編程系統 > linux伺服器性能測試軟體

linux伺服器性能測試軟體

發布時間:2023-05-16 11:44:20

㈠ 運維的運維工程師使用的平台、工具

運維工程師使用的運維平台和工具包括: Web伺服器:apache、tomcat、nginx、lighttpd 監控:nagios、ganglia、cacti、zabbix 自動部署:ansible、sshpt 配置管理:puppet、cfengine 負載均衡:lvs、haproxy 傳輸工具:scribe、flume 備份工具:rsync、wget 資料庫:mysql、oracle、sqlserver 分布式平台:hdfs、maprece、spark、storm、hive 分布式資料庫:hbase、cassandra、redis、MongoDB 容器:lxc、docker 虛擬化:openstack、xen、kvm 安全:kerberos、selinux、acl、iptables 問題追查:netstat、top、tcpmp、last 廣義上所有開源的軟體都是運維工程師會使用到的平台和工具,同時也包括運維各個技術方向上自行研發的各類平台。

㈡ 伺服器性能測試典型工具介紹

眾所周知,伺服器是整個網路系統和計算平台的核心,許多重要的數據都保存在伺服器上,很多網路服務都在伺服器上運行,因此伺服器性能的好壞決定了整個應用系統的性能。

現在市面上不同品牌、不同種類的伺服器有很多種,用戶在選購時,怎樣從紛繁的型號中選擇出所需要的,適合於自己應用的伺服器產品,僅僅從配置上判別是不夠的,能夠通過實際測試來篩選。而各種的評測軟體有很多種,你應該選擇哪個軟體測試?下面就介紹一些較典型的測試工具:

(一)伺服器整機系統性能測試工具

一台伺服器系統的性能可以按照處理器、內存、存儲、網路幾部分來劃分,而針對不同的應用,可能會對某些部分的性能要求高一些。

Iometer(www.iometer.org):存儲子系統讀寫性能測試

Iometer是Windows系統下對存儲子系統的讀寫性能進行測試的軟體。可以顯示磁碟系統的IO能力、磁碟系統的吞吐量、CPU使用率、錯誤信息等。用戶可以通過設置不同的測試的參數,有存取類型(如sequential ,random)、讀寫塊大小(如64K、256K),隊列深度等,來模擬實際應用的讀寫環境進行測試。

Iometer*作簡單,可以錄制測試腳本,可以准確有效的反映存儲系統的讀寫性能,為各大伺服器和存儲廠商所廣泛採用。

Sisoft Sandra(www.sisoftware.co.uk):WINDOWS下基準評測

SiSoft發行的Sandra系列測試軟體是Windows系統下的基準評測軟體。此軟體有超過三十種以上的測試項目,能夠查看系統所有配件的信息,而且能夠對部分配件(如CPU、內存、硬碟等)進行打分(benchmark),並且可以與其它型號硬體的得分進行對比。另外,該軟體還有系統穩定性綜合測試鉛隱、性能調整向導等附加功能。

Sisoft Sandra軟體在最近發布的Intel bensley平台上測試的內存帶寬性能並不理想,不知道採用該軟體測試的FBD內存性能是否還有參考價值,或許軟體應該針對FBD內存帶寬的測試項目做一個升級

Iozone(www.iozone.org):linux下I/O性能測試

現在有很多的伺服器系統都是採用linux*作系統,在linux平台下測試I/O性能可以採用iozone。

iozone是一個文件系統的benchmark工具,可以測試不同的*作系統中文件系統的讀寫性能。可以測試Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬碟的性能。測試所有這些方面,生成excel文件,另外, iozone還附帶了用gnuplot畫圖的腳本。

該軟體用在大規模機群系統上測試NFS的性能,更加具有說服力。

Netperf(www.netperf.org):網路性能測試

Netperf可以測試伺服器網路性能,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網路性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。

Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是 netperf,用來向server發起網路測試。在client與server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結果;在控制連接建立並傳遞了測試配置信息以後,client與server之間會再建立一個測試連接,用來來彎激拆回傳遞著特殊的流量模式,以測試網路的性能。

對於伺服器系統來說,網路性能顯得尤其重要,有些伺服器上為了節省成本,採用了桌面級的網路晶元,性能怎樣,用這個軟體一測便知了。

以上介紹的這幾款測試工具都是可以免費從網上下埋棗載的非商業軟體,但是其測試結果和認可程度均是為大多數使用者所認同的。你可以根據自己的應用需求選擇不同的軟體進行測試。

(二)針對應用的測試工具

隨著web應用的增多,伺服器應用解決方案中以Web為核心的應用也越來越多,很多公司各種應用的架構都以web應用為主。一般的web測試和以往的應用程序的測試的側重點不完全相同,在基本功能已經通過測試後,就要進行重要的系統性能測試了。系統的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟體系統而言包括執行效率、資源佔用率、穩定性、安全性、兼容性、可靠性等等,以下重點從負載壓力方面來介紹伺服器系統性能的測試。系統的負載和壓力需要採用負載測試工具進行,虛擬一定數量的用戶來測試系統的表現,看是否滿足預期的設計指標要求。負載測試的目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等如何決定系統的性能,例如穩定性和響應等。

負載測試一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的內容都是編寫出測試腳本,腳本中一般包括用戶常用的功能,然後運行,得出報告。

使用壓力測試工具對web伺服器進行壓力測試。測試可以幫助找到一些大型的問題,如死機、崩損、內存泄漏等,因為有些存在內存泄漏問題的程序,在運行一兩次時可能不會出現問題,但是如果運行了成千上萬次,內存泄漏得越來越多,就會導致系統崩滑。

Loadrunner:預測系統行為和性能的負載測試工具

目前,業界中有不少能夠做性能和壓力測試的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已經成為了行業的規范,目前最新的版本8.1。

LoadRunner 是一種預測系統行為和性能的負載測試工具,通過模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner 能夠對整個企業架構進行測試,LoadRunner 適用於各種體系架構,能支持廣范的協議和技術(如Web、Ftp、Database等),能預測系統行為並優化系統性能。它通過模擬實際用戶的*作行為和實行實時性能監測,來幫助您更快的查找和發現問題。Loadrunner是一個強大有力的壓力測試工具,它的腳本可以錄制生成,自動關聯。測試場景面向指標,實現了多方監控。而且測試結果採用圖表顯示,可以自由拆分組合。

通過Loadrunner的測試結果圖表對比,你可以尋找出系統瓶頸的原因,一般來說可以按照伺服器硬體、網路、應用程序、*作系統、中間件的順序進行分析。

Loadrunner是一款收費軟體,根據測試項目和虛擬用戶數目的不同而花費不同的費用。不過你可以下載到免費使用10天的測試版本。

Webload:WEB性能壓力測試

webload是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試; webload通過模擬真實用戶的*作,生成壓力負載來測試web的性能。

用戶創建的是基於javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執行該腳本來衡量web應用程序在真實環境下的性能。當前版本是6.0。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以預定義web應用程序應該滿足的性能指標,然後測試系統是否滿足這些需求指標; cruise control能夠自動把負載加到web應用程序,並將在此負荷下能夠訪問程序的客戶數量生成報告。

webload能夠在測試會話執行期間對監測的系統性能生成實時的報告,這些測試結果通過一個易讀的圖形界面顯示出來,並可以導出到excel和其他文件里。

這兩個軟體的功能雖然強大,並且可以自動生成測試報告,但其終究是一個工具,如果你想真正的定位伺服器性能的好壞和性能的瓶頸所在,需要使用工具的人對於測試軟體的方方面面都要有了解,比如軟體體系構架,網路拓撲,伺服器硬體等知識。

㈢ 如何基準測試Linux PC的性能

基準測試是一項測試或一系列測試,用來確定某個計算機硬體運行起來的狀況有多好。在許多情況下,「基準測試」實際上等同於「壓力測試」。通過測試硬體的極限,然後可以將測得的結果與其他硬體測得的結果作一番比較。

大多數基準測試旨在模擬 PC 在實際情形下遇到的那種工作負載。正因為如此,基準測試幾乎就是獲得定量數據、了解系統性能如何的唯一方法――如果你的數據差強人意,這表明應該升級部分PC部件。

所以,准備好測試你自己的 PC 了嗎?下面是可供 Linux 用戶使用的一些比較實用的基準測試。

一、一體化基準測試

一體化基準測試工具又叫基準測試套件,恰如其名:它們測試和衡量系統的各個方面,而不是專注於某一個特定的硬體,如果你不想用三四個不同的工具搞亂系統,這很有用。

1、Phoronix 測試套件

Phoronix 測試套件是最知名的一體化 Linux 基準測試解決方案之一。有一些人聲稱,它有許多固有的問題;當然,我們不會說它在各方面完美無缺,但是它對大多數用戶來說足夠好。另外,外面值得一用的替代套件並不多。

Phoronix 可使用 100 多個不同的測試套件(即一組組單項測試)和 450 多個不同的測試配置文件。你可以選擇只安裝所需的那部分,所以如果你只關注處理器和普通硬碟基準測試,那麼只要安裝「Processor_Tests」和「Disk_Tests」。它還支持系統日誌和報告。

最棒的是,Phoronix 是自由而開源的。它還提供 Live CD 這種形式,名為 PTS Desktop Live,讓你可以直接從 CD、DVD 或 U 盤來運行,所以你可以在需要時使用「干凈」的操作系統,測試任何機器的硬體。

2、Stress-ng

你可能從名稱中猜得,stress-ng 是真正的壓力測試――它極其適合測試系統的極限,但是由於它要求很嚴苛,我們不建議經常運行它。如果反復接受壓力測試,某些部件(尤其是處理器和普通硬碟)會損耗得更快。

將 stress-ng 安裝到 Debian 和 Ubuntu 上:

sudo apt-get install stress-ng
將 stress-ng 安裝到 Fedora、Red Hat 和 CentOS 上:

sudo yum install stress-ng
一旦安裝完畢,stress-ng 可以測試各種各樣的部件,包括處理器、內存、輸入/輸出、 網路、虛擬內存及更多部件。它還很容易配置――針對每項測試,你可以指定不同的參數,比如多少測試實例、多少個處理器核心、測試強度多大、運行多久等。

介紹所有不同的命令和參數不在本文的范圍之內,但是 Ubuntu 維基上的這個頁面是個不錯的起始點。

3、PassMark BurnInTest

PassMark 擁有各種各樣的 PC 測試和監控軟體,包括大名鼎鼎的 MemTest86 和 PerformanceTest 應用程序,它們只面向Windows 用戶。另一方面,BurnInTest 應用程序卻有 Linux 版本,它無疑值得嘗試一番。

簡而言之,它能同時測試計算機的所有主要子系統。但它不是測試純粹的性能,而是更加專注於穩定性和可靠性。為了獲得最佳結果,我們推薦將它與其他一些形式的性能測試手段結合起來。

它提供免費 30 天試用的服務;一旦試用期結束,就要收費(79 美元)。

二、處理器基準測試

比較兩個不同的處理器很困難。還記得你知道奔騰 III 幾乎總是勝過奔騰 II 的日子嗎?有時候,i5 的性能勝過 i7,四核並非總是勝過雙核。

正由於如此,處理器可以從基準測試比較得到最大的好處――超過其他任何一個 PC 硬體。如果你決定不使用上述一體化測試,那麼可以從下面兩款工具中的一款入手。

1、Geekbench

Geekbench 是目前市面上最出色的處理器基準測試之一。它隨帶 10 項整數工作負載測試和 8 項浮點工作負載測試――其中一些測試在 Hardinfo(下有介紹)中也有,但是其中一些是 Geekbench 特有的。

Windows 版本和 Mac 版本隨帶用戶界面,但 Linux 版本只有命令行可執行文件。基準測試結果上傳到網上,讓你可以以一種比終端更直觀的方式查看分數。

上傳後,Geekbench 會在功能有限的「嘗試模式」(實際上是無限制的免費試用)下運行,只有 64 位和 OpenCL 基準測試。想要 CUDA 基準測試、獨立模式及其他功能,你需要購買 Geekbench 或 Geekbench 專業版。

2、Hardinfo

可以使用原生軟體包管理器從大多數發行版獲取 Hardinfo,不過我覺得在 Deiban 和 Ubuntu 上運行這個命令來得更容易:

sudo apt-get install hardinfo
或者在 Fedora、Red Hat 和 CentOS 上運行這個命令:

sudo yum install hardinfo
Hardinfo 隨帶 6 項不同的基準測試,每一種測試提供了一個分數,你可以用分數來准確地與其他系統比較。處理器測試執行整數運算,FPU 測試執行浮點運算。比較結果時,確保比較的是同樣的測試。

Hardinfo 還是一種迅速獲取系統信息的有用方式。只要瀏覽側邊欄中的各個頁面,即可查看計算機配置的詳細信息。

三、GPU 基準測試

想以一種非科學的方式測試系統的圖形功能,只要看看你的 PC 能不能處理圖形密集型游戲。想獲得更准確的結果,只要運行下列這些測試。

1、Unigine

Unigine 有兩項基準測試值得一提:Valley 基準測試和 Heaven 基準測試。每一項測試渲染不同的場景(分別是覆以森林的山谷和一系列浮空島),迫使你的 GPU「超時工作」。

這是大多數 Linux 游戲玩家首選的圖形基準測試。

免費基準測試是互動式,完全足以大致了解你的 GPU 有多好,但是如果是商業用途、進行深入的逐幀分析,專業版必不可少。售價 495 美元。

2、GFXBench

GFXBench 之前名為 GLBenchmark,它是面向 Linux 系統的兩種主要的圖形基準測試中名氣較小的。它隨帶兩組測試:高級測試(總體性能)和低級測試(特定功能的性能)。

四、數據硬碟基準測試

說到存儲數據的硬碟,速度並非總是最重要。比如說,當硬碟用來存儲備份內容,主要的問題是壽命、可靠性和容量。不過若是日常操作,你需要性能出色的高速固態硬碟。

1、Hdparm

Hdparm 是一種命令行實用工具,安裝在大多數現代的發行版上,非常易於使用。它不僅可用來測試驅動器的性能,還可以針對每個驅動器來改變設置(比如開啟或關閉 DMA)。不過要小心:如果使用不當,Hdparm 會導致驅動器崩潰或損壞!

首先,使用 df 命令列出系統上的所有驅動器。找到想要測試的那個驅動器――如果你沒有把握,可以使用上下文,比如總的磁碟空間或掛載位置,然後與下列命令結合使用。以本文為例,我的驅動器是 /dev/sda2。

為了測試緩沖讀取性能:

sudo hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 180 MB in 3.00 seconds = 59.96 MB/sec`
為了測試緩存讀取性能:

sudo hdparm -T /dev/sda2
/dev/sda2:
Timing cached reads: 3364 MB in 2.00 seconds = 1682.75 MB/sec`
無論你使用哪一個,都要多次運行命令,以獲得多個讀數,然後求平均值,以便更准確地了解性能。確保你沒有做可能影響讀數的其他任何操作,比如傳輸文件。

2、Bonnie++

Bonnie++ 是一種自由的實用工具,旨在基準測試文件系統和硬驅性能。它並不直接安裝在大多數發行版上,但是應該出現在核心代碼庫中。可使用下列命令安裝到 Debian 和 Ubuntu上:

sudo apt-get install bonnie++
或者使用這個命令安裝到Fedora、Red Hat或CentOS上:

sudo yum install bonnie++
一旦安裝完畢,運行Bonnie++的最簡單方法就是使用下列命令:

bonnie++ -d /tmp -r 2048 -u [username]
這會在 /tmp 目錄下運行測試(因而測試 /tmp 所在的驅動器的性能),使用的參數表明系統有 2048MB 內存,測試將以[用戶名]的用戶許可權來運行,本文中該用戶是 jleeso。

不確信你的系統上有多少內存?請使用 free –m 命令,在合計欄下查找 Mem。

最後,你會看到逗號分隔的一行,上面是密密麻麻的不同數字。這些就是你的結果。比例:

1.96,1.96,ubuntu,1,1378913658,4G,,786,99,17094,3,15431,3,4662,91,37881,4,548.4,17,16,,,,,142,0,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,16569us,15704ms,2485ms,51815us,491ms,261ms,291us,400us,710us,382us,42us,787us
拷貝它,輸入下面這個命令:

echo "[粘貼你的結果]" | bon_csv2html > /tmp/t

㈣ 在linux伺服器上用jmeter進行測性能,監控cup等信息。測試完成後導出的報告如下圖,且監聽正常的

正常的,CPU使用率就是這個樣子的

㈤ 一名優秀的Linux運維人員該掌握哪些工具

運維人員必須熟悉的運維工具匯總
某日受邀請參加了一個BBS活動,於是有了下面的內容。
下面是在linux網站運維方向老男孩最近幾年常用的免費的開源軟體,臨時即興想起來的,在這里和大家分享,希望給初學者指引一點路。
linux的世界真的很精彩,還沒入門的朋友趕緊進來吧!
操作系統:Centos※,Ubuntu,Redhat※,suse,Freebsd
網站服務:nginx※,apache※,lighttpd,php※,tomcat※,resin※
數據 庫:MySQL※,Mysql-proxy,MariaDB,PostgreSQL
DB中間件:MyCat,amoeba,MySQL-proxy
代理相關:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)
網站緩存:squid※,nginx※,varnish
NOSQL庫:memcached※,memcachedb,TokyoTyrant※,MongoDB※,Cassandra※,redis※,CouchDB
存儲相關:Nfs※,Moosefs(mfs)※,Hadoop※,glusterfs※,lustre,FastDFS
版本管理:svn※,git※
監控報警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite
域名解析:bind※,powerdns,dnsmasq※
同步軟體:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※
批量管理:ssh+rsync+sersync※,Saltstack※,expect※,puppet※,ansible,cfengine
虛擬 化:kvm※,xen※
雲計 算:openstack※,docker,cloudstack
內網軟體:iptables※,zebra※,iftraf,ntop※,tc※,iftop
郵件軟體:qmail,posfix※,sendmail
遠程撥號:openvpn※,pptp,openswan※,ipip※
統一認證:openldap(可結合微軟活動目錄)※
隊列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq
打包發布:mvn※,ants※,jenkins※,svn
測試軟體:ab,smokeping,siege,JMeter,Webbench,LoadRunner,http_load(都是※)
日誌相關:syslog,rsyslog,Awstats,flume logstash scribe kafka,storm,ELK(Elasticsearch+Logstash+Kibana)DB代理:mysql-proxy,amoeba(更多還是程序實現讀寫分離)
搜索軟體:Sphinx,Xapian(大公司會自己開發類似網路的小規模內部搜索引擎)

提示:
1)以上所有軟體都是老男孩用過或測試過的。
2)帶※的為老男孩最近幾年用的比較多,可信任使用的。也是近年來linux運維的大眾。
3)有了功能分類和軟體名,大家有需求,可以按功能找軟體直接G就知道了。
4)學習要有舍有得,什麼都抓必然短時間都不會精,希望大家能抓重點,抓精髓,大眾軟體(帶※)先熟練了,這是基礎加提高,在研究小眾軟體(不帶※),這是高手之路,最後在研究偏門的,世外高手之路,當然前提是先掌握前面的大眾和小眾。
5)當然還有一些沒有大眾開源的有一些也很棒,如審計堡壘機程序。

㈥ 【性能】Linux性能測試工具

# yum -y install stress

# yum info stress

Linux stress 命令

https://www.cnblogs.com/sparkdev/p/10354947.html

Linux 壓力測試軟體 stress 使用指南

https://www.hi-linux.com/posts/59095.html

stress命令

http://blog.sina.com.cn/s/blog_5f50a4c80101pdik.html

官方網址:http://sebastien.godard.pagesperso-orange.fr

# yum -y install sysstat

# yum info sysstat

系統性能監控神器sysstat

https://segmentfault.com/a/1190000015224864

Linux系統維護監控工具集sysstat詳解

http://www.ha97.com/1037.html

watch命令 : 周期性執行命令

https://www.linuxcool.com/watch

https://wangchujiang.com/linux-command/c/watch.html

CPU個數、CPU核心數、CPU線程數

https://www.cnblogs.com/kimsimple/p/7787018.html

CPU的線程數概念僅僅只針對Intel的CPU才有用,因為它是通過Intel超線程技術來實現的,最早應用在Pentium4上。

如果沒有超線程技術,一個CPU核心對應一個線程。所以答弊桐,對於AMD的CPU來說,只有核心數的概念,沒有線程數的概念。 

現在大多數CPU有超線程能力,在計算和評估平均負載的時 候,CPU的核數指的是邏輯卜扒核數。

#  yum  -y  install  dstat 

# yum info dstat

全能系統監控工具dstat

https://www.cnblogs.com/vincent-hv/p/3358194.html

在計算機中,系統調用(英語:system call),又稱為系統呼清坦叫, 指運行在用戶空間的程序向操作系統內核請求需要更高許可權運行的服務。

https://www.cnblogs.com/anxz/p/6012768.html

https://blog.csdn.net/cs729298/article/details/81906375

https://www.cnblogs.com/machangwei-8/p/10388883.html

https://zhuanlan.hu.com/p/69527356

㈦ 如何測試兩台linux伺服器之間的連接速度有什麼命令或軟體可以做到詳細些。

iperf,具體要纖細直接去看文檔,簡單給列條測試:(TCP和UDP知只是兩種傳輸數據的協議)。

TCP測試:

1、客戶端執行:./iperf -c host -i 1 -w 1M,其中-w表示TCP window size,host需替換成伺服器地址。

2、伺服器執行:./iperf -s -i 1 -w 1M '這裏是指定windows如果是 iperf -s則windwos默認大小為8kbyte/s 。

(7)linux伺服器性能測試軟體擴展閱讀:

優勢:穩定性。

Linux系統是眾所周知最具穩定性的系統;事實上,以Linux系統的美國伺服器用戶在出現系統崩潰的反饋上比例非常少。這對於用戶來說,特別是小型和中小型企業的用戶特別有價值,因為伺服器系統一旦崩潰對企業的業務會造成很大的影響。

與windows相比,Linux處理不運行的進程的能力遠高於windows,因為正是這些進程影響了windows的穩定性的主要因素。

㈧ linux 性能優化-- cpu 切換以及cpu過高

本文先介紹了cpu上下文切換的基礎知識,以及上下文切換的類型(進程,線程等切換)。然後介紹了如何查看cpu切換次數的工具和指標的解釋。同時對日常分析種cpu過高的情況下如何分析和定位的方法做了一定的介紹,使用一個簡單的案例進行分析,先用top,pidstat等工具找出佔用過高的進程id,然後通過分析到底是用戶態cpu過高,還是內核態cpu過高,並用perf 定位到具體的調用函數。(來自極客時間課程學習筆記)

1、多任務競爭CPU,cpu變換任務的時候進行CPU上下文切換(context switch)。CPU執行任務有4種方式:進程、線程、或者硬體通過觸發信號導致中斷的調用。

2、當切換任務的時候,需要記錄任務當前的狀態和獲取下一任務的信息和地址(指針),這就是上下文的內容。因此,上下文是指某一時間點CPU寄存器(CPU register)和程序計數器(PC)的內容, 廣義上還包括內存中進程的虛擬地址映射信息.

3、上下文切換的過程:

4、根據任務的執行形式,相應的下上文切換,有進程上下文切換、線程上下文切換、以及中斷上下文切換三類。

5、進程和線程的區別:
進程是資源分配和執行的基本單位;線程是任務調度和運行的基本單位。線程沒有資源,進程給指針提供虛擬內存、棧、變數等共享資源,而線程可以共享進程的資源。

6、進程上下文切換:是指從一個進程切換到另一個進程。

(1)進程運行態為內核運行態和進程運行態。內核空間態資源包括內核的堆棧、寄存器等;用戶空間態資源包括虛擬內存、棧、變數、正文、數據等

(2)系統調用(軟中斷)在內核態完成的,需要進行2次CPU上下文切換(用戶空間-->內核空間-->用戶空間),不涉及用戶態資源,也不會切換進程。

(3)進程是由內核來管理和調度的,進程的切換只能發生在內核態。所以,進程的上下文不僅包括了用戶空間的資源,也包括內核空間資源。

(4)進程的上下文切換過程:

(5)、下列將會觸發進程上下文切換的場景:

7、線程上下文切換:

8、中斷上下文切換
快速響應硬體的事件,中斷處理會打斷進程的正常調度和執行。同一CPU內,硬體中斷優先順序高於進程。切換過程類似於系統調用的時候,不涉及到用戶運行態資源。但大量的中斷上下文切換同樣可能引發性能問題。

重點關注信息:

系統的就緒隊列過長,也就是正在運行和等待 CPU 的進程數過多,導致了大量的上下文切換,而上下文切換又導致了系統 CPU 的佔用率升高。

這個結果中有兩列內容是我們的重點關注對象。一個是 cswch ,表示每秒自願上下文切換(voluntary context switches)的次數,另一個則是 nvcswch ,表示每秒非自願上下文切換(non voluntary context switches)的次數。

linux的中斷使用情況可以從 /proc/interrupts 這個只讀文件中讀取。/proc 實際上是 Linux 的一個虛擬文件系統,用於內核空間與用戶空間之間的通信。/proc/interrupts 就是這種通信機制的一部分,提供了一個只讀的中斷使用情況。

重調度中斷(RES),這個中斷類型表示,喚醒空閑狀態的 CPU 來調度新的任務運行。這是多處理器系統(SMP)中,調度器用來分散任務到不同 CPU 的機制,通常也被稱為處理器間中斷(Inter-Processor Interrupts,IPI)。

這個數值其實取決於系統本身的 CPU 性能。如果系統的上下文切換次數比較穩定,那麼從數百到一萬以內,都應該算是正常的。但當上下文切換次數超過一萬次,或者切換次數出現數量級的增長時,就很可能已經出現了性能問題。這時,需要根據上下文切換的類型,再做具體分析。

比方說:

首先通過uptime查看系統負載,然後使用mpstat結合pidstat來初步判斷到底是cpu計算量大還是進程爭搶過大或者是io過多,接著使用vmstat分析切換次數,以及切換類型,來進一步判斷到底是io過多導致問題還是進程爭搶激烈導致問題。

CPU 使用率相關的重要指標:

性能分析工具給出的都是間隔一段時間的平均 CPU 使用率,所以要注意間隔時間的設置,特別是用多個工具對比分析時,你一定要保證它們用的是相同的間隔時間。比如,對比一下 top 和 ps 這兩個工具報告的 CPU 使用率,默認的結果很可能不一樣,因為 top 默認使用 3 秒時間間隔,而 ps 使用的卻是進程的整個生命周期。

top 和 ps 是最常用的性能分析工具:

這個輸出結果中,第三行 %Cpu 就是系統的 CPU 使用率,top 默認顯示的是所有 CPU 的平均值,這個時候你只需要按下數字 1 ,就可以切換到每個 CPU 的使用率了。繼續往下看,空白行之後是進程的實時信息,每個進程都有一個 %CPU 列,表示進程的 CPU 使用率。它是用戶態和內核態 CPU 使用率的總和,包括進程用戶空間使用的 CPU、通過系統調用執行的內核空間 CPU 、以及在就緒隊列等待運行的 CPU。在虛擬化環境中,它還包括了運行虛擬機佔用的 CPU。

預先安裝 stress 和 sysstat 包,如 apt install stress sysstat。

stress 是一個 Linux 系統壓力測試工具,這里我們用作異常進程模擬平均負載升高的場景。而 sysstat 包含了常用的 Linux 性能工具,用來監控和分析系統的性能。我們的案例會用到這個包的兩個命令 mpstat 和 pidstat。

下面的 pidstat 命令,就間隔 1 秒展示了進程的 5 組 CPU 使用率,

包括:

perf 是 Linux 2.6.31 以後內置的性能分析工具。它以性能事件采樣為基礎,不僅可以分析系統的各種事件和內核性能,還可以用來分析指定應用程序的性能問題。

第一種常見用法是 perf top,類似於 top,它能夠實時顯示佔用 CPU 時鍾最多的函數或者指令,因此可以用來查找熱點函數,使用界面如下所示:

輸出結果中,第一行包含三個數據,分別是采樣數(Samples)如2K、事件類型(event)如cpu-clock:pppH和事件總數量(Event count)如:371909314。

第二種常見用法,也就是 perf record 和 perf report。 perf top 雖然實時展示了系統的性能信息,但它的缺點是並不保存數據,也就無法用於離線或者後續的分析。而 perf record 則提供了保存數據的功能,保存後的數據,需要你用 perf report 解析展示。

1.啟動docker 運行進程:

2.ab工具測試伺服器性能
ab(apache bench)是一個常用的 HTTP 服務性能測試工具,這里用來模擬 Ngnix 的客戶端。

3.分析過程

CPU 使用率是最直觀和最常用的系統性能指標,在排查性能問題時,通常會關注的第一個指標。所以更要熟悉它的含義,尤其要弄清楚:

這幾種不同 CPU 的使用率。比如說:

碰到 CPU 使用率升高的問題,你可以藉助 top、pidstat 等工具,確認引發 CPU 性能問題的來源;再使用 perf 等工具,排查出引起性能問題的具體函數.

閱讀全文

與linux伺服器性能測試軟體相關的資料

熱點內容
湯姆貓是什麼網站 瀏覽:913
失易得數據恢復怎麼把照片 瀏覽:185
電腦只顯示1個網路 瀏覽:607
數控加工與編程專業怎麼樣 瀏覽:4
西安程序員工資 瀏覽:389
表格怎麼添加一行數據 瀏覽:35
旅遊網站開發怎麼選 瀏覽:669
properties文件位置 瀏覽:679
不想學編程可以做什麼 瀏覽:22
手機照片一鍵壓縮成文件 瀏覽:962
女生微信霸氣個性簽名 瀏覽:626
微博如何看別人一個月的數據 瀏覽:14
萬能小組件怎麼點擊就進入app應用 瀏覽:817
蘋果5s變形怎麼恢復 瀏覽:286
電腦里文件密碼忘了咋辦啊 瀏覽:315
輸入文件夾 瀏覽:31
extjsgrid刪除列 瀏覽:43
gdx文件怎麼打開 瀏覽:759
如何更新大數據量表 瀏覽:311
特殊量產工具 瀏覽:980

友情鏈接