導航:首頁 > 配伺服器 > 伺服器性能高怎麼排查

伺服器性能高怎麼排查

發布時間:2023-05-28 02:08:45

『壹』 怎麼判斷伺服器的性能

Windows伺服器中自帶的性能監控工具叫做Performance Monitor,
在開始-運行中輸入『perfmon』,然後回車即可運行。Performance
Monitor本身也是一個進程,運行起來也要佔用一定的系統資源。所以你看到的資源的使用量應該比實際的要稍微高一點。這個工具在幫助管理員判斷系統性能瓶頸時非常有用。舉個列子來說,今天有個用戶抱怨說他們項目組的伺服器(這是一台虛擬機)運行起來非常慢,但也不知道具體問題出在什麼地方。任務管理器里顯示CPU和內存的使用量都不算高,但伺服器的相應就是非常慢。打開Performance
Monitor,讓其運行一段時間後(因為參考平均值會比較准確),發現average disk
queue的值比較高,這就說明物理伺服器的硬碟負荷太重,I/O操作的速度跟不上系統的要求。關掉虛擬機,將其轉移到另一台硬碟負載比較小的主機上,再打開虛擬機。問題就解決了!
這里我簡單列舉幾個常用參數的參考值,需要更多的信息你可以google一把。
CPU:
% Processor Time:表示CPU的使用率,如果值大於80表示CPU的處理調度能力偏低。
硬碟:
% Disk Time:表示硬碟的I/O操作的頻率(繁忙時間),如果值大於80表示硬碟I/O調度能力偏低。
Average Disk Queue
Length:表示硬碟I/O操作等待隊列的長度,如果值大於2表示硬碟I/O調度能力偏低。
內存
Pages/Sec:表示系統對虛擬內存每秒鍾的訪問次數,如果值大於20表示有內存方面的問題。(有可能是物理內存偏低,也有可能是虛擬內存沒有配置正確。一般情況下虛擬內存應為物理內存的1.5-2倍)
Committed Bytes and Available Bytes:Committed
Bytes表示虛擬內存的大小,Available Bytes表示剩餘可用內存的大小。正常情況下,Available
Bytes減少,pages(頁面數)應該增加,提供頁面交換。如果Available
Bytes的值很小表示物理內存偏低。當關閉一些應用以後,Committed Bytes應該減少,Available
Bytes應該增加。因為關閉的進程釋放了之前佔用的內存資源。如果相應的值沒有發生變化,那麼該進程就可能造成了內存泄漏。
Cache Bytes:表示系統緩存的大小。如果值大於4M表示物理內存偏低。

『貳』 如何用九條命令在一分鍾內檢查linux伺服器性能

一、uptime命令

這個命令可以快速查看機器的負載情況。在Linux系統中,這些數據表示等待CPU資源的進程和阻塞在不可中斷IO進程(進程狀態為D)的數量。這些數據可以讓我們對系統資源使用有一個宏觀的了解。

命令的輸出分別表示1分鍾、5分鍾、15分鍾的平均負載情況。通過這三個數據,可以了解伺服器負載是在趨於緊張還是趨於緩解。如果1分鍾平均負載很高,而15分鍾平均負載很低,說明伺服器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪裡。反之,如果15分鍾平均負載很高,1分鍾平均負載較低,則有可能是CPU資源緊張時刻已經過去。

上面例子中的輸出,可以看見最近1分鍾的平均負載非常高,且遠高於最近15分鍾負載,因此我們需要繼續排查當前系統中有什麼進程消耗了大量的資源。可以通過下文將會介紹的vmstat、mpstat等命令進一步排查。

二、dmesg命令

該命令會輸出系統日誌的最後10行。示例中的輸出,可以看見一次內核的oom kill和一次TCP丟包。這些日誌可以幫助排查性能問題。千萬不要忘了這一步。

三、vmstat命令

vmstat(8) 命令,每行會輸出一些系統核心指標,這些指標可以讓我們更詳細的了解系統狀態。後面跟的參數1,表示每秒輸出一次統計信息,表頭提示了每一列的含義,這幾介紹一些和性能調優相關的列:

r:等待在CPU資源的進程數。這個數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進程。如果這個數值大於機器CPU核數,那麼機器的CPU資源已經飽和。

free:系統可用內存數(以千位元組為單位),如果剩餘內存不足,也會導致系統性能問題。下文介紹到的free命令,可以更詳細的了解系統內存的使用情況。

si,so:交換區寫入和讀取的數量。如果這個數據不為0,說明系統已經在使用交換區(swap),機器物理內存已經不足。

us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。

上述這些CPU時間,可以讓我們很快了解CPU是否出於繁忙狀態。一般情況下,如果用戶時間和系統時間相加非常大,CPU出於忙於執行指令。如果IO等待時間很長,那麼系統的瓶頸可能在磁碟IO。

示例命令的輸出可以看見,大量CPU時間消耗在用戶態,也就是用戶應用程序消耗了CPU時間。這不一定是性能問題,需要結合r隊列,一起分析。

四、mpstat命令

該命令可以顯示每個CPU的佔用情況,如果有一個CPU佔用率特別高,那麼有可能是一個單線程應用程序引起的。

五、pidstat命令

pidstat命令輸出進程的CPU佔用率,該命令會持續輸出,並且不會覆蓋之前的數據,可以方便觀察系統動態。如上的輸出,可以看見兩個JAVA進程佔用了將近1600%的CPU時間,既消耗了大約16個CPU核心的運算資源。

六、iostat命令

r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數和每秒讀寫數據量(千位元組)。讀寫量過大,可能會引起性能問題。

await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁碟交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數值過大,可能是硬體設備遇到了瓶頸或者出現故障。

avgqu-sz:向設備發出的請求平均數量。如果這個數值大於1,可能是硬體設備已經飽和(部分前端硬體設備支持並行寫入)。

%util:設備利用率。這個數值表示設備的繁忙程度,經驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬體設備已經飽和。

如果顯示的是邏輯設備的數據,那麼設備利用率不代表後端實際的硬體設備已經飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能。

七、free命令

free命令可以查看系統內存的使用情況,-m參數表示按照兆位元組展示。最後兩列分別表示用於IO緩存的內存數,和用於文件系統頁緩存的內存數。需要注意的是,第二行-/+ buffers/cache,看上去緩存佔用了大量內存空間。

這是Linux系統的內存使用策略,盡可能的利用內存,如果應用程序需要內存,這部分內存會立即被回收並分配給應用程序。因此,這部分內存一般也被當成是可用內存。

如果可用內存非常少,系統可能會動用交換區(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現),降低系統性能。

八、sar命令

sar命令在這里可以查看網路設備的吞吐率。在排查性能問題時,可以通過網路設備的吞吐量,判斷網路設備是否已經飽和。如示例輸出中,eth0網卡設備,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,沒有達到1Gbit/sec的硬體上限。

sar命令在這里用於查看TCP連接狀態,其中包括:

active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;

passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;

retrans/s:每秒TCP重傳數量;

TCP連接數可以用來判斷性能問題是否由於建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。TCP重傳可能是因為網路環境惡劣,或者伺服器壓

九、top命令

top命令包含了前面好幾個命令的檢查的內容。比如系統負載情況(uptime)、系統內存使用情況(free)、系統CPU使用情況(vmstat)等。因此通過這個命令,可以相對全面的查看系統負載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內存佔用最多的進程、CPU佔用率最高的進程等。

但是,top命令相對於前面一些命令,輸出是一個瞬間值,如果不持續盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數據。

『叄』 如何用命令檢查Linux伺服器性能

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個數(不支持超線程技術的情況下)

『肆』 如何在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 的最大位元組數。

『伍』 分布式伺服器怎麼監控性能

