壓力測(cè)試:用極限負(fù)載驗(yàn)證電腦穩(wěn)定性)
簡(jiǎn)介這是一個(gè)針對(duì)工控機(jī)與家用PC的壓力測(cè)試資源包內(nèi)含HeavyLoad便攜版及相關(guān)組件面向需要快速評(píng)估系統(tǒng)穩(wěn)定性、排查硬件瓶頸的技術(shù)人員與普通用戶(hù)。無(wú)需復(fù)雜安裝解壓即用尤其適合臨時(shí)測(cè)試環(huán)境。壓縮包共13個(gè)文件主要類(lèi)型包括可執(zhí)行的HeavyLoad-x86程序、chm格式的幫助文檔、txt說(shuō)明文件以及xml配置等整體大小約9.84MB輕量易用。已有723人學(xué)習(xí)下載。除了HeavyLoad主程序外還附帶了TreeSizeFree等磁盤(pán)空間分析小工具及中英文授權(quán)說(shuō)明適合搭配使用。文件中的使用說(shuō)明提供了詳細(xì)指南幫助初次接觸者快速上手多個(gè)chm文檔則覆蓋軟件功能與德語(yǔ)版本支持。通過(guò)CPU和3D性能測(cè)試可針對(duì)性發(fā)現(xiàn)顯卡渲染、多線(xiàn)程處理等問(wèn)題為系統(tǒng)優(yōu)化和穩(wěn)定運(yùn)行提供依據(jù)適合在裝機(jī)驗(yàn)收、故障排查等場(chǎng)景下使用。1. HeavyLoad 到底是什么給 PC 機(jī)的極限壓力測(cè)試拿到一臺(tái)新電腦或一臺(tái)二手老機(jī)器你第一時(shí)間想做的往往不是跑分而是搞清楚它到底穩(wěn)不穩(wěn)。跑分只能給一個(gè)相對(duì)分?jǐn)?shù)但穩(wěn)定性要靠另一類(lèi)工具去壓讓 CPU 滿(mǎn)載、內(nèi)存吃緊、磁盤(pán)狂寫(xiě)、顯卡渲圖同時(shí)發(fā)生看系統(tǒng)會(huì)不會(huì)藍(lán)屏、重啟、掉驅(qū)動(dòng)。HeavyLoad 就是干這個(gè)的它是跑在 PC 上的一款壓力測(cè)試軟件能把整機(jī)的 CPU、內(nèi)存、硬盤(pán)、GPU 和網(wǎng)絡(luò)負(fù)載同時(shí)推到高位讓潛在問(wèn)題在幾分鐘內(nèi)暴露出來(lái)。無(wú)論你是做裝機(jī)驗(yàn)收、二手設(shè)備檢測(cè)還是排查時(shí)不時(shí)的死機(jī)和重啟它都值得放進(jìn)工具箱。這類(lèi)工具適合兩類(lèi)人一類(lèi)是不想裝一堆專(zhuān)業(yè)測(cè)試套件、只想要一個(gè)界面直觀的壓測(cè)入口另一類(lèi)是已經(jīng)在用別的方式做穩(wěn)定性驗(yàn)證、想再要一個(gè)多維度同時(shí)壓測(cè)的補(bǔ)充手段。2. 壓力測(cè)試為什么不能只跑一個(gè) CPU 滿(mǎn)載HeavyLoad 的負(fù)載設(shè)計(jì)與選型理由2.1 單線(xiàn)程烤機(jī)測(cè)不出真實(shí)故障很多人以為壓力測(cè)試就是讓 CPU 百分之百跑起來(lái)跑一晚上不藍(lán)屏就說(shuō)明沒(méi)問(wèn)題。這個(gè)說(shuō)法對(duì)了一半。實(shí)際使用中電腦并不是只承擔(dān) CPU 壓力內(nèi)存的分配模式、硬盤(pán)的持續(xù)寫(xiě)入、顯卡在 3D 渲染時(shí)的功耗峰值都可能成為壓垮整機(jī)的最后一根稻草。我見(jiàn)過(guò)一臺(tái)機(jī)器用純 CPU 烤機(jī)工具跑 12 小時(shí)穩(wěn)如老狗結(jié)果一開(kāi)瀏覽器看視頻就黑屏重啟最后定位到顯卡驅(qū)動(dòng)在低負(fù)載切換時(shí)崩潰。單一負(fù)載只能驗(yàn)證單一部件只有讓多個(gè)子系統(tǒng)同時(shí)承受壓力才能還原真實(shí)使用中最?lèi)毫拥墓r。HeavyLoad 的設(shè)計(jì)思路就是同時(shí)提供多個(gè)負(fù)載維度讓它們疊加在一起跑暴露交互下的沖突。HeavyLoad 屬于那種典型的“多合一”壓測(cè)工具。它的主界面上會(huì)把 CPU、內(nèi)存、磁盤(pán)、圖形、網(wǎng)絡(luò)分別作為獨(dú)立負(fù)載列出你可以單獨(dú)開(kāi)啟某一項(xiàng)也可以全部打開(kāi)。和 AIDA64 這類(lèi)偏硬件信息與基準(zhǔn)測(cè)試的套件不同HeavyLoad 更貼近持續(xù)穩(wěn)定性測(cè)試它不以跑出“分?jǐn)?shù)”為目標(biāo)而是讓機(jī)器長(zhǎng)時(shí)間處于高負(fù)載狀態(tài)。這種思路跟穩(wěn)定性驗(yàn)證的需求是匹配的。你還可能聽(tīng)到過(guò) Prime95、MemTest 之類(lèi)的專(zhuān)業(yè)工具它們單點(diǎn)能力很強(qiáng)但相互之間沒(méi)有配合很難模擬“同時(shí)讀寫(xiě)大量數(shù)據(jù)還開(kāi)滿(mǎn)特效”這種復(fù)合場(chǎng)景。2.2 HeavyLoad 的負(fù)載是怎么產(chǎn)生的先說(shuō) CPU 部分。HeavyLoad 會(huì)啟動(dòng)一批優(yōu)先級(jí)很高的計(jì)算線(xiàn)程每個(gè)線(xiàn)程持續(xù)執(zhí)行浮點(diǎn)運(yùn)算和整數(shù)運(yùn)算盡可能占滿(mǎn)所有邏輯處理器。它和普通跑分軟件的區(qū)別是跑分軟件通常只跑一段固定時(shí)間然后給出分?jǐn)?shù)HeavyLoad 可以讓這些線(xiàn)程一直跑下去直到你手動(dòng)停止或到達(dá)設(shè)定的時(shí)限。為了讓負(fù)載更真實(shí)它還會(huì)搶占系統(tǒng)空閑時(shí)間讓 CPU 始終保持在接近 100% 的狀態(tài)。界面上的折線(xiàn)圖會(huì)實(shí)時(shí)顯示每個(gè)核心的使用率你可以一邊壓測(cè)一邊觀察頻率有沒(méi)有掉。內(nèi)存負(fù)載則更有講究。不是簡(jiǎn)單地申請(qǐng)一塊內(nèi)存寫(xiě)點(diǎn)數(shù)據(jù)就完事而是持續(xù)地分配、寫(xiě)入、讀取、釋放在進(jìn)程中制造大量頁(yè)面換入換出。它會(huì)嘗試申請(qǐng)你設(shè)定大小的內(nèi)存并且循環(huán)訪(fǎng)問(wèn)這些內(nèi)存地址確保數(shù)據(jù)不只是“占著沒(méi)用”而是真實(shí)地被讀寫(xiě)。這個(gè)設(shè)計(jì)很有價(jià)值因?yàn)楹芏鄡?nèi)存時(shí)序、緩存一致性、供電不穩(wěn)的問(wèn)題都只在頻繁訪(fǎng)問(wèn)大塊內(nèi)存時(shí)才出現(xiàn)。第一次跑的時(shí)候建議把分配量設(shè)成物理內(nèi)存的百分之八九十讓系統(tǒng)處于臨界壓力而不是直接設(shè)滿(mǎn)否則會(huì)把系統(tǒng)本身的內(nèi)存預(yù)算也吃掉。磁盤(pán)壓力是這樣實(shí)現(xiàn)的在指定磁盤(pán)分區(qū)創(chuàng)建一個(gè)大體積臨時(shí)文件然后反復(fù)寫(xiě)入隨機(jī)數(shù)據(jù)和順序數(shù)據(jù)并校驗(yàn)讀取。寫(xiě)入會(huì)占滿(mǎn)磁盤(pán)通道讀取時(shí)會(huì)和寫(xiě)入交替進(jìn)行模擬數(shù)據(jù)庫(kù)或下載場(chǎng)景下的混合 I/O。圖形負(fù)載則通過(guò)持續(xù)渲染 3D 場(chǎng)景來(lái)拉高 GPU 占用率。網(wǎng)絡(luò)負(fù)載會(huì)產(chǎn)生大量吞吐測(cè)試網(wǎng)卡和協(xié)議棧在高負(fù)載下的穩(wěn)定性。這些負(fù)載疊加起來(lái)就是一次全面的“整機(jī)極限體檢”。2.3 它測(cè)不出什么認(rèn)知邊界要清楚HeavyLoad 能壓得動(dòng)你的整機(jī)但有兩類(lèi)問(wèn)題它測(cè)不出來(lái)。第一類(lèi)是間歇性硬件故障比如內(nèi)存顆粒偶發(fā)錯(cuò)誤、硬盤(pán)壞道剛出現(xiàn)時(shí)還能被冗余機(jī)制掩蓋這類(lèi)問(wèn)題需要專(zhuān)門(mén)的長(zhǎng)時(shí)間內(nèi)存測(cè)試或磁盤(pán)掃描工具單純靠整機(jī)壓力很難定向觸發(fā)。第二類(lèi)是外設(shè)兼容性問(wèn)題比如 USB 設(shè)備在睡眠喚醒后失靈、藍(lán)牙在射頻干擾下斷連這不在整機(jī)負(fù)載的覆蓋范圍內(nèi)。所以我的使用習(xí)慣是用 HeavyLoad 做整機(jī)穩(wěn)定性的“過(guò)篩”發(fā)現(xiàn)問(wèn)題再換專(zhuān)業(yè)工具定位如果 HeavyLoad 跑過(guò)了但機(jī)器還是不穩(wěn)定我會(huì)轉(zhuǎn)向事件查看器和硬件日志去排查而不是懷疑壓測(cè)工具不夠用力。另一個(gè)常被誤解的點(diǎn)是高溫是這個(gè)工具故意制造的副產(chǎn)品。有人看到壓測(cè)時(shí) CPU 沖到 90 多度就認(rèn)為工具太激進(jìn)其實(shí)壓力測(cè)試的目的之一就是制造高溫強(qiáng)迫散熱系統(tǒng)體現(xiàn)真實(shí)水平。如果沒(méi)有足夠強(qiáng)的散熱HeavyLoad 會(huì)迅速把溫度推高這時(shí)候你應(yīng)該感謝它幫你發(fā)現(xiàn)了散熱瓶頸而不是關(guān)了它當(dāng)無(wú)事發(fā)生。當(dāng)然如果溫度直接頂?shù)浇殿l線(xiàn)甚至關(guān)機(jī)說(shuō)明散熱已經(jīng)扛不住極限工況該清灰的清灰該換硅脂的換硅脂這一步本身就是壓測(cè)帶給你的價(jià)值。3. 第一次跑通 HeavyLoad最小流程、三個(gè)關(guān)鍵設(shè)置和一段批處理腳本3.1 運(yùn)行前的準(zhǔn)備管理員權(quán)限和臨時(shí)文件位置HeavyLoad 不需要安裝解壓出來(lái)就能運(yùn)行這點(diǎn)很適合放在 U 盤(pán)里應(yīng)急。但有幾個(gè)前提條件要滿(mǎn)足。首先必須以管理員身份運(yùn)行否則它無(wú)法創(chuàng)建足夠高優(yōu)先級(jí)的線(xiàn)程也無(wú)法執(zhí)行某些底層 I/O 操作壓測(cè)強(qiáng)度會(huì)大打折扣。其次磁盤(pán)壓力測(cè)試需要一塊有足夠剩余空間的分區(qū)至少要準(zhǔn)備比測(cè)試文件大兩三倍的空間因?yàn)榕R時(shí)文件在運(yùn)行中會(huì)不斷增長(zhǎng)。我一般會(huì)在機(jī)械硬盤(pán)和固態(tài)硬盤(pán)上各留一個(gè)分區(qū)做測(cè)試這樣可以分別看清兩個(gè)盤(pán)的穩(wěn)定性表現(xiàn)。運(yùn)行前建議把所有可能干擾測(cè)試的程序關(guān)掉包括殺毒軟件的實(shí)時(shí)防護(hù)、網(wǎng)盤(pán)同步客戶(hù)端、系統(tǒng)更新服務(wù)。原因很簡(jiǎn)單壓測(cè)本來(lái)就希望獨(dú)占整機(jī)資源后臺(tái)程序搶走 CPU 或磁盤(pán) I/O 會(huì)讓測(cè)試結(jié)果失真。特別是殺毒軟件它會(huì)在你創(chuàng)建大文件時(shí)做實(shí)時(shí)掃描導(dǎo)致磁盤(pán)寫(xiě)入的數(shù)據(jù)里混入大量掃描 I/O最后分不清到底是磁盤(pán)本身慢還是被拖慢。關(guān)掉它們壓測(cè)數(shù)據(jù)才干凈。3.2 界面勾選邏輯先單項(xiàng)后復(fù)合第一次打開(kāi) HeavyLoad主界面會(huì)列出幾個(gè)大按鈕和幾組勾選項(xiàng)。順序通常是先勾上 CPU、內(nèi)存這兩項(xiàng)跑 5 到 10 分鐘確認(rèn)基本穩(wěn)定然后加上磁盤(pán)寫(xiě)入最后再打開(kāi)圖形負(fù)載。這個(gè)順序不是隨意定的每加入一項(xiàng)負(fù)載整機(jī)的功耗和溫度都會(huì)上一個(gè)臺(tái)階如果一開(kāi)始就把五項(xiàng)全開(kāi)機(jī)器可能在幾十秒內(nèi)過(guò)熱關(guān)機(jī)你根本沒(méi)法判斷是哪一環(huán)出了問(wèn)題。分段疊加是排查問(wèn)題最穩(wěn)妥的做法。界面里的持續(xù)時(shí)間和負(fù)載級(jí)別參數(shù)也要提前設(shè)好。CPU 和內(nèi)存推薦一開(kāi)始都用默認(rèn)的“重負(fù)載”磁盤(pán)測(cè)試的臨時(shí)文件可以設(shè)成比系統(tǒng)內(nèi)存稍大的值比如內(nèi)存 16GB 就設(shè) 32GB 左右讓寫(xiě)入持續(xù)足夠長(zhǎng)的時(shí)間。圖形負(fù)載不要一上來(lái)就開(kāi)最高畫(huà)質(zhì)循環(huán)先用中等分辨率場(chǎng)景跑一圈穩(wěn)定后再開(kāi)高畫(huà)質(zhì)。整體壓測(cè)時(shí)長(zhǎng)根據(jù)用途定新裝機(jī)至少 30 分鐘二手整機(jī)或長(zhǎng)期不穩(wěn)定機(jī)器建議跑過(guò)夜。3.3 用批處理腳本控制壓測(cè)時(shí)長(zhǎng)并自動(dòng)記錄HeavyLoad 本身是圖形界面工具但我習(xí)慣用一段批處理腳本配合計(jì)劃任務(wù)來(lái)做長(zhǎng)時(shí)間壓測(cè)這樣可以強(qiáng)制設(shè)定總時(shí)長(zhǎng)到點(diǎn)自動(dòng)退出避免我離開(kāi)機(jī)器后它一直跑下去。下面是我常用的一段 PowerShell 腳本它啟動(dòng) HeavyLoad、等待指定時(shí)間、記錄進(jìn)程狀態(tài)最后生成一個(gè)簡(jiǎn)單的文本報(bào)告。# 定義 HeavyLoad 可執(zhí)行文件路徑請(qǐng)按實(shí)際解壓位置修改 $heavyLoadPath C:\Tools\HeavyLoad_x64.exe # 定義壓測(cè)時(shí)長(zhǎng)分鐘 $durationMinutes 120 $timeoutSeconds $durationMinutes * 60 # 日志目錄用于存放壓測(cè)記錄 $logDir D:\StressLogs if (!(Test-Path $logDir)) { New-Item -ItemType Directory -Path $logDir | Out-Null } $logFile Join-Path $logDir (stress_ (Get-Date -Format yyyyMMdd_HHmmss) .log) # 啟動(dòng) HeavyLoad界面里手動(dòng)勾選需要的負(fù)載項(xiàng) $process Start-Process -FilePath $heavyLoadPath -PassThru # 記錄啟動(dòng)時(shí)間和進(jìn)程 ID Started: $(Get-Date) PID: $($process.Id) | Out-File $logFile -Encoding utf8 # 循環(huán)檢查目標(biāo)進(jìn)程是否還活著并記錄 CPU 占用率 $elapsed 0 while ($elapsed -lt $timeoutSeconds) { Start-Sleep -Seconds 30 $elapsed 30 $proc Get-Process -Name HeavyLoad* -ErrorAction SilentlyContinue if (-not $proc) { HeavyLoad exited unexpectedly at $(Get-Date) | Out-File $logFile -Append -Encoding utf8 break } # 記錄當(dāng)前時(shí)刻進(jìn)程是否在運(yùn)行 Check: $(Get-Date) running, elapsed $elapsed seconds | Out-File $logFile -Append -Encoding utf8 } # 如果進(jìn)程還在運(yùn)行說(shuō)明壓測(cè)到時(shí)限主動(dòng)結(jié)束 $runningProc Get-Process -Name HeavyLoad* -ErrorAction SilentlyContinue if ($runningProc) { $runningProc | Stop-Process -Force Stopped after timeout at $(Get-Date) | Out-File $logFile -Append -Encoding utf8 } else { No HeavyLoad process found at timeout | Out-File $logFile -Append -Encoding utf8 }這段腳本的邏輯并不復(fù)雜啟動(dòng)進(jìn)程后用 Get-Process 周期性檢查它是否存活到時(shí)間就強(qiáng)制結(jié)束。參數(shù)里最重要的兩個(gè)是$durationMinutes和$timeoutSeconds前者決定你想要的壓測(cè)時(shí)長(zhǎng)后者是它的秒數(shù)換算。實(shí)際使用時(shí)要注意一點(diǎn)腳本只能幫你控制進(jìn)程的啟停界面里的勾選項(xiàng)必須在啟動(dòng)后手動(dòng)點(diǎn)選或者你預(yù)先記住上次勾選的記憶功能。Start-Process -PassThru會(huì)把進(jìn)程對(duì)象傳給$process這樣即使 HeavyLoad 的窗口標(biāo)題變化你也能通過(guò) PID 追蹤到它。每次檢查寫(xiě)入日志的時(shí)間戳可以在事后還原出它是什么時(shí)候掛掉或結(jié)束的。這里有一個(gè)踩過(guò)的坑不要用Stop-Process -Force直接殺 HeavyLoad它雖然能終止進(jìn)程但可能來(lái)不及釋放臨時(shí)文件留下幾個(gè) GB 的臨時(shí)垃圾在磁盤(pán)里。更穩(wěn)的做法是先通過(guò)正常界面點(diǎn)停止按鈕實(shí)在沒(méi)條件再用強(qiáng)殺。腳本里我用了強(qiáng)殺是因?yàn)闊o(wú)人值守場(chǎng)景下沒(méi)法點(diǎn)按鈕所以跑完腳本后記得手動(dòng)清理磁盤(pán)臨時(shí)文件。3.4 壓測(cè)時(shí)長(zhǎng)怎么定30 分鐘、過(guò)夜和周末時(shí)長(zhǎng)設(shè)置取決于你對(duì)機(jī)器的信任程度。全新品牌機(jī)原廠散熱和供電都正常我會(huì)先跑 30 分鐘看溫度是否穩(wěn)定再?zèng)Q定要不要繼續(xù)。二手、組裝、發(fā)生過(guò)不明原因重啟的機(jī)器建議至少跑 4 小時(shí)最好能過(guò)夜。為什么不是跑 10 分鐘就收工因?yàn)橛布?wèn)題往往需要熱量積累和電壓波動(dòng)才能復(fù)現(xiàn)前 10 分鐘是負(fù)載爬坡階段很多瞬態(tài)問(wèn)題要等溫度穩(wěn)定后才出現(xiàn)。如果機(jī)器有間歇性故障跑過(guò)夜能顯著提高捕捉概率。還有一類(lèi)場(chǎng)景是把壓力測(cè)試當(dāng)作驗(yàn)收標(biāo)準(zhǔn)比如幫朋友裝機(jī)、給客戶(hù)交付工作站。這種情況下我一般會(huì)設(shè)一個(gè) 8 小時(shí)的例行測(cè)試跑完后查看日志中是否有異常退出或錯(cuò)誤記錄并把壓測(cè)期間的最高溫度記錄下來(lái)作為機(jī)器的“體檢檔案”。這比口頭保證靠譜得多。當(dāng)然過(guò)夜壓測(cè)要注意一件事把系統(tǒng)休眠、睡眠、屏幕關(guān)閉全部設(shè)為永不否則跑到半夜系統(tǒng)自動(dòng)睡眠壓測(cè)就白跑了。4. 五個(gè)負(fù)載逐個(gè)拆解CPU、內(nèi)存、磁盤(pán)、顯卡與網(wǎng)絡(luò)的參數(shù)調(diào)整要點(diǎn)4.1 CPU 負(fù)載勾滿(mǎn)所有邏輯核但優(yōu)先級(jí)別拉滿(mǎn)打開(kāi) CPU 壓測(cè)選項(xiàng)后重點(diǎn)看兩個(gè)參數(shù)線(xiàn)程數(shù)量和線(xiàn)程優(yōu)先級(jí)。線(xiàn)程數(shù)量要覆蓋所有邏輯處理器也就是相當(dāng)于任務(wù)管理器里看到的 CPU 邏輯核心總數(shù)。如果只勾了默認(rèn)的一半負(fù)載只吃一半核心整機(jī)的發(fā)熱和功耗都達(dá)不到極限故障觸發(fā)概率就低。優(yōu)先級(jí)方面有很多人喜歡直接拉到最高實(shí)時(shí)優(yōu)先級(jí)結(jié)果系統(tǒng)被壓到鼠標(biāo)都動(dòng)不了日志和監(jiān)控都難以操作。我建議的優(yōu)先級(jí)是“高”而不是“實(shí)時(shí)”。區(qū)別在于實(shí)時(shí)優(yōu)先級(jí)會(huì)讓壓測(cè)線(xiàn)程獨(dú)占 CPU連鍵盤(pán)和網(wǎng)絡(luò)中斷都處理不了萬(wàn)一你想中途停止會(huì)很被動(dòng)高優(yōu)先級(jí)仍然保留系統(tǒng)響應(yīng)能力又不至于讓其他線(xiàn)程搶走過(guò)多的 CPU 時(shí)間。對(duì)于大多數(shù)穩(wěn)定性測(cè)試高優(yōu)先級(jí)已經(jīng)足夠。如果你確實(shí)想測(cè)實(shí)時(shí)優(yōu)先級(jí)下的表現(xiàn)最好用前面那段 PowerShell 腳本設(shè)好自動(dòng)停止再做一次短時(shí)間測(cè)試。4.2 內(nèi)存負(fù)載分配量設(shè)多少才科學(xué)內(nèi)存壓測(cè)最重要的參數(shù)是分配量。設(shè)小了內(nèi)存壓力不足不能覆蓋全部?jī)?nèi)存顆粒和控制器設(shè)大了比如設(shè)到物理內(nèi)存的 100%會(huì)導(dǎo)致系統(tǒng)被迫使用頁(yè)面文件測(cè)試的重點(diǎn)就變成了磁盤(pán)交換而不是內(nèi)存本身。經(jīng)驗(yàn)值是在物理內(nèi)存的 80% 到 90% 之間。以 16GB 內(nèi)存為例分配 14GB 左右系統(tǒng)自身和其他后臺(tái)進(jìn)程還能有少量余量不會(huì)觸發(fā)大規(guī)模換頁(yè)。另一個(gè)容易被忽略的是內(nèi)存負(fù)載需要和 CPU 負(fù)載搭配使用。因?yàn)閮?nèi)存的讀寫(xiě)操作也要消耗 CPU 指令周期如果你只開(kāi)內(nèi)存壓測(cè)會(huì)發(fā)現(xiàn) CPU 使用率也有一定程度的上升這是正常的。反過(guò)來(lái)只開(kāi) CPU 壓測(cè)時(shí)內(nèi)存帶寬需求不大就不能覆蓋內(nèi)存控制器在高負(fù)載下的穩(wěn)定性。所以做整機(jī)測(cè)試時(shí)這兩項(xiàng)最好同時(shí)開(kāi)啟才能模擬出大型軟件運(yùn)行時(shí)“CPU 高速計(jì)算 頻繁內(nèi)存交換”的真實(shí)壓力。這塊還有個(gè)玄學(xué)經(jīng)驗(yàn)內(nèi)存壓測(cè)跑出來(lái)的錯(cuò)誤不一定是內(nèi)存壞了。有時(shí)候是主板內(nèi)存插槽接觸不良有時(shí)候是 XMP 頻率超過(guò) CPU 內(nèi)存控制器體質(zhì)甚至可能是 BIOS 的供電設(shè)置偏保守。如果你在 HeavyLoad 中看到內(nèi)存相關(guān)錯(cuò)誤先不要急著下單換內(nèi)存條檢查 BIOS 是不是開(kāi)了 XMP關(guān)掉后跑一遍能過(guò)再?zèng)Q定要不要降頻使用。4.3 磁盤(pán)寫(xiě)入負(fù)載臨時(shí)文件大小和分區(qū)選擇磁盤(pán)壓測(cè)會(huì)在你指定的分區(qū)生成一個(gè)大文件并反復(fù)寫(xiě)入讀取。很多人的第一反應(yīng)是“用 C 盤(pán)測(cè)”但 C 盤(pán)通常存放著系統(tǒng)和截圖日志如果壓測(cè)把 C 盤(pán)塞滿(mǎn)系統(tǒng)可能連日志都寫(xiě)不進(jìn)去。更合理的做法是在一塊空閑分區(qū)或獨(dú)立硬盤(pán)上測(cè)試比如 D 盤(pán)或外接固態(tài)硬盤(pán)。文件大小我一般設(shè)成物理內(nèi)存的兩倍例如內(nèi)存 16GB 就設(shè) 32GB 以上這樣寫(xiě)入時(shí)長(zhǎng)能持續(xù)較久能覆蓋緩存寫(xiě)滿(mǎn)后真正落到盤(pán)片上的階段。機(jī)械硬盤(pán)和固態(tài)硬盤(pán)的表現(xiàn)完全不同。機(jī)械硬盤(pán)在持續(xù)寫(xiě)入時(shí)如果出現(xiàn)大量壞道或磁頭不穩(wěn)定日志里會(huì)出現(xiàn)明顯的寫(xiě)入錯(cuò)誤和超時(shí)固態(tài)硬盤(pán)在過(guò)熱或掉速時(shí)可以通過(guò)寫(xiě)入速度曲線(xiàn)的驟降來(lái)判斷。但 HeavyLoad 的曲線(xiàn)圖只是一個(gè)總體狀態(tài)想看清細(xì)節(jié)建議同時(shí)打開(kāi)任務(wù)管理器或資源監(jiān)視器觀察磁盤(pán)活動(dòng)時(shí)間是否持續(xù)高位。對(duì)于固態(tài)硬盤(pán)還要注意溫度長(zhǎng)時(shí)間寫(xiě)入可能讓主控過(guò)熱觸發(fā)保護(hù)導(dǎo)致寫(xiě)入停頓這不一定是盤(pán)壞了先改善散熱再看結(jié)果。4.4 顯卡負(fù)載3D 渲染和圖形顯存都要管圖形壓測(cè)制造的是持續(xù) 3D 渲染壓力讓 GPU 的 3D 引擎、顯存控制器和供電電路同時(shí)高負(fù)載運(yùn)轉(zhuǎn)。參數(shù)上可以選擇分辨率、畫(huà)質(zhì)和循環(huán)模式。第一次跑建議用較低分辨率和高畫(huà)質(zhì)因?yàn)楦叻直媛蕰?huì)大幅增加顯存壓力如果顯存本身有故障立刻就會(huì)黑屏或掉驅(qū)動(dòng)低分辨率先把核心穩(wěn)定性跑通再逐步加大分辨率。如果你發(fā)現(xiàn)高畫(huà)質(zhì)下花屏或黑屏也不要立刻斷定顯卡壞了先到設(shè)備管理器里看驅(qū)動(dòng)是否有感嘆號(hào)更新或回退驅(qū)動(dòng)版本后再試。這里特別提醒一點(diǎn)顯卡壓測(cè)時(shí)電源質(zhì)量很關(guān)鍵。整機(jī)功耗在滿(mǎn)載時(shí)接近峰值如果電源功率余量不足或紋波偏大顯卡會(huì)在高負(fù)載下掉電壓表現(xiàn)就是黑屏恢復(fù)或者驅(qū)動(dòng)重置。這種問(wèn)題在 HeavyLoad 日志里不一定有明顯錯(cuò)誤記錄但事件查看器的“Kernel-Power”事件會(huì)留下線(xiàn)索。所以做顯卡測(cè)試前先確認(rèn)電源瓦數(shù)和 12V 供電能力是否匹配顯卡需求這一步能省掉大量排查時(shí)間。4.5 網(wǎng)絡(luò)負(fù)載吞吐量測(cè)試的隱藏限制網(wǎng)絡(luò)壓測(cè)很多人不重視但它能發(fā)現(xiàn)網(wǎng)卡驅(qū)動(dòng)在長(zhǎng)時(shí)間高吞吐下斷流或重啟的問(wèn)題。HeavyLoad 的網(wǎng)絡(luò)負(fù)載會(huì)在網(wǎng)卡上制造持續(xù)的數(shù)據(jù)流你可以指定吞吐帶寬和目標(biāo)地址。常見(jiàn)做法是壓測(cè)到本機(jī)的另一個(gè)網(wǎng)卡或網(wǎng)關(guān)設(shè)備如果只是單塊網(wǎng)卡自測(cè)數(shù)據(jù)可能走回環(huán)接口根本不出網(wǎng)口就測(cè)不到實(shí)際鏈路的問(wèn)題。所以設(shè)置網(wǎng)絡(luò)壓測(cè)時(shí)目標(biāo)地址一定要選一臺(tái)局域網(wǎng)內(nèi)真實(shí)存在的設(shè)備比如路由器或另一臺(tái)電腦。線(xiàn)程數(shù)和數(shù)據(jù)包大小也是可以調(diào)的參數(shù)。多線(xiàn)程能模擬 P2P 下載和視頻會(huì)議同時(shí)進(jìn)行的場(chǎng)景大數(shù)據(jù)包偏重于網(wǎng)卡隊(duì)列深度處理能力。對(duì)大部分家用場(chǎng)景雙線(xiàn)程加默認(rèn)數(shù)據(jù)包已經(jīng)足夠。如果你的設(shè)備有 Wi-Fi 和有線(xiàn)雙網(wǎng)卡最好分別壓測(cè)因?yàn)闊o(wú)線(xiàn)網(wǎng)卡在高吞吐下更容易受干擾和過(guò)熱影響。跑出斷流時(shí)可以先看網(wǎng)卡驅(qū)動(dòng)版本和電源管理選項(xiàng)。很多網(wǎng)卡默認(rèn)開(kāi)啟了節(jié)能模式負(fù)載一高就被系統(tǒng)降速這種問(wèn)題把電源管理里的節(jié)能選項(xiàng)關(guān)掉就能解決。下表是各維度的常用參數(shù)參考實(shí)際值要根據(jù)機(jī)器硬件調(diào)整只當(dāng)作起步區(qū)間用。壓測(cè)維度常用參數(shù)驗(yàn)證重點(diǎn)失敗常見(jiàn)表現(xiàn)CPU邏輯線(xiàn)程全開(kāi)優(yōu)先級(jí)高溫度、頻率是否穩(wěn)定藍(lán)屏、線(xiàn)程卡死內(nèi)存物理內(nèi)存的 80%~90%是否有內(nèi)存錯(cuò)誤記錄死機(jī)、應(yīng)用閃退磁盤(pán)臨時(shí)文件大小為內(nèi)存兩倍左右寫(xiě)入是否為持續(xù)滿(mǎn)負(fù)載I/O 超時(shí)、寫(xiě)入錯(cuò)誤顯卡中等分辨率起步逐步升高是否掉驅(qū)動(dòng)、花屏黑屏、驅(qū)動(dòng)重置網(wǎng)絡(luò)雙線(xiàn)程目標(biāo)為局域網(wǎng)設(shè)備吞吐是否穩(wěn)定斷流、網(wǎng)卡掉線(xiàn)5. HeavyLoad 壓測(cè)避坑藍(lán)屏、假死、溫度飆升的排查記錄5.1 壓測(cè)十幾分鐘就藍(lán)屏重啟后卻一切正?,F(xiàn)象是最常見(jiàn)的HeavyLoad 跑了十幾分鐘后突然藍(lán)屏錯(cuò)誤代碼指向內(nèi)存管理或顯卡驅(qū)動(dòng)重啟后機(jī)器完全正常再跑一次可能又是幾小時(shí)后才崩。很多人因此懷疑壓測(cè)工具“制造了故障”其實(shí)是機(jī)器本身就有潛在問(wèn)題只是普通使用碰不到臨界點(diǎn)。原因是負(fù)載疊加后某個(gè)部件的電壓或溫度越過(guò)了不穩(wěn)定的臨界區(qū)間。排查辦法是分步壓測(cè)先只開(kāi) CPU再只開(kāi)內(nèi)存再只開(kāi)顯卡觀察藍(lán)屏發(fā)生在哪一步。如果單獨(dú)跑都不藍(lán)屏那就是多負(fù)載疊加時(shí)功耗超了電源供電能力如果單獨(dú)跑內(nèi)存就藍(lán)屏先關(guān)掉 XMP 降頻試試如果是顯卡相關(guān)更新或回退驅(qū)動(dòng)版本。記錄下藍(lán)屏代碼和 WHEA 錯(cuò)誤日志再去對(duì)應(yīng)方向查比盲目換硬件高效得多。5.2 界面顯示 100% 負(fù)載但任務(wù)管理器顯示 CPU 只有一半現(xiàn)象是 HeavyLoad 自己的曲線(xiàn)圖顯示滿(mǎn)載任務(wù)管理器里卻只有 50% 左右的 CPU 使用率。這種情況多半出現(xiàn)在多核心處理器上容易讓人誤以為壓測(cè)工具失效。原因通常是兩種一是運(yùn)行程序時(shí)沒(méi)有以管理員身份啟動(dòng)進(jìn)程無(wú)法設(shè)置足夠高的線(xiàn)程優(yōu)先級(jí)部分核心的負(fù)載拉不上去二是電源計(jì)劃處于“節(jié)能”或“平衡”模式系統(tǒng)主動(dòng)限制了 CPU 頻率。解決方法是先右鍵以管理員身份重跑再到控制面板把電源計(jì)劃改為“高性能”或“卓越性能”。如果仍然只有一半核心滿(mǎn)載檢查一下是不是設(shè)置了只壓部分線(xiàn)程把線(xiàn)程數(shù)改為全部邏輯處理器再跑。開(kāi)了 Hyper-V 或虛擬化也可能讓核心分配出現(xiàn)偏差但管理員權(quán)限和高性能電源這兩步能解決大約九成的情況。5.3 壓測(cè)過(guò)程中系統(tǒng)假死鼠標(biāo)鍵盤(pán)都無(wú)響應(yīng)現(xiàn)象是壓測(cè)一段時(shí)間后系統(tǒng)完全卡住鼠標(biāo)、鍵盤(pán)都沒(méi)反應(yīng)但可以聽(tīng)到風(fēng)扇還在高速轉(zhuǎn)機(jī)器沒(méi)有自動(dòng)斷電。第一次遇到時(shí)很?chē)樔艘詾橛布呀?jīng)燒了其實(shí)這叫假死或硬鎖。原因是壓測(cè)線(xiàn)程優(yōu)先級(jí)太高或者顯卡驅(qū)動(dòng)響應(yīng)超時(shí)系統(tǒng)圖形界面拿不到足夠的 CPU 時(shí)間。解決思路有兩條一是把壓測(cè)優(yōu)先級(jí)從“實(shí)時(shí)”改成“高”保留基本系統(tǒng)響應(yīng)能力二是啟用壓測(cè)前先打開(kāi)遠(yuǎn)程桌面萬(wàn)一本地界面卡死還能從另一臺(tái)設(shè)備登錄進(jìn)去強(qiáng)制停止。如果一個(gè)勁地追求最高優(yōu)先級(jí)導(dǎo)致系統(tǒng)假死反而拿不到溫度和日志數(shù)據(jù)壓測(cè)就失去了意義。我做長(zhǎng)時(shí)間的無(wú)人值守壓測(cè)時(shí)寧可把優(yōu)先級(jí)降到高也要保證系統(tǒng)活著讓它能把完整日志寫(xiě)完。5.4 磁盤(pán)壓測(cè)結(jié)束后盤(pán)里多了幾十 GB 隱藏文件現(xiàn)象是壓測(cè)結(jié)束后磁盤(pán)可用空間大幅下降但在資源管理器里看不到什么明顯的大文件。原因是壓測(cè)的臨時(shí)文件可能在進(jìn)程被強(qiáng)制結(jié)束時(shí)沒(méi)有正確釋放或者是殺毒軟件攔截了文件清理動(dòng)作。解決方法是壓測(cè)前先記下磁盤(pán)可用空間壓測(cè)后如果發(fā)現(xiàn)空間少了到臨時(shí)目錄和 HeavyLoad 所在目錄里排查有沒(méi)有殘留文件。還有一個(gè)辦法把磁盤(pán)壓測(cè)的臨時(shí)文件目錄設(shè)置為系統(tǒng)臨時(shí)文件夾這樣即使后續(xù)沒(méi)清理干凈重啟后系統(tǒng)也會(huì)自動(dòng)清一部分。如果多次出現(xiàn)殘留文件建議檢查排程停止是否走正常停止流程。換用腳本里的Stop-Process -Force前先把界面里的磁盤(pán)測(cè)試手動(dòng)停一次給臨時(shí)文件留出釋放時(shí)間。5.5 筆記本溫度瞬間頂?shù)?100 度并降頻現(xiàn)象是壓測(cè)剛啟動(dòng)一兩分鐘CPU 溫度就到了 95 甚至 100 度隨后頻率明顯下降壓測(cè)成績(jī)很難看。這時(shí)候不是壓測(cè)工具的錯(cuò)而是散熱已經(jīng)到了極限。筆記本在長(zhǎng)時(shí)間滿(mǎn)載時(shí)降頻幾乎必然問(wèn)題關(guān)鍵在于底噪溫度和降頻幅度有多大。排查思路是清理風(fēng)扇和散熱鰭片、更換硅脂、墊高機(jī)身增加進(jìn)風(fēng)這幾招能有效壓低溫度。同時(shí)打開(kāi)廠商的性能監(jiān)控面板或第三方溫度工具記錄壓測(cè)期間的溫度曲線(xiàn)和 CPU 頻率曲線(xiàn)看頻率是不是出現(xiàn)了劇烈跳水。如果只是輕微降頻屬于正常的散熱功耗控制如果頻率掉了三分之一以上且溫度持續(xù)頂著 100 度那不是壓測(cè)工具太狠是散熱系統(tǒng)確實(shí)需要維護(hù)了。不要為了追求好看的數(shù)據(jù)而開(kāi)空調(diào)對(duì)著筆記本吹那樣測(cè)出的結(jié)果沒(méi)有任何實(shí)際參考價(jià)值。6. 讓壓力測(cè)試可驗(yàn)證日志記錄、性能計(jì)數(shù)器與自動(dòng)化批處理的進(jìn)階用法很多人跑完 HeavyLoad只看“沒(méi)藍(lán)屏沒(méi)重啟”就宣布通過(guò)。但穩(wěn)定性測(cè)試要有說(shuō)服力必須有可回看的數(shù)據(jù)。最簡(jiǎn)單的做法是同時(shí)開(kāi)啟 Windows 自帶的性能計(jì)數(shù)器記錄 CPU、內(nèi)存、磁盤(pán)、GPU 的關(guān)鍵指標(biāo)再把 HeavyLoad 日志里的時(shí)間節(jié)點(diǎn)對(duì)應(yīng)起來(lái)看。性能計(jì)數(shù)器的操作不復(fù)雜運(yùn)行 perfmon新建一個(gè)數(shù)據(jù)收集器集把 Processor Time、Available MBytes、Disk Bytes/sec 添加進(jìn)去設(shè)置一個(gè)和壓測(cè)時(shí)長(zhǎng)一致的采樣間隔跑完后就能看到一份完整的資源曲線(xiàn)。配合 HeavyLoad 的日志文件可以精確判斷出問(wèn)題發(fā)生前系統(tǒng)的資源狀態(tài)。如果從計(jì)數(shù)器曲線(xiàn)上看到內(nèi)存可用量在壓測(cè)后期驟降為 0那大概率是分配量設(shè)得太高觸發(fā)了頁(yè)面交換而不是硬件故障。這一步能讓壓測(cè)結(jié)論從“好像沒(méi)問(wèn)題”變成“有數(shù)據(jù)支撐的穩(wěn)定”。批處理腳本也能更進(jìn)一步。你可以把本文前面的 PowerShell 腳本改成一個(gè)循環(huán)比如反復(fù)跑三次短壓測(cè)每次中間停五分鐘模擬多次開(kāi)關(guān)機(jī)后的壓力狀態(tài)再把每次生成的日志文件名按時(shí)間排序統(tǒng)一歸檔。這比一次性連續(xù)跑三個(gè)小時(shí)更能暴露冷啟動(dòng)相關(guān)的故障。腳本結(jié)束后再寫(xiě)一個(gè)簡(jiǎn)單的判斷邏輯掃描日志里有沒(méi)有“error”“failed”關(guān)鍵詞有則把對(duì)應(yīng)文件復(fù)制到一個(gè)“異?!蹦夸洝_@樣一套下來(lái)無(wú)人值守壓測(cè)的產(chǎn)出就不是一堆晦澀的日志而是一份能直接判斷通過(guò)與否的結(jié)果表。我現(xiàn)在做新機(jī)器的整機(jī)驗(yàn)收基本固定這套流程先查電源計(jì)劃、關(guān)睡眠再以管理員身份打開(kāi) HeavyLoad單開(kāi) CPU 和內(nèi)存跑 30 分鐘看底噪溫度然后疊加磁盤(pán)和顯卡跑 2 小時(shí)同時(shí)開(kāi) perfmon 記錄計(jì)數(shù)器最后看日志里有沒(méi)有錯(cuò)誤記錄。這套方法幫我擋下了不少上門(mén)售后也希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取