原文:
製造高cpu使用率的簡單方法
在群裡有人問製造cpu佔用率高的場景用來做測試。所謂做好事難,幹「壞」事還不容易?這個需求有很多方法可以實現,比如使用一些壓力測試工具。我首先想 到的是hash join。這個聯接比較消耗cpu資源,拿兩大表hash join一下,最好是包含大字段的,開多幾個程序,cpu使用率馬上飆公升到80-90%!
下面就使用一張系統檢視進行hash join來實現,簡單快捷。
declarecode-1: hash join@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
我在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...