做一個良好的企業網站,獨立伺服器相對是比較有優勢的,企業所擁有的數據大都會存儲在特定的獨立伺服器中,因此,我們應該時時做好獨立伺服器的性能監控,以維護數據的安全監控。下面壹基比小喻來給你們分析下。
硬碟性能分析
由於磁碟是影響系統性能的常見因素,因此,管理人員需要收集磁碟性能I/O狀態信息,來判斷對整個系統性能的優化指標。
內存利用率
與CPU利用率一樣,管理人員需要了解獨立伺服器內存的利用率,並監控當前進程列表所佔用的內存情況,對閾值設置警告,當使用過高時,管理人員能夠及時知曉。
文件系統容量
應用服務需要使用磁碟空間進行存儲和處理,如果空間不足可能會導致服務無法正常運行,因此,管理人員應時刻監控磁碟空間的空閑容量。
一般來說,文件的空間使用率不應該超過85%,,一旦超過,管理員就應該馬上進行處理。在管理界面中,用戶也可以根據相應的標識來判斷閾值的大小。
資源記錄
對獨立伺服器性能資源使用數據做好記錄,然後進行分析,看某個時間段的網卡流量是否有不正常的變化,如果出現忽高忽低,則需要對獨立伺服器進行檢查。
CPU利用率
管理人員需要了解系統每個CPU對應的利用率,並監控伺服器當前任務所佔用的CPU,確保不會影響任務的運行。設置CPU閾值警告,當CPU負載過大時,能夠產生報警,提供管理人員著手處理。
除了要對獨立伺服器進行性能監控和數據記錄,還要分析一下某個時間段流量有沒有不正常的變化,如果出現有時高有時低的情況要及時對獨立伺服器做排查。

『陸』 如何解決伺服器CPU使用率過高的問題

對於伺服器來說,CPU就是它的核心所在,不管我們處理任何任務都需要CPU來完成,一旦CPU出現爆滿,那麼我們的伺服器就會出現卡頓甚至是死機無法連接等情況,那麼如果我們的伺服器經常出現CPU爆滿情況,該如何處理呢?壹基比小喻倆跟你們講講。

一、確認CPU爆滿的原因

如果我們遠程到香港伺服器中,發現操作比較卡時,可以檢查下CPU使用是否正常,如果是windows系統,那麼我們可以通過任務管理里的性能來查看或者可以通過一些安全軟體來進行查看,如果是linux系統,那麼可以命令來進行查看,或者可以通過安裝的一些軟體查看,比如安裝寶塔軟體等。一旦我們發現CPU出現異常或者是跑滿,那麼我們就需要分析是什麼原因導致的,主要可以通過查看是什麼進程佔用CPU比較大來進行分析。

這其中主要是兩點:1、自身服務導致的 2、中毒導致的。

二、自身服務導致

比如我們的在伺服器中是用phpstudy搭建的網站使用的話,那麼我們查看CPU使用情況就會發現這個進程佔用率非常的高,這里CPU使用較高有兩種情況,一種是網站代碼出錯導致程序一直在運算從而導致CPU很高,一種是本身業務發展導致訪問量增加而CPU負荷不上,如果是代碼出錯的話,那麼就需要網站開發人員細心檢查優化代碼,緊急處理的話就是重啟服務或者是伺服器。

如果是本身業務發展迅速導致的話,就建議及時升級配置,這種情況重啟服務基本上沒有什麼用,因為CPU會馬上跑滿。

三、中毒導致

如果我們查看進程的時候,發現是未知進程或者是偽裝進程的話,那麼基本上可以判定是中毒了,如果發現是中毒導致的CPU跑滿的話,緊急處理是立刻關閉這個進程,同時使用殺毒工具進行病毒查殺,還可以檢查自己的數據文件是否存在未知文件夾及文件,壹基比小喻的建議是,如果中毒在不影響自身業務進行的情況下最好把系統重裝下,這里對於自身伺服器的使用才是最好的。

『柒』 如何評估雲伺服器性能

一般數據方面的話,可以通過IO磁碟性能、網路速度等來衡量。具體指標就很細化了,簡單說速度當然是越快越好了,反應時間當然是越短越好了。其實國內有些企業性能方面做得還不錯,關鍵還是要看其他方面的比較,就拿資源來說,IDC服務商的網路帶寬IP等資源肯定要豐富點的。雲伺服器很好的一家有傲龍網路等。

『捌』 Linux 伺服器性能出問題,排查下這些參數指標

1.1 top

1.2 vmstat

