Windows云主機卡頓怎么辦?
當您發現云主機的運行速度變慢或云主機突然出現網絡斷開的情況,則可能是云主機的帶寬和CPU利用率過高導致。如果您已經通過云監控服務創建過告警任務,當CPU或帶寬利用率高時,系統會自動發送告警給您。
Windows云主機帶寬流量過高或CPU利用率高,您可以按如下步驟進行排查:
- 問題定位:定位影響云主機帶寬和CPU利用率高的進程。
Windows操作系統本身提供了較多工具可以定位問題,包括任務管理器、性能監視器(Performance Monitor)、資源監視器(Resource Monitor)、Process Explorer、Xperf (Windows server 2008 以后)和抓取系統Full Memory Dump檢查。
- 問題處理:排查進程是否正常,并分類進行處理。
- 正常進程:優化程序,或變更云主機配置。
- 異常進程:建議您手動關閉進程,您也可以借助第三方工具關閉進程。
問題定位步驟
- 在管理控制臺使用VNC方式登錄云主機。
- 打開“運行”窗口,輸入“perfmon -res”。
圖 打開資源監視器
- 在“資源監視器”中,單擊“CPU”或“網絡”,查看CPU占用或率帶寬使用情況。
圖 資源監視器
- 查看CPU和帶寬占用率較高的進程ID和進程名。
- 在控制臺VNC登錄頁面單擊“Ctrl+Alt+Del”,打開“Windows任務管理器”。或打開“運行”窗口,輸入“taskmgr”,打開“Windows任務管理器”。
- 以下步驟為您介紹在任務管理器中打開PID,找到進程的具體位置,核對是否異常進程。
a. 選擇“詳細信息”選項卡。
b. 單擊PID進行排序
c. 在查找到的CPU或帶寬占用率高的進程上右鍵單擊“打開文件位置”。
d. 定位進程是否是正常或是否為惡意程序。
圖 檢查進程
分析處理
在您采取措施處理問題前,首先需要判斷影響CPU或帶寬占用率高的進程是正常進程還是異常進程。不同類型的進程狀態需要做不同處理。
正常進程分析處理建議
- 如果您的操作系統是Windows 2008/Windows 2012,請檢查內存大小,建議內存配置在2GB或以上。
- 檢查后臺是否有執行Windows Update的行為。
- 檢查殺毒軟件是否正在后臺執行掃描操作。
- 核對云主機運行的應用程序中是否有對網絡和CPU要求高的需求,如果是,建議您變更云主機配置或修改帶寬。
- 如果云主機配置已經比較高,建議考慮云主機上應用場景的分離部署,例如將數據庫和應用分開部署。
異常進程分析處理建議
如果CPU或帶寬利用率高是由于病毒、木馬入侵導致的,那么需要手動結束進程。建議的處理順序如下:
- 使用商業版殺毒軟件或安裝微軟安全工具Microsoft Safety Scanner,在安全模式下掃描病毒。
- 安裝Windows最新補丁。
- 使用MSconfig禁用所有非微軟自帶服務驅動,檢查問題是否再次發生。
Linux云主機卡頓怎么辦?
當您發現云主機的運行速度變慢或云主機突然出現網絡斷開現象,則可能是云主機的帶寬和CPU使用率過高導致。如果您已經通過云監控服務創建過告警任務,當CPU或帶寬利用率高時,系統會自動發送告警給您。
Linux實例帶寬流量過高或CPU使用率高,您可以按如下步驟進行排查:
- 問題定位:定位影響云主機帶寬和CPU使用率高的進程。
- 問題處理:排查進程是否正常,并分類進行處理。
? 正常進程:優化程序,或變更云主機配置。
? 異常進程:建議您手動關閉進程,或者借助第三方工具關閉進程。
常用命令
本文相關操作命令以CentOS 7.2 64位操作系統為例。其它版本的Linux操作系統命令可能有所差異,具體情況請參閱相應操作系統的官方文檔。
Linux云主機查看CPU使用率等性能相關問題時的常用命令如下:
- ps -aux
- ps -ef
- top
CPU占用率高問題定位
- 使用VNC功能登錄云主機。
- 執行如下命令查看當前系統的運行狀態。
top
系統回顯樣例如下:

- 查看顯示結果。
? 命令回顯第一行:20:56:02 up 37 days,1 user, load average: 0.00, 0.01, 0.05的每個字段含義如下:
系統當前時間為20:56:02,該云主機已運行37天,當前共有1個用戶登錄, 最近1分鐘、最近5分鐘和最近15分鐘的CPU平均負載。
? 命令回顯第三行:CPU資源總體使用情況。
? 命令回顯第四行:內存資源總體使用情況。
? 回顯最下方顯示各進程的資源占用情況。
說明
在top頁面,可以直接輸入小寫“q”或者在鍵盤上按“Ctrl+C”退出。
除了直接輸入命令,您還可以單擊VNC登錄頁面屏幕右上角的“復制命令輸入”,在彈出的對話框中粘貼或者輸入相應命令,單擊“發送”。
在top運行中常用的內容命令如下:
s:改變畫面更新頻率。
l:關閉或開啟第一部分第一行top信息的表示。
t:關閉或開啟第一部分第二行Tasks和第三行Cpus信息的表示。
m:關閉或開啟第一部分第四行Mem和 第五行Swap信息的表示。
N:以PID的大小的順序排列進程列表。
P:以CPU占用率大小的順序排列進程列表。
M:以內存占用率大小的順序排列進程列表。
h:顯示命令幫助。
n:設置在進程列表所顯示進程的數量。
- 通過ll /proc/PID/exe命令可以查看每個進程ID對應的程序文件。

CPU使用率高問題處理
對于導致CPU使用率高的具體進程,如果確認是異常進程,可以直接通過top命令終止進程。對于kswapd0進程導致的CPU使用率高的問題,則需要對應用程序進行優化,或者通過增加內存進行系統規格的升級。
kswapd0是系統的虛擬內存管理程序,如果物理內存不夠用,系統就會喚醒kswapd0進程,由kswapd0分配磁盤交換空間用作緩存,因而占用大量的CPU資源。
- 使用top命令終止CPU占用率高的進程
您可以直接在top運行界面快速終止相應的異常進程。操作步驟如下:
a. 在top命令運行的同時,按下小寫的“k”鍵。
b. 輸入要終止進程的PID。
進程的PID為top命令回顯的第一列數值。例如,要終止PID為52的進程,直接輸入“52”后回車。

c. 操作成功后,會出現如下圖所示類似信息,按回車確認。

- kswapd0進程占用導致CPU使用率高
可通過以下步驟排查進程的內存占用情況。
a. 通過top命令查看kswapd0進程的資源使用。
b. 如果kswapd0進程持續處于非睡眠狀態,且運行時間較長,可以初步判定系統在持續的進行換頁操作,可以將問題轉向內存不足的原因來排查。

c. 通過vmstat命令進一步查看系統虛擬內存的使用情況。
如果si和so的值也比較高,說明系統存在頻繁的換頁操作,系統物理內存不足。
u si:每秒從交換區寫到內存的大小,由磁盤調入內存。
u so:每秒寫入交換區的內存大小,由內存調入磁盤。
d. 對于內存不足問題,可以通過free、ps等命令進一步查詢系統及系統內進程的內存占用情況,做進一步排查分析。
e. 臨時可通過在業務空閑期重啟應用或者系統釋放內存。
如果要從根本上解決內存不足的問題,需要對服務器內存進行擴容,擴大內存空間。如果不具備擴容的條件,可通過優化應用程序,以及配置使用大頁內存來進行緩解。
帶寬使用率高問題分析
如果是正常業務訪問以及正常應用進程導致的帶寬使用率高,需要升級服務器的帶寬進行解決。如果是非正常訪問,如某些特定IP的惡意訪問,或者服務器遭受到了CC攻擊。或者異常進程導致的帶寬使用率高。可以通過流量監控工具nethogs來實時監測統計各進程的帶寬使用情況,并進行問題進程的定位。
- 使用nethogs工具進行排查
a. 執行以下命令,安裝nethogs工具。
yum install nethogs -y
安裝成功后可以通過netgos命令查看網絡帶寬的使用情況。
nethogs命令常用參數說明如下:
u -d:設置刷新的時間間隔,默認為 1s。
u -t:開啟跟蹤模式。
u -c:設置更新次數。
u device:設置要監測的網卡,默認是eth0。
運行時可以輸入以下參數完成相應的操作:
u q:退出nethogs工具。
u s:按發送流量大小的順序排列進程列表。
u r:按接收流量大小的順序排列進程列表。
u m:切換顯示計量單位,切換順序依次為KB/s、KB、B、MB。
b. 執行以下命令,查看指定的網絡端口每個進程的網絡帶寬使用情況。
nethogs eth1

回顯參數說明如下:
u PID:進程 ID。
u USER:運行該進程的用戶。
u PROGRAM:進程或連接雙方的IP地址和端口,前面是服務器的IP和端口,后面是客戶端的IP和端口。
u DEV:流量要去往的網絡端口。
u SENT:進程每秒發送的數據量。
u RECEIVED:進程每秒接收的數據量。
c. 終止惡意程序或者屏蔽惡意訪問IP。
如果確認大量占用網絡帶寬的進程是惡意進程,可以使用kill PID命令終止惡意進程。
如果是某個IP惡意訪問,可以使用iptables服務來對指定IP地址進行處理,如屏蔽IP地址或限速。