製造高CPU使用率的簡單方法

2021-09-22 13:53:31 字數 748 閱讀 7024

原文:

製造高cpu使用率的簡單方法

在群裡有人問製造cpu佔用率高的場景用來做測試。所謂做好事難,幹「壞」事還不容易?這個需求有很多方法可以實現,比如使用一些壓力測試工具。我首先想 到的是hash join。這個聯接比較消耗cpu資源,拿兩大表hash join一下,最好是包含大字段的,開多幾個程序,cpu使用率馬上飆公升到80-90%!

下面就使用一張系統檢視進行hash join來實現,簡單快捷。

declare

@ibigint

while (1=1

)begin

select@i=

count(*) from sys.all_objects as

a

left hash join sys.all_objects as b on b.name =

a.name

end;

go

code-1: hash join

我在ssms只開了四個session,同時執行上面的指令碼的效果圖。測試完請手動中止執行指令碼。

figure-1: 效能計數器顯示的cpu使用情況

figure-2: 任務管理器顯示的cpu資源使用情況

cpu使用率低負載高

cpu低而負載高也就是說等待磁碟i o完成的程序過多,就會導致佇列長度過大,這樣就體現到負載過大了,但實際是此時cpu被分配去執行別的任務或空閒,具體場景有如下幾種。場景一 磁碟讀寫請求過多就會導致大量i o等待 上面說過,cpu的工作效率要高於磁碟,而程序在cpu上面執行需要訪問磁碟檔案,這個時候...

找出程式cpu使用率高的原因

確定是cpu過高 使用top觀察是否存在cpu使用率過高現象 找出執行緒 對cpu使用率過高的程序的所有執行緒進行排序 ps h e o pid,tid,pcpu,cmd sort pcpu grep 得到如下結果,其中執行緒2909使用了7.8 的cpu.2907 2913 0.0 2907 29...

找出程式cpu使用率高的原因

確定是cpu過高 使用top觀察是否存在cpu使用率過高現象 找出執行緒 對cpu使用率過高的程序的所有執行緒進行排序 ps h e o pid,tid,pcpu,cmd sort pcpu grep 得到如下結果,其中執行緒2909使用了7.8 的cpu.2907 2913 0.0 2907 29...