r 表示可運行進程數目,數據大致相符;而b表示的是 uninterruptible 睡眠的進程數目;swpd 表示使用到的虛擬內存數量,跟 top-Swap-used 的數值是一個含義,而如手冊所說,通常情況下 buffers 數目要比 cached Mem 小的多,buffers 一般20M這么個數量級;io 域的 bi、bo 表明每秒鍾向磁碟接收和發送的塊數目(blocks/s);system 域的 in 表明每秒鍾的系統中斷數(包括時鍾中斷),cs表明因為進程切換導致上下文切換的數目。

說到這里,想到以前很多人糾結編譯 linux kernel 的時候 -j 參數究竟是 CPU Core 還是 CPU Core+1?通過上面修改 -j 參數值編譯 boost 和 linux kernel 的同時開啟 vmstat 監控,發現兩種情況下 context switch 基本沒有變化,且也只有顯著增加 -j 值後 context switch 才會有顯著的增加,看來不必過於糾結這個參數了,雖然具體編譯時間長度我還沒有測試。資料說如果不是在系統啟動或者 benchmark 的狀態,參數 context switch>100000 程序肯定有問題。

1.3 pidstat

如果想對某個進程進行全面具體的追蹤,沒有什麼比 pidstat 更合適的了——棧空間、缺頁情況、主被動切換等信息盡收眼底。這個命令最有用的參數是-t,可以將進程中各個線程的詳細信息羅列出來。

-r: 顯示缺頁錯誤和內存使用狀況,缺頁錯誤是程序需要訪問映射在虛擬內存空間中但是還尚未被載入到物理內存中的一個分頁,缺頁錯誤兩個主要類型是

-s:棧使用狀況,包括 StkSize 為線程保留的棧空間,以及 StkRef 實際使用的棧空間。使用ulimit -s發現CentOS 6.x上面默認棧空間是10240K,而 CentOS 7.x、Ubuntu系列默認棧空間大小為8196K

1.4 其他

while :; do ps -eo user,pid,ni,pri,pcpu,psr,comm | grep 'ailawd' sleep 1; done

2.1 iostat

3.1 netstat

➜ ~ netstat -antp #列出所有TCP的連接

➜ ~ netstat -nltp #列出本地所有TCP偵聽套接字,不要加-a參數

3.2 sar

3.3 tcpmp

『玖』 高性能Linux伺服器構建實戰:系統安全、故障排查、自動化運維與集群架構

這種枯判工具書,建議還是買實體書吧,即翻即用。各大網店也都有賣。
另運游外這本書,真的很棒。我也是旁敗銷從事Linux運維的。

『拾』 如何處理阿里雲ECS伺服器CPU利用率過高

如果你選擇的是t5類型的主機,那麼這個問題是無解的,因為這個類型本身就是限制了CPU性能基線在10%~15%,不能超過這個數字。

也有一種可能用的是共享型實例,特點是多台小雞共享一個母雞的系統資源,小雞之間存在了資源爭搶。

關於這個內容有一些解釋,長期建站和 windows 遠程桌面慎用阿里雲突發性能 t5 實例,我覺得寫的挺實在的,建議怎麼操作都有提供了

閱讀全文

與伺服器性能高怎麼排查相關的資料

熱點內容
linuxtrace工具源碼 瀏覽:178
源碼第二次開發 瀏覽:784
如何獲取網頁php源碼 瀏覽:729
還用飛那麼源碼 瀏覽:204
雲伺服器鏡像可以隨時更換嗎 瀏覽:92
r600a壓縮機多少錢 瀏覽:237
程序員那麼可愛第幾集在重慶相遇 瀏覽:673
上班兩公里源碼 瀏覽:817
南寧溯源碼燕窩訂制 瀏覽:933
在個人文件夾中新建文件 瀏覽:445
中國國家地理pdf下載 瀏覽:107
幾套房子抵押可以解壓其中一套嗎 瀏覽:569
微愛app室外地板怎麼裝飾 瀏覽:231
遼寧省醫保如何用app轉 瀏覽:311
鍾表cNc編程招聘 瀏覽:546
均線pdf 瀏覽:921
手機破解加密的壓縮包 瀏覽:429
dnf程序員分析 瀏覽:365
外星人適合編程嗎 瀏覽:205
phpcurl302跳轉 瀏覽:843