如何測試伺服器的性能測試
A. 性能測試怎麼測伺服器的穩定性
首先需要在你的伺服器上下載安裝HD Tune,這是國外的一款免費硬碟檢測軟體,默認是英文界面,不過大家可以在網上搜一下也能找到中文版的HD Tune軟體。
用HDtune對硬碟進行讀取性能測試。在軟體窗口的「基準」選項頁面中,點擊左上角的下拉列表選擇要進行性能測試的硬碟,軟體默認為「讀取」測試,然後點擊右邊的「開始(Start)」,如下圖所示:
華雲數據的雲伺服器開通後默認磁碟未分區,要通過該軟體測試寫入速率再開始測試。
B. 如何測試伺服器的穩定性
伺服器穩定性是最重要的,如果在穩定性方面不能夠保證業務運行的需要,在高的性能也是無用的。
正規的伺服器廠商都會對產品驚醒不同溫度和濕度下的運行穩定性測試。重點要考慮的是冗餘功能,如:數據冗餘、網卡榮譽、電源冗餘、風扇冗餘等。
一些測試方法主要分以下幾種:
壓力測試:已知系統高峰期使用人數,驗證各事務在最大並發數(通過高峰期人數換算)下事務響應時間能夠達到客戶要求。系統各性能指標在這種壓力下是否還在正常數值之內。系統是否會因這樣的壓力導致不良反應(如:宕機、應用異常中止等)。
Ramp Up 增量設計:如並發用戶為75人,系統注冊用戶為1500人,以5%-7%作為並發用戶參考值。一般以每15s載入5人的方式進行增壓設計,該數值主要參考測試加壓機性能,建議Run幾次。以事務通過率與錯誤率衡量實際載入方式。
Ramp Up增量設計目標: 尋找已增量方式加壓系統性能瓶頸位置,抓住出現的性能拐點時機,一般常用參考Hits點擊率與吞吐量、CPU、內存使用情況綜合判斷。模擬高峰期使用人數,如早晨的登錄,下班後的退出,工資發送時的消息系統等。
另一種極限模擬方式,可視為在峰值壓力情況下同時點擊事務操作的系統極限操作指標。加壓方式不變,在各腳本事務點中設置同集合點名稱(如:lr_rendzvous("same");)在場景設計中,使用事務點集合策略。以同時達到集合點百分率為標准,同時釋放所有正在Run的Vuser。
穩定性測試:已知系統高峰期使用人數、各事務操作頻率等。設計綜合測試場景,測試時將每個場景按照一定人數比率一起運行,模擬用戶使用數年的情況。並監控在測試中,系統各性能指標在這種壓力下是否能保持正常數值。事務響應時間是否會出現波動或隨測試時間增漲而增加。系統是否會在測試期間內發生如宕機、應用中止等異常情況。
根據上述測試中,各事務條件下出現性能拐點的位置,已確定穩定性測試並發用戶人數。仍然根據實際測試伺服器(加壓機、應用伺服器、數據伺服器三方性能),估算最終並發用戶人數。
場景設計思想:
從穩定性測試場景的設計意義,應分多種情況考慮:
針對同一個場景為例,以下以公文附件上傳為例簡要分析場景設計思想:
1)場景一:已壓力測試環境下性能拐點的並發用戶為設計測試場景,目的驗證極限壓力情況下測試伺服器各性能指標。
2)場景二:根據壓力測試環境中CPU、內存等指標選取伺服器所能承受最大壓力的50%來確定並發用戶數。
測試方法:採用1)Ramp Up-Load all Vusers simultaneously
2)Duration-Run Indefinitely
3)在Sechele-勾選Initalize all Vusers before Run
容錯性測試:通過模擬一些非正常情況(如:伺服器突然斷電、網路時斷時續、伺服器硬碟空間不足等),驗證系統在發生這些情況時是否能夠有自動處理機制以保障系統的正常運行或恢復運行措施。如有HA(自動容災系統),還可以專門針對這些自動保護系統進行另外的測試。驗證其能否有效觸發保護措施。
問題排除性測試:通過原有案例或經驗判斷,針對系統中曾經發生問題或懷疑存在隱患的模塊進行驗證測試。驗證這些模塊是否還會發生同樣的性能問題。如:上傳附件模塊的內存泄露問題、地址本模塊優化、開啟Tivoli性能監控對OA系統性能的影響等等。
測評測試是用於獲取系統的關鍵性能指標點,而進行的相關測試。主要是針對預先沒有明確的預期測試結果,而是要通過測試獲取在特定壓力場景下的性能指標(如:事務響應時間、最大並發用戶數等)。
評測事務交易時間:為獲取某事務在特定壓力下的響應時間而進行的測試活動。通過模擬已知客戶高峰期的各壓力值或預期所能承受的壓力值,獲取事務在這種壓力下的響應時間。
評測事務最大並發用戶數:為獲取某事務在特定系統環境下所能承受的最大並發用戶數而進行的測試活動。通過模擬真實環境或直接採用真實環境,評測在這種環境下事務所能承受的最大並發用戶數。判定標准閾值需預先定義(如響應時間,CPU佔用率,內存佔用率,已出現點擊率峰值,已出現吞吐量峰值等)。
評測系統最大並發用戶數:為獲取整個系統所能夠承受的最大並發用戶數而進行的的測試活動。通過預先分析項目各主要模塊的使用比率和頻率,定義各事務在綜合場景中所佔的比率,以比率方式分配各事務並發用戶數。模擬真實環境或直接採用真實環境,評測在這種環境下系統所能承受的最大並發用戶數。判定標准閥值預先定義(如響應時間,CPU佔用率,內存佔用率,已出現點擊率峰值,已出現吞吐量峰值等)。取值標准以木桶法則為准(並發數最小的事務為整個系統的並發數)。
評測不同資料庫數據量對性能的影響:針對不同資料庫數據量的測試,將測試結果進行對比,分析發現資料庫中各表的數據量對事務性能的影響。得以預先判斷系統長時間運行後,或某些模塊客戶要求數據量較大時可能存在的隱患。
問題定位測試在通過以上測試或用戶實際操作已經發現系統中的性能問題或懷疑已存在性能問題。需通過響應的測試場景重現問題或定義問題。如有可能,可以直接找出引起性能問題所在的代碼或模塊。
該類測試主要還是通過測試出問題的腳本場景,並可以增加發現和檢測的工具,如開啟Tivoli性能監控、開啟HeapDump輸出、linux資源監控命令等。並在場景運行過程中輔以手工測試。
C. 如何測試http伺服器的並發性能測試
這個問題問的有些亂,首先http伺服器指什麼,如果是一般的web服務,那麼到底測的是什麼,是這個服務本身,還是業務層面的內容,如果是業務的,那麼更應該考慮哪些業務是需要做性能測試的,比如核心?訪問量大?數據量大?等等,先要有測試的對象和目標。
然後是並發,性能更關注的是量,而並發是其中特殊的一種行為方式,如果業務並沒有特意將用戶集中訪問,那麼就不用去考慮並發,而是應該逐步加量來推算支撐量,除非你們做的是秒殺之類的搶購業務。
最終都是以一定量的http協議數據訪問介面來模擬用戶所產生的量,達到測試的目的
更多資料請參考https://ke.qq.com/course/143095
D. TCP伺服器性能如何測試
1 可以用專用工具測試,例如:
Netperf(www.netperf.org):網路性能測試。主要針對基於TCP或
UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網路性能測試,即批量數據傳輸(bulk data
transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統
發送數據,以及另外一個系統能夠以多塊的速度接收數據。Netperf工具以client/server方式工作。
server端是netserver,用來偵聽來自client端的連接,client端是 netperf,用來向server發起網路測試。
2 自己寫代碼測試,參考:
http://kmplayer.iteye.com/blog/673226。
E. 如何測試伺服器的性能測試和負載能力
壓力-測試產品極限,負載-測試產品在極限情況下的穩定性,性能-測產品在各個壓力指標下的各個性能參數。
具體測試方法比較復雜,你可以查找相關文檔,找一個高手輔助你進行。
F. 如何測試伺服器
一、伺服器測試方法分為兩個大方面,性能測試與功能測試。
在性能測試方面採用了新的測試方法,主要分為文件測試、資料庫性能測試與Web性能測試三個方面。其中,文件性能與資料庫性能採用美國Quest軟體公司的Benchmark Factory負載測試和容量規劃軟體,Web性能測試則使用了Spirent公司提供的Caw WebAvalanche測試儀。
G. 如何在Windows伺服器做性能測試
一、遠程連接到Windows伺服器,使用windows系統自帶工具進行收集性能數據
1、Windows伺服器中自帶的性能監控工具叫做Performance Monitor,在開始-運行中輸入『Perfmon.msc』,然後回車即可運行。通過界面,控制面板所有控制面板項管理工具性能監視器也能打開
5、用EXCEL將數據轉換為折線圖,並分析性能情況
二、分析性能情況
(1)內存泄露判斷
●虛擬內存位元組數(VirtualBytes)應該遠大於工作集位元組數(Workingset),如果兩者變化規律相反,比如說工作集增長較快,虛擬內存增長較少,則可能說明出現了內存泄露的情況。
●對於Workingset、Private Bytes、Availablebytes這些計數器,如果在測試期間內數值持續增長,而且測試停止後位置在高水平,則也說明存在內存泄露。
●Windows資源監控中,如果ProcessPrivateBytes計數器和ProcessWorkingSet計數器的值在長時間內持續升高,同時MemoryAvailable
bytes計數器的值持續降低,則很可能存在內存泄漏。
(2)CPU使用情況
●一般平均不要超過70%,最大不要超過90%(好:70% 、壞:85%、 很差:90%)
(3)tps(每秒處理事務的數量,在SOAPUI中進行統計)
●一般在10-100,不同應用程序具體值不同
1234567891011121314151617
幾個常用參數的參考值:CPU:% ProcessorTime:表示CPU的使用率,如果值大於80表示CPU的處理調度能力偏低。硬碟:% DiskTime:表示硬碟的I/O操作的頻率(繁忙時間),如果值大於80表示硬碟I/O調度能力偏低。Average Disk QueueLength:表示硬碟I/O操作等待隊列的長度,如果值大於2表示硬碟I/O調度能力偏低。內存Pages/Sec:表示系統對虛擬內存每秒鍾的訪問次數,如果值大於20表示有內存方面的問題。(有可能是物理內存偏低,也有可能是虛擬內存沒有配置正確。一般情況下虛擬內存應為物理內存的1.5-2倍)CommittedBytesandAvailable Bytes:CommittedBytes表示虛擬內存的大小,Available Bytes表示剩餘可用內存的大小。正常情況下,Available Bytes減少,pages(頁面數)應該增加,提供頁面交換。<br>如果Available Bytes的值很小表示物理內存偏低。當關閉一些應用以後,CommittedBytes應該減少,Available Bytes應該增加。因為關閉的進程釋放了之前佔用的內存資源。如果相應的值沒有發生變化,那麼該進程就可能造成了內存泄漏。Cache Bytes:表示系統緩存的大小。如果值大於4M表示物理內存偏低。
三、關於計數器的選擇
perfmon的計數器主要分四種:處理器性能計數器、內存性能計數器、磁碟性能計數器以及網路性能計數器。
以下為監控伺服器常用的計數器:
常用的性能對象與指標
性能對象
計數器
提供的信息
Processor
% Idle Time
% Idle Time 是處理器在采樣期間空閑的時間的百分比
Processor
% Processor Time
% Processor Time 指處理器用來執行非閑置線程時間的百分比。計算方法是,測量範例間隔內非閑置線程活動的時間,用範例間隔減去該值。這個計數器是處理器活動的主要說明器,顯示在範例間隔時所觀察的繁忙時間平均百分比。
Processor
% User Time
% User Time 指處理器處於用戶模式的時間百分比。用戶模式是為應用程序、環境分系統和整數分系統設計的有限處理模式。
Memory
Available Bytes
Available Bytes顯示出當前空閑的物理內存總量。當這個數值變小時,Windows開始頻繁地調用磁碟頁面文件。如果這個數值很小,例如小於5 MB,系統會將大部分時間消耗在操作頁面文件上。
Memory
% Committed Bytes in Use
% Committed Bytes In Use 是 Memory: Committed Bytes 與Memory: Commit Limit之間的比值。(Committed memory指如果需要寫入磁碟時已在分頁文件中保留空間的處於使用中的物理內存。Commit Limit是由分頁文件的大小而決定的。如果擴大了分頁文件,該比例就會減小)。這個計數器只顯示當前百分比;而不是一個平均值。
Memory
Page Faults/sec
Page Faults/sec是指處理器處理錯誤頁的綜合速率。用錯誤頁數/秒來計算。當處理器請求一個不在其工作集(在物理內存中的空間)內的代碼或數據時出現的頁錯誤。這個計數器包括硬錯誤(那些需要磁碟訪問的)和軟錯誤(在物理內存的其它地方找到的錯誤頁)。許多處理器可以在有大量軟錯誤的情況下繼續操作。但是,硬錯誤可以導致明顯的拖延。這個計數器顯示用上兩個實例中觀察到的值之間的差除以實例間隔的持續時間所得的值。
Network Interface
Bytes Total/sec
Bytes Total/sec是發送和接收位元組的速率,包括幀字元在內。
Network Interface
Packets/sec
Packets/sec為發送和接收數據包的速率。
Physical Disk
% Busy Time
% Busy Time指磁碟驅動器忙於為讀或寫入請求提供服務所用的時間的百分比。
Physical Disk
Avg. Disk Queue Length
Avg. Disk Queue Length 指讀取和寫入請求(為所選磁碟在實例間隔中列隊的)的平均數。
Physical Disk
Current Disk Queue Length
Current Disk Queue Length指在收集操作數據時在磁碟上未完成的請求的數目。它包括在快照內存時正在為其提供服務中的請求。這是一個即時長度而非一定間隔時間的平均值。多主軸磁碟設備可以一次有多個請求操作,但是其它同時發生的請求為等候服務。這個計數器可能會反映一個暫時的高或低的列隊長度,但是如果在磁碟驅動器存在持續負載,可能值會總是很高。請求等待時間與這個列隊的長度減去磁碟上的主軸成正比。這個差值應小於2才能保持良好的性能。
Logical
Disk
% Free Space
% Free Space 是所選定的邏輯磁碟驅動器上總的可用空閑空間的百分比。
Logical
Disk
Free Megabytes
可用的 MB 顯示磁碟驅動器上尚未分配的空間。
以下為監控進程常用的計數器:
Process對象的主要指標
性能對象
計數器
提供的信息
Process
% Privileged Time
% Privileged Time 是在特權模式下處理線程執行代碼所花時間的百分比。當調用 Windows 系統服務時,此服務經常在特權模式運行,以便獲取對系統專有數據的訪問。在用戶模式執行的線程無法訪問這些數據。對系統的調用可以是直接的(explicit)或間接的(implicit),例如頁面錯誤或間隔。
Process
% Processor Time
% Processor Time 是所有進程線程使用處理器執行指令所花的時間百分比。指令是計算機執行的基礎單位。線程是執行指令的對象,進程是程序運行時創建的對象。此計數包括處理某些硬體間隔和陷阱條件所執行的代碼。
Process
% User Time
% User Time 指處理線程用於執行使用用戶模式的代碼的時間的百分比。應用程序、環境分系統和集合分系統是以用戶模式執行的。Windows 的可執行程序、內核和設備驅動程序不會被以用戶模式執行的代碼損壞。
Process
Creating Process ID value
Creating Process ID value 指創建該進程的父進程號。
Process
Elapsed Time
該進程運行的總時間(用秒計算)。
Process
Handle Count
由這個處理現在打開的句柄總數。這個數字等於這個處理中每個線程當前打開的句柄的總數。
Process
ID Process
ID Process 指這個處理的特別的識別符。ID Process 號可重復使用,所以這些 ID Process 號只能在一個處理的壽命期內識別那個處理。
Process
IO Data Bytes/sec
處理從 I/O 操作讀取/寫入位元組的速度。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Data Operations/sec
本處理進行讀取/寫入 I/O 操作的速率。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Other Bytes/sec
處理給不包括數據的 I/O 操作(如控制操作)位元組的速率。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Other Operations/sec
本處理進行非讀取/寫入 I/O 操作的速率。例如,控制性能。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Read Bytes/sec
處理從 I/O 操作讀取位元組的速度。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Read Operations/sec
本處理進行讀取 I/O 操作的速率。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
IO Write Bytes/sec
處理從 I/O 操作寫入位元組的速度。這個計數器為所有由本處理產生的包括文件、網路和設備。
Process
IO Write Operations/sec
本處理進行寫入 I/O 操作的速率。這個計數器為所有由本處理產生的包括文件、網路和設備 I/O 的活動計數。
Process
Page Faults/sec
Page Faults/sec 指在這個進程中執行線程造成的頁面錯誤出現的速度。當線程引用了不在主內存工作集中的虛擬內存頁即會出現 Page Fault。如果它在備用表中(即已經在主內存中)或另一個共享頁的處理正在使用它,就會引起無法從磁碟中獲取頁。
Process
Page File Bytes
Page File Bytes 指這個處理在 Paging file 中使用的最大位元組數。Paging File 用於存儲不包含在其他文件中的由處理使用的內存頁。Paging File 由所有處理共享,並且 Paging File 空間不足會防止其他處理分配內存。
Process
Page File Bytes Peak
Page File Bytes Peak 指這個處理在 Paging files 中使用的最大數量的位元組。
Process
Pool Nonpaged Bytes
Pool Nonpaged Bytes 指在非分頁池中的位元組數,非分頁池是指系統內存(操作系統使用的物理內存)中可供對象(指那些在不處於使用時不可以寫入磁碟上而且只要分派過就必須保留在物理內存中的對象)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。
Process
Pool Paged Bytes
Pool Paged Bytes 指在分頁池中的位元組數,分頁池是系統內存(操作系統使用的物理內存)中可供對象(在不處於使用時可以寫入磁碟的)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。
Process
Priority Base
這次處理的當前基本優先權。在一個處理中的線程可以根據處理的基本優先權提高或降低自己的基本優先權。
Process
Private Bytes
Private Bytes 指這個處理不能與其他處理共享的、已分配的當前位元組數。
Process
Thread Count
在這次處理中正在活動的線程數目。指令是在一台處理器中基本的執行單位,線程是指執行指令的對象。每個運行處理至少有一個線程。
Process
Virtual Bytes
Virtual Bytes 指處理使用的虛擬地址空間的以位元組數顯示的當前大小。使用虛擬地址空間不一定是指對磁碟或主內存頁的相應的使用。虛擬空間是有限的,可能會限制處理載入資料庫的能力。
Process
Virtual Bytes Peak
Virtual Bytes Peak 指在任何時間內該處理使用的虛擬地址空間位元組的最大數。
Process
Working Set
Working Set 指這個處理的 Working Set 中的當前位元組數。Working Set 是在處理中被線程最近觸到的那個內存頁集。如果計算機上的可用內存處於閾值以上,即使頁不在使用中,也會留在一個處理的 Working Set中。當可用內存降到閾值以下,將從 Working Set 中刪除頁。如果需要頁時,它會在離開主內存前軟故障返回到 Working Set 中。
Process
Working Set Peak
Working Set Peak 指在任何時間這個在處理的 Working Set 的最大位元組數。
H. 伺服器該如何測試速度的快慢
一、tracert命令簡單測網站速度,測試方法和ping命令類似
二、常見的ping命令
三、比網站載入速度,可以利用工具測試一下打開網站速度。
I. 如何測試Linux伺服器的性能
################### cpu性能查看 ############################################################
1、查看物理cpu個數:
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
2、查看每個物理cpu中的core個數:
cat /proc/cpuinfo |grep "cpu cores"|wc -l
3、邏輯cpu的個數:
cat /proc/cpuinfo |grep "processor"|wc -l
物理cpu個數*核數=邏輯cpu個數(不支持超線程技術的情況下)
########################### 內存查看 ################################################################
1、查看內存使用情況:
free -m
total used free shared buffers cached
Mem: 3949 2519 1430 0 189 1619
-/+ buffers/cache: 710 3239
Swap: 3576 0 3576
total:內存總數
used:已經使用的內存數
free:空閑內存數
shared:多個進程共享的內存總額
- buffers/cache:(已用)的內存數,即used-buffers-cached
+ buffers/cache:(可用)的內存數,即free+buffers+cached
Buffer Cache用於針對磁碟塊的讀寫;Page Cache用於針對文件inode的讀寫,這些Cache能有效地縮短I/O系統調用的時間。
對於操作系統來說free/used是系統可用/佔用的內存;而對於應用程序來說-/+ buffers/cache是可用/佔用內存,因為buffers/cache很快就會被使用。我們工作時候應該從應用角度來看。
################# 硬碟查看 ##########################################################################
1、查看硬碟及分區信息:
fdisk -l
2、查看文件系統的磁碟空間佔用情況:
df -h
3、查看硬碟的I/O性能(每隔一秒顯示一次,顯示5次):
iostat -x 1 5
iostat是含在套裝systat中的,可以用yum -y install systat來安裝。
常關注的參數:
如果%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。
如果idle小於70%,I/O的壓力就比較大了,說明讀取進程中有較多的wait。
4、查看linux系統中某目錄的大小:
-sh /root
如發現某個分區空間接近用完,可以進入該分區的掛載點,用以下命令找出佔用空間最多的文件或目錄,然後按照從大到小的順序,找出系統中佔用最多空間的前10個文件或目錄:
-cksh *|sort -rn|head -n 10
############################################ 查看平均負載 ####################################
有時候系統響應很慢,但又找不到原因,這時就要查看平均負載了,看它是否有大量的進程在排隊等待。
最簡單的命令:
uptime
查看過去的1分鍾、5分鍾和15分鍾內進程隊列中的平均進程數量。
還有動態命令:
top
我們只關心以下部分:
top - 21:33:09 up 1:00, 1 user, load average: 0.00, 0.01, 0.05
如果每個邏輯cpu當前的活動進程不大於3,則系統性能良好;
如果每個邏輯cpu當前的活動進程不大於4,表示可以接受;
如果每個邏輯cpu當前的活動進程大於5,則系統性能問題嚴重。
一般計算方法:負載值/邏輯cpu個數
還可以結合vmstat命令來判斷系統是否繁忙,其中:
procs
r:等待運行的進程數。
b:處在非中斷睡眠狀態的進程數。
w:被交換出去的可運行的進程數。
memeory
swpd:虛擬內存使用情況,單位為KB。
free:空閑的內存,單位為KB。
buff:被用來作為緩存的內存數,單位為KB。
swap
si:從磁碟交換到內存的交換頁數量,單位為KB。
so:從內存交換到磁碟的交換頁數量,單位為KB。
io
bi:發送到塊設備的塊數,單位為KB。
bo:從塊設備接受的塊數,單位為KB。
system
in:每秒的中斷數,包括時鍾中斷。
cs:每秒的環境切換次數。
cpu
按cpu的總使用百分比來顯示。
us:cpu使用時間。
sy:cpu系統使用時間。
id:閑置時間。
標准情況下r和b的值應該為:
r<5,b=0
假設輸出的信息中:
如果r經常大於3或4,且id經常少於50,表示cpu的負荷過重。
pi、po長期不等於0,表示內存不足。
bi經常不等於0,且在b中的隊列大於2或3,表示io的性能不好。
################################# 其他參數 #####################################
查看內核版本號:
uname -a
簡化命令:
uname -r
查看系統是32位還是64位的:
file /sbin/init
查看發行版:
cat /etc/issue
或lsb_release -a
查看系統已載入的相關模塊:
lsmod
查看pci設置:
lspci
J. 伺服器的性能測試
提到伺服器性能測試,不得不提到很多術語。為了讓大家更容易理解,舉個生活中的例子:
你中午去「海底撈」吃飯。
我們可以把「海底撈」這個酒樓看成一個被測系統。
你去吃飯,就是對這個被測系統發起請求,對這個系統造成了一定的負載。你帶去的人越多,那麼這個餐館就越繁忙,可以說餐館承受的負載就越大。
你開始點菜。這個時候你隔壁桌的人也開始點菜。那麼你們兩個對這個系統產生了並發的請求。同時,其他桌有的在吃菜,有的在等菜,這些都是並發進行的事務。一個完整的吃飯事務可以定義成包括:點菜,下單,上菜,買單四個步驟。對於一個C/S的系統來說,可以對應於:建立連接,發送請求,接受應答,斷開連接。
影響一個餐館生意好壞的一個重要原因是上菜速度。上菜速度體現在兩個方面:
很多因素會影響上菜速度,比如服務員的個數、廚師的個數。對於一個C/S的系統,服務員相當於是接入層,廚師相當於是後台服務。假如服務員太少,下單很慢,後面的廚師都閑著,那麼上菜速度也快不了;假如服務員夠多,下單足夠快,但是廚師太少,下的單來不及做,同樣上菜速度也很慢;如果服務員很多,廚師也很多,但是來的客人很少,那麼大部分的服務員和廚師都閑著,資源全部浪費掉了。因此,接入層和後台服務進程個數、以及資源配比,都是需要根據實際情況進行調優的。
來多少顧客,這是酒樓自己無法控制的,但是酒樓的上菜速度、餐位多少都會制約客流量。一定有一個峰值客流量,當來的客人超過了這個峰值,那麼這些客人就會等位,或者是上菜速度超慢讓客人無法容忍。容量測試就是通過工具模擬足夠多的顧客來吃飯的事務,希望找到這樣一個客流量對酒樓產生一定的負載,這個時候酒樓既能接待最多的客戶同時也能保證最短的等待時間。更多的,還可以對這個酒樓人員配置和餐位設置等進行調優,以期達到一個最理想的資源利用率和效率。
客流量跟進來的客人多少有關,也跟餐館的接待能力有關。單方面增加來就餐的顧客,遭到投訴的可能性就越大,上錯菜的可能性也越大。
1.一個顧客請求的處理耗時,從下單到上菜中間等待的時間,我們稱之為響應時間。
2.這個餐館同時為多名顧客上菜的頻率,我們稱之為吞吐量。