系統(tǒng)管理器深度解析:從CPU到磁盤(pán)的資源瓶頸排查實(shí)戰(zhàn))
從打開(kāi)任務(wù)管理器到真正管好系統(tǒng)資源中間隔著的不是工具而是對(duì)“多任務(wù)”三個(gè)字的理解你有沒(méi)有過(guò)這種時(shí)刻電腦突然卡死風(fēng)扇狂轉(zhuǎn)鼠標(biāo)轉(zhuǎn)圈你反復(fù)按下 CtrlShiftEsc盯著那個(gè)半透明窗口里的百分比發(fā)呆。數(shù)字在跳但你除了“殺掉最占資源的進(jìn)程”之外根本不知道下一步該做什么。多任務(wù)系統(tǒng)管理器這個(gè)工具幾乎每一個(gè)用電腦的人都打開(kāi)過(guò)但絕大多數(shù)人從來(lái)沒(méi)真正用起來(lái)過(guò)。這篇文章想聊的就是這件事。我會(huì)把 Windows 任務(wù)管理器、Linux 的 htop、macOS 的活動(dòng)監(jiān)視器這些系統(tǒng)管理器背后的核心邏輯講清楚把 CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)這四類(lèi)資源的關(guān)鍵指標(biāo)拆開(kāi)揉碎再結(jié)合幾個(gè)真實(shí)的排查場(chǎng)景講一講我是怎么用一套流程定位資源瓶頸、隔離異常進(jìn)程、優(yōu)化系統(tǒng)占用率的。內(nèi)容不只面向運(yùn)維或開(kāi)發(fā)只要你想讓自己電腦不再莫名卡頓、想搞清楚后臺(tái)到底跑了什么這篇文章都值得往下看。1. 先搞清楚多任務(wù)的本質(zhì)再看管理器里的每個(gè)數(shù)字1.1 多任務(wù)不是“同時(shí)做很多件事”而是“快速切換”很多人對(duì)多任務(wù)系統(tǒng)管理器有個(gè)誤解覺(jué)得系統(tǒng)里那么多進(jìn)程同時(shí)跑靠的就是“越多核越能并行”。這句話不算錯(cuò)但遠(yuǎn)遠(yuǎn)不夠。真實(shí)情況是你的 CPU 核心數(shù)量有限單核同一時(shí)刻只能真正執(zhí)行一條指令流。系統(tǒng)之所以看起來(lái)能同時(shí)跑 QQ、瀏覽器、微信、視頻播放器、殺毒軟件靠的是操作系統(tǒng)頻繁切換進(jìn)程的上下文。這個(gè)切換速度快到什么程度現(xiàn)代操作系統(tǒng)的時(shí)間片通常在 1 毫秒到幾十毫秒之間你每眨一次眼CPU 已經(jīng)切換了成百上千次任務(wù)。你看到任務(wù)管理器里 CPU 使用率在 30% 和 80% 之間跳來(lái)跳去那不是系統(tǒng)瘋了而是每個(gè)進(jìn)程輪流吃時(shí)間片的結(jié)果。理解了這個(gè)底層機(jī)制再去看管理器里的每一個(gè)數(shù)字你會(huì)發(fā)現(xiàn)以前看不懂的地方全通了。比如你看到一個(gè)進(jìn)程的 CPU 占用是 0%不代表它沒(méi)干活可能是它正在等磁盤(pán) I/O或者剛把時(shí)間片讓給了別的線程。反過(guò)來(lái)一個(gè)進(jìn)程長(zhǎng)時(shí)間占據(jù) 100% 的 CPU說(shuō)明它的邏輯或性能有問(wèn)題正常設(shè)計(jì)良好的應(yīng)用不會(huì)一直“死磕”CPU。很多時(shí)候系統(tǒng)卡頓的第一現(xiàn)場(chǎng)就是某個(gè)進(jìn)程沒(méi)有正確處理等待與輪轉(zhuǎn)。1.2 系統(tǒng)管理器到底管什么四類(lèi)資源四個(gè)瓶頸多任務(wù)系統(tǒng)管理器的本質(zhì)是讓你觀察并干預(yù)操作系統(tǒng)如何分配這四樣?xùn)|西。CPU 時(shí)間誰(shuí)在占用運(yùn)算資源占了多少有沒(méi)有進(jìn)程在空轉(zhuǎn)。內(nèi)存空間誰(shuí)在你機(jī)器里占著內(nèi)存不退出誰(shuí)在持續(xù)增長(zhǎng)甚至泄漏。磁盤(pán) I/O誰(shuí)在瘋狂讀寫(xiě)硬盤(pán)拖慢了整個(gè)系統(tǒng)的響應(yīng)速度。網(wǎng)絡(luò)帶寬誰(shuí)在偷偷上傳下載占滿(mǎn)了你的網(wǎng)速。這四類(lèi)資源里最容易被忽視的是磁盤(pán) I/O。我見(jiàn)過(guò)不少用戶(hù)電腦卡得不行跑去看任務(wù)管理器發(fā)現(xiàn) CPU 只有 20%內(nèi)存也不高然后抓瞎。其實(shí)把性能頁(yè)簽切到硬盤(pán)磁盤(pán)利用率可能已經(jīng) 100% 了。磁盤(pán)滿(mǎn)負(fù)載時(shí)整個(gè)系統(tǒng)像陷在泥潭里CPU 再閑也沒(méi)用因?yàn)榇罅烤€程都在排隊(duì)等數(shù)據(jù)。系統(tǒng)管理器里最有價(jià)值的操作就是快速判斷瓶頸到底落在哪一類(lèi)資源上。方向?qū)α伺挪榫涂煲话搿?. 三大平臺(tái)的系統(tǒng)管理器到底該怎么看2.1 Windows 任務(wù)管理器從“點(diǎn)到為止”到“精準(zhǔn)定位”Windows 任務(wù)管理器快捷鍵 CtrlShiftEsc是絕大多數(shù)人最先接觸的系統(tǒng)管理器。說(shuō)實(shí)話Win10 之后的版本已經(jīng)做得很強(qiáng)了很多人只用了它不到兩成功能。先說(shuō)進(jìn)程頁(yè)簽。這里每行顯示的是一個(gè)應(yīng)用或進(jìn)程CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)四列按任意列排序后誰(shuí)最吃資源立刻無(wú)所遁形。我自己的習(xí)慣是直接點(diǎn)擊“CPU”列頭降序排列再點(diǎn)擊“內(nèi)存”列頭降序排一次兩次排序就能對(duì)系統(tǒng)狀態(tài)有個(gè)大致的判斷。但這只是入門(mén)真正的細(xì)節(jié)在“詳細(xì)信息”頁(yè)簽。詳細(xì)信息頁(yè)簽會(huì)展示 PID、線程數(shù)、CPU 隨時(shí)間變化的曲線、提交大小、工作集、專(zhuān)用工作集等參數(shù)。這里面最容易誤導(dǎo)人的就是任務(wù)管理器默認(rèn)顯示的“內(nèi)存”。工作集進(jìn)程當(dāng)前物理占用內(nèi)存大小也是“進(jìn)程”頁(yè)簽?zāi)J(rèn)顯示的數(shù)值特點(diǎn)是虛胖因?yàn)槔锩姘梢员黄渌M(jìn)程共享的部分。提交大小進(jìn)程內(nèi)核態(tài)和他自己申請(qǐng)的總虛擬內(nèi)存量大小通常遠(yuǎn)大于工作集。這個(gè)數(shù)字持續(xù)上漲且永不回落是內(nèi)存泄漏的典型信號(hào)。我在排查內(nèi)存泄漏時(shí)會(huì)先打開(kāi)詳細(xì)信息頁(yè)簽右鍵增加“提交大小”列觀察幾分鐘。正常應(yīng)用在啟動(dòng)完成后提交大小會(huì)趨于穩(wěn)定最多小幅波動(dòng)。如果一個(gè)進(jìn)程的提交大小一直在漲每秒幾兆那基本可以判定它有內(nèi)存泄漏重啟該應(yīng)用后觀察是否能回落到起點(diǎn)就能確認(rèn)。性能頁(yè)簽也不要放過(guò)。右下角的“啟動(dòng)”頁(yè)簽?zāi)芸吹介_(kāi)機(jī)的啟動(dòng)項(xiàng)右鍵可以禁用。很多人電腦開(kāi)機(jī)慢就是這里躺了一堆自啟動(dòng)軟件每個(gè)都企業(yè)微信、瀏覽器、更新助手這么耗一點(diǎn)啟動(dòng)時(shí)間加起來(lái)就是漫長(zhǎng)的等待。注意在進(jìn)程頁(yè)簽殺掉進(jìn)程之前先右鍵選擇“轉(zhuǎn)到詳細(xì)信息”確認(rèn) PID再結(jié)束任務(wù)。這樣做的好處是避免誤殺同名進(jìn)程。很多軟件有多個(gè)同名進(jìn)程比如 Chrome.exe 可能開(kāi)了十幾個(gè)但你只想關(guān)掉那個(gè)占資源異常的子進(jìn)程直接全殺可能連你的整個(gè)會(huì)話都沒(méi)了。2.2 Linux 系統(tǒng)的進(jìn)程觀察從 top 到 htopLinux 服務(wù)器沒(méi)有圖形界面時(shí)最常用的系統(tǒng)管理器就是 top 和 htop。top 是系統(tǒng)自帶的老牌工具h(yuǎn)top 是增強(qiáng)版。我個(gè)人的建議是直接用 htop如果你所在的發(fā)行版默認(rèn)沒(méi)裝一條命令可以安裝sudo apt install htop # Debian/Ubuntu 系列 sudo yum install htop # CentOS/RHEL 系列htop 啟動(dòng)后上方是 CPU、內(nèi)存、Swap 的實(shí)時(shí)條形圖下方是進(jìn)程列表。重點(diǎn)看這幾列PID進(jìn)程號(hào)殺進(jìn)程時(shí)重要。CPU%進(jìn)程占用 CPU 百分比。MEM%進(jìn)程占用內(nèi)存百分比。RES實(shí)際常駐物理內(nèi)存類(lèi)似工作集。TIME進(jìn)程累計(jì)消耗 CPU 的時(shí)間。這個(gè)很容易被忽視它的價(jià)值在于找出那些“平時(shí)占用不高但一直在后臺(tái)偷偷跑”的進(jìn)程。一個(gè)累計(jì) TIME 值異常高的進(jìn)程即使當(dāng)前 CPU% 不高也可能是系統(tǒng)卡頓的嫌疑犯。htop 有幾個(gè)操作我是強(qiáng)烈建議背下來(lái)的F3 搜索進(jìn)程名、F4 按字符串過(guò)濾、F5 切換樹(shù)狀視圖、F6 選擇排序字段、F9 發(fā)送信號(hào)15 是優(yōu)雅退出9 是強(qiáng)制殺死。其中 F5 的樹(shù)狀視圖非常有用能看到進(jìn)程之間的父子關(guān)系排查僵尸進(jìn)程或定位系統(tǒng)進(jìn)程歸屬時(shí)比平鋪列表直觀得多。如果 top、htop 都看不出問(wèn)題就需要用 vmstat 和 iostat 來(lái)觀察系統(tǒng)整體狀態(tài)。vmstat 1 5 iostat -x 1 3vmstat 輸出的 procs 列里r 表示運(yùn)行隊(duì)列長(zhǎng)度b 表示阻塞進(jìn)程數(shù)。如果 r 長(zhǎng)期大于 CPU 核數(shù)說(shuō)明 CPU 超載排隊(duì)現(xiàn)象嚴(yán)重。iostat 的 %util 如果長(zhǎng)期接近 100%優(yōu)先懷疑磁盤(pán)瓶頸。這兩個(gè)命令配合 htop基本能覆蓋 90% 的排查場(chǎng)景。2.3 macOS 活動(dòng)監(jiān)視器穩(wěn)定之外要讀懂的隱藏信號(hào)macOS 的活動(dòng)監(jiān)視器本質(zhì)和 Windows 任務(wù)管理器很像但有一點(diǎn)做得特別直觀內(nèi)存頁(yè)簽里的“內(nèi)存壓力”曲線。這個(gè)曲線呈現(xiàn)的是系統(tǒng)內(nèi)存是否緊張綠色表示充裕黃色開(kāi)始吃緊紅色就是系統(tǒng)已經(jīng)在大量壓縮內(nèi)存或換入換出這時(shí)候就算 CPU 再閑整個(gè)系統(tǒng)也會(huì)覺(jué)得遲滯。macOS 里有個(gè)進(jìn)程叫“內(nèi)核任務(wù)”你可能會(huì)看到它占用大量 CPU第一反應(yīng)是系統(tǒng)中毒了。實(shí)際上這是正常的內(nèi)核任務(wù)表示系統(tǒng)內(nèi)核本身及其驅(qū)動(dòng)在做多少運(yùn)算。如果內(nèi)核任務(wù)長(zhǎng)期高占用通常意味著某個(gè)硬件驅(qū)動(dòng)有問(wèn)題比如 USB 設(shè)備、外接顯示器的驅(qū)動(dòng)異常常見(jiàn)的解決思路是斷開(kāi)外設(shè)看是否下降。另外macOS 的“節(jié)能器”面板值得偶爾看一眼。某些后臺(tái)進(jìn)程會(huì)在合蓋休眠時(shí)持續(xù)喚醒系統(tǒng)導(dǎo)致電池續(xù)航驟降?;顒?dòng)監(jiān)視器里的“能耗”列能按過(guò)去 8 小時(shí)或 24 小時(shí)的能耗排序高能耗且不常用的應(yīng)用可以直接在這里選中后點(diǎn)擊 X 強(qiáng)制退出。3. 一次完整的資源危機(jī)排查實(shí)戰(zhàn)3.1 場(chǎng)景一CPU 占用 100%風(fēng)扇狂轉(zhuǎn)到起飛這種場(chǎng)景在筆記本上最常見(jiàn)。打開(kāi)任務(wù)管理器看到 CPU 列表里某個(gè)進(jìn)程頂在 90% 以上第一反應(yīng)就是殺掉它。但我的建議是先做三件事再動(dòng)手。第一步區(qū)分“單核 100%”和“整體 100%”。如果有多核 CPU單核跑滿(mǎn)時(shí)總 CPU 百分比并不高但系統(tǒng)依然會(huì)感覺(jué)微卡。切換到“性能”頁(yè)簽看每個(gè)邏輯處理器的占用圖。如果就一個(gè)核滿(mǎn)了基本是某個(gè)進(jìn)程的個(gè)別線程在死循環(huán)而不是整個(gè)系統(tǒng)資源耗盡。第二步右鍵進(jìn)程選擇“打開(kāi)文件所在位置”確認(rèn)這是不是你認(rèn)識(shí)的應(yīng)用路徑。很多模擬器、驅(qū)動(dòng)更新程序、Adobe 的輔助進(jìn)程路徑都很奇怪但不代表是病毒。不過(guò)如果進(jìn)程路徑在臨時(shí)目錄或用戶(hù)目錄下且名稱(chēng)和某個(gè)知名軟件高度相似但拼寫(xiě)略有差別那就要高度警惕。第三步如果確認(rèn)是你不想保留的進(jìn)程我建議先右鍵“結(jié)束任務(wù)”而非“結(jié)束進(jìn)程樹(shù)”。結(jié)束任務(wù)只殺當(dāng)前進(jìn)程結(jié)束進(jìn)程樹(shù)會(huì)連它的所有子進(jìn)程一起干掉。如果這個(gè)進(jìn)程是某個(gè)大軟件的核心服務(wù)殺掉進(jìn)程樹(shù)可能導(dǎo)致其他功能連鎖報(bào)錯(cuò)。補(bǔ)一句實(shí)操心得不急著殺進(jìn)程先截圖再殺。很多異常進(jìn)程殺掉后日志信息就沒(méi)了。你截圖記錄當(dāng)時(shí)的占用、PID、路徑后續(xù)排查問(wèn)題原因時(shí)會(huì)輕松很多。3.2 場(chǎng)景二內(nèi)存不夠用系統(tǒng)卡到幾乎崩潰內(nèi)存滿(mǎn)的問(wèn)題有個(gè)特征打開(kāi)的任務(wù)越來(lái)越多系統(tǒng)開(kāi)始頻繁將內(nèi)存內(nèi)容寫(xiě)入硬盤(pán)上的頁(yè)面文件然后再讀回來(lái)這個(gè)過(guò)程在任務(wù)管理器里表現(xiàn)為磁盤(pán)活動(dòng)顯著增加但 CPU 處于相對(duì)空閑狀態(tài)。這就是典型的換頁(yè)風(fēng)暴。排查思路分三步按內(nèi)存降序排列進(jìn)程找出當(dāng)前占用最高的幾個(gè)看看它們加起來(lái)的物理內(nèi)存是否已接近你的內(nèi)存條總量。切到詳細(xì)信息頁(yè)簽查看提交大小判斷這些進(jìn)程的內(nèi)存是啟動(dòng)后穩(wěn)定還是有持續(xù)增長(zhǎng)。持續(xù)增長(zhǎng)說(shuō)明有泄漏需要重啟該應(yīng)用。如果總內(nèi)存確實(shí)不夠先關(guān)掉可退出的進(jìn)程觀察系統(tǒng)是否恢復(fù)流暢。如果關(guān)掉幾個(gè)應(yīng)用后立刻好轉(zhuǎn)說(shuō)明就是物理容量不足治本方案是加內(nèi)存條或者在預(yù)算有限的情況下減少開(kāi)機(jī)自啟項(xiàng)目。另外Windows 有個(gè)“系統(tǒng)壓縮內(nèi)存”進(jìn)程它本身代表內(nèi)存壓縮技術(shù)在工作是正常的。但這個(gè)進(jìn)程占用率持續(xù)偏高說(shuō)明系統(tǒng)內(nèi)存緊張大量數(shù)據(jù)在被強(qiáng)制壓縮。你真正應(yīng)該做的不是殺它也殺不掉而是看看哪些大頭進(jìn)程該關(guān)了。3.3 場(chǎng)景三磁盤(pán) 100%卡得像是死機(jī)但 CPU 和內(nèi)存都正常磁盤(pán)占用 100% 是很多筆記本用戶(hù)的老朋友。你打開(kāi)任務(wù)管理器進(jìn)程列表按磁盤(pán)排序排第一的可能是 Windows Search搜索索引或者 Windows Update系統(tǒng)更新又或者是殺毒軟件的實(shí)時(shí)掃描。這些都是磁盤(pán)殺手。我的一般處理順序Windows SearchSearchIndexer.exe用右鍵禁用搜索索引服務(wù)。如果不太依賴(lài)文件內(nèi)容搜索這個(gè)服務(wù)禁掉能省很多磁盤(pán)負(fù)載。但要注意它被禁用后文件資源管理器里的搜索速度會(huì)變慢。Windows Updatewuauclt.exe 或 TrustedInstaller.exe更新完成后如果磁盤(pán)還長(zhǎng)時(shí)間高占用去“設(shè)置-更新與安全”里暫停更新一周再檢查磁盤(pán)占用是否回落。這里不建議永久禁用更新除非你很清楚自己在做什么。DefenderMsMpEng.exe實(shí)時(shí)保護(hù)的掃描確實(shí)占磁盤(pán)。短期的辦法是臨時(shí)關(guān)閉實(shí)時(shí)保護(hù)但過(guò)段時(shí)間系統(tǒng)又會(huì)自動(dòng)打開(kāi)。治本辦法是在“病毒和威脅防護(hù)”設(shè)置里把需要頻繁讀寫(xiě)的目錄加入排除列表比如你的開(kāi)發(fā)目錄或素材庫(kù)。排查磁盤(pán)問(wèn)題時(shí)一個(gè)比較實(shí)用的補(bǔ)充操作是打開(kāi)“性能”頁(yè)簽查看磁盤(pán)“活動(dòng)時(shí)間”和“響應(yīng)時(shí)間”兩個(gè)指標(biāo)。響應(yīng)時(shí)間如果長(zhǎng)時(shí)間超過(guò) 100ms說(shuō)明磁盤(pán)上有大量排隊(duì)的 I/O 請(qǐng)求這時(shí)候即使任務(wù)管理器顯示的進(jìn)程不嚇人系統(tǒng)實(shí)際體驗(yàn)也會(huì)很卡。再往下深挖可以用系統(tǒng)自帶資源監(jiān)視器WinR輸入 resmon查看磁盤(pán)占用進(jìn)程的實(shí)時(shí)讀寫(xiě)字節(jié)數(shù)。3.4 場(chǎng)景四進(jìn)程結(jié)束不了提示“拒絕訪問(wèn)”或“權(quán)限不足”這種情況多數(shù)出現(xiàn)在殺系統(tǒng)進(jìn)程或某些軟件自保進(jìn)程的時(shí)候。最簡(jiǎn)單的辦法是右鍵任務(wù)管理器圖標(biāo)選擇“以管理員身份運(yùn)行”再打開(kāi)進(jìn)程頁(yè)簽執(zhí)行結(jié)束任務(wù)。如果依然拒絕訪問(wèn)說(shuō)明這個(gè)進(jìn)程有更強(qiáng)的權(quán)限保護(hù)。Windows 下還有一個(gè)偏門(mén)但有效的思路用命令行工具結(jié)束進(jìn)程。以管理員身份打開(kāi)命令提示符用 taskkill 指定 PID 強(qiáng)殺taskkill /F /PID 進(jìn)程PID如果連這個(gè)都提示拒絕大概率是進(jìn)程被內(nèi)核保護(hù)了或者處于不死狀態(tài)。這時(shí)候不要硬剛重啟一次系統(tǒng)基本能解決。Linux 下也是一樣普通用戶(hù)殺不了 root 進(jìn)程用 sudo kill -9 強(qiáng)制結(jié)束但如果進(jìn)程進(jìn)入了不可中斷休眠態(tài)D 狀態(tài)kill 也沒(méi)辦法只能重啟機(jī)器。4. 系統(tǒng)效率之外把“多任務(wù)”管到工作流里4.1 操作系統(tǒng)的線程調(diào)度其實(shí)是一套效率方法論用了這么多年系統(tǒng)管理器我發(fā)現(xiàn)一個(gè)很有意思的事操作系統(tǒng)的多任務(wù)調(diào)度機(jī)制完全可以映射到日常工作流程里。操作系統(tǒng)的線程調(diào)度靠的是時(shí)間片、優(yōu)先級(jí)和上下文切換人做多任務(wù)時(shí)也是一樣只是很多人沒(méi)意識(shí)到。你工作一會(huì)兒做 PPT一會(huì)兒回消息一會(huì)兒寫(xiě)代碼不停被打斷就是典型的“頻繁上下文切換”。每次切換大腦都要重新加載上一步的狀態(tài)這個(gè)加載過(guò)程消耗的精力和時(shí)間與 CPU 在處理線程切換時(shí)的開(kāi)銷(xiāo)是一個(gè)道理。切換越頻繁你的整體產(chǎn)出就越低。多任務(wù)系統(tǒng)管理器里最簡(jiǎn)單的工具啟發(fā)是前臺(tái)進(jìn)程優(yōu)先操作系統(tǒng)總是把 CPU 時(shí)間優(yōu)先給前臺(tái)交互進(jìn)程。你工作時(shí)也應(yīng)當(dāng)把注意力優(yōu)先給當(dāng)下最重要的任務(wù)而不是被微信消息帶著走。批處理減少切換操作系統(tǒng)里的批處理是一次把一類(lèi)任務(wù)集中做完減少反復(fù)調(diào)度成本。你可以把回復(fù)郵件、整理文檔這類(lèi)事務(wù)性工作打包在固定時(shí)間段集中處理而不是每來(lái)一封郵件就切換一次。優(yōu)先級(jí)繼承操作系統(tǒng)里高優(yōu)先級(jí)任務(wù)會(huì)讓低優(yōu)先級(jí)任務(wù)先執(zhí)行完這叫優(yōu)先級(jí)繼承。你計(jì)劃好的深度工作時(shí)段可以類(lèi)比成一個(gè)高優(yōu)先級(jí)進(jìn)程在這段時(shí)間里讓那些不緊急的瑣事內(nèi)存里的后臺(tái)進(jìn)程排隊(duì)等待。4.2 像調(diào)優(yōu)系統(tǒng)一樣規(guī)劃自己的任務(wù)池這個(gè)類(lèi)比還能繼續(xù)往下延伸。你打開(kāi)任務(wù)管理器時(shí)經(jīng)常發(fā)現(xiàn) 90% 的資源都浪費(fèi)在那些低價(jià)值的后臺(tái)進(jìn)程上。換成個(gè)人時(shí)間也一樣很多人的 90% 精力花在了刷短視頻、回?zé)o效消息、盯著各種推送通知上真正推進(jìn)重要項(xiàng)目的時(shí)間反而少得可憐。我的實(shí)際操作是每周日晚上做一次“個(gè)人任務(wù)管理器檢查”把所有待辦事項(xiàng)列出來(lái)給它們標(biāo)注優(yōu)先級(jí)和預(yù)計(jì)耗時(shí)然后像系統(tǒng)管理器排序那樣按優(yōu)先級(jí)從高到低排。高優(yōu)先級(jí)的任務(wù)放上午精力最好的時(shí)間段低優(yōu)先級(jí)事務(wù)統(tǒng)一放到下午或晚上。并不是讓每個(gè)人都活得那么精確但這件事幫我避免了那種“一天忙到晚重要的事一件沒(méi)推進(jìn)”的感覺(jué)。個(gè)人經(jīng)驗(yàn)我會(huì)給自己設(shè)定一個(gè)“后臺(tái)任務(wù)窗口”比如每天下午四點(diǎn)到五點(diǎn)半專(zhuān)門(mén)處理雜事。其余時(shí)間把這些雜事全部“掛起”不看、不回、不焦慮。效果比多線程拼命切換好得多。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 任務(wù)管理器本身卡死或打不開(kāi)這種情況不多但遇到了特別鬧心。電腦已經(jīng)卡住了連 CtrlShiftEsc 都沒(méi)反應(yīng)怎么辦一個(gè)思路是使用 WinR 調(diào)用“notepad.exe”先開(kāi)個(gè)記事本再?gòu)挠浭卤镜奈募?打開(kāi)對(duì)話框里定位到 C:\Windows\System32\Taskmgr.exe雙擊啟動(dòng)。繞一圈反而能開(kāi)原因不確定但確實(shí)管用。另一個(gè)思路是 CtrlShiftEsc 不行時(shí)就試試 CtrlAltDelete進(jìn)入安全界面后點(diǎn)任務(wù)管理器這種途徑優(yōu)先級(jí)更高。Linux 下桌面環(huán)境卡死時(shí)可以用 CtrlAltF2 切換到命令行終端登錄后執(zhí)行htop找出異常進(jìn)程殺掉再用systemctl restart gdm或startx重啟桌面會(huì)話。這個(gè)操作的前提是系統(tǒng)核心還在響應(yīng)如果連登錄提示符都出不來(lái)只能物理重啟了。5.2 看到高占用進(jìn)程是系統(tǒng)服務(wù)到底能不能動(dòng)很多人排查時(shí)會(huì)發(fā)現(xiàn)內(nèi)存或磁盤(pán)大戶(hù)是 svchost.exe這類(lèi)進(jìn)程承載著系統(tǒng)服務(wù)??吹健皊ystem”兩個(gè)字就害怕不敢動(dòng)它。我的建議是不要看到名稱(chēng)就武斷。svchost.exe 在任務(wù)管理器里右鍵“轉(zhuǎn)到詳細(xì)信息”再右鍵“轉(zhuǎn)到服務(wù)”就能看到它具體承載了哪些服務(wù)。如果承載的是 Windows Update、SysMain、DCOM Server Process Launcher 之類(lèi)的核心服務(wù)別殺重啟系統(tǒng)可能更穩(wěn)妥。如果承載的是某個(gè)你從沒(méi)見(jiàn)過(guò)的第三方服務(wù)右鍵檢查路徑確認(rèn)后再考慮是否停用對(duì)應(yīng)的服務(wù)項(xiàng)。真正的異常進(jìn)程往往具備這些特征名稱(chēng)偽裝成 svchost.exe但路徑不在 C:\Windows\System32 下或者 CPU 占用異常穩(wěn)定在 90% 以上又或者啟動(dòng)時(shí)瞬間進(jìn)程數(shù)暴漲。遇到這種情況先在“詳細(xì)信息”頁(yè)簽右鍵“打開(kāi)文件所在位置”確認(rèn)路徑后再動(dòng)手。5.3 三個(gè)我踩過(guò)坑、值得你避開(kāi)的操作第一個(gè)坑不分青紅皂白殺進(jìn)程樹(shù)。很多軟件是多進(jìn)程協(xié)作的比如瀏覽器主進(jìn)程、GPU 進(jìn)程、渲染進(jìn)程各自獨(dú)立。你用“結(jié)束進(jìn)程樹(shù)”殺掉主進(jìn)程所有子進(jìn)程全沒(méi)了未保存的網(wǎng)頁(yè)表單、正在下載的文件全部丟失。我的原則是能結(jié)束單個(gè)進(jìn)程就先結(jié)束單個(gè)實(shí)在不行再升級(jí)。第二個(gè)坑只看占用率不看趨勢(shì)。任務(wù)管理器默認(rèn)顯示的是瞬間數(shù)值取樣的間隔其實(shí)不夠頻繁。遇到 CPU 忽高忽低的進(jìn)程我習(xí)慣雙擊進(jìn)程打開(kāi)“資源使用情況”窗口觀察一段時(shí)間內(nèi)的趨勢(shì)曲線。如果只是瞬時(shí)高峰比如啟動(dòng)軟件時(shí)、加載大型文件時(shí)不用管如果長(zhǎng)期維持在 80% 以上再進(jìn)行干預(yù)。第三個(gè)坑殺進(jìn)程治標(biāo)不治本。某個(gè)軟件總是異常高占用今天殺了它明天還會(huì)出現(xiàn)。正確做法是找到根源是版本太舊功能模塊有 Bug還是和別的軟件沖突從源頭修復(fù)比每天開(kāi)機(jī)殺一遍進(jìn)程高效十倍。比如 Adobe 的 Creative Cloud 后臺(tái)進(jìn)程經(jīng)常占 CPU關(guān)閉其后臺(tái)同步功能比每天手動(dòng)結(jié)束任務(wù)省心太多。6. 寫(xiě)在最后一個(gè)查資源問(wèn)題的通用閉幕流程用系統(tǒng)管理器排查問(wèn)題我有一個(gè)固定流程三查一停。一查 CPU按占用排序確認(rèn)是單核還是整體高是否進(jìn)程路徑可疑。二查內(nèi)存按內(nèi)存排序看提交大小是否持續(xù)增長(zhǎng)。三查磁盤(pán)/網(wǎng)絡(luò)確認(rèn)瓶頸不在 CPU 和內(nèi)存而在于資源爭(zhēng)搶。一停先暫停掛起可疑進(jìn)程觀察系統(tǒng)是否恢復(fù)而非直接殺死。“先暫停再殺死”這個(gè)習(xí)慣幫我躲過(guò)很多次誤殺。進(jìn)程管理器的“暫停”功能很多人沒(méi)用過(guò)它能把進(jìn)程凍結(jié)系統(tǒng)資源立刻釋放但進(jìn)程還在那里方便你觀察結(jié)果。如果暫停后系統(tǒng)恢復(fù)流暢說(shuō)明確實(shí)是這個(gè)進(jìn)程的問(wèn)題再選擇永久結(jié)束也不遲如果暫停后系統(tǒng)依然卡那就是別的進(jìn)程還在搗亂。多任務(wù)系統(tǒng)管理器從來(lái)不是一個(gè)復(fù)雜工具它只是把系統(tǒng)里的每個(gè)資源消耗者透明化。真正的高手從來(lái)不是會(huì)按幾個(gè)快捷鍵而是有一套清晰的排查方法論。希望這篇內(nèi)容能幫你把那個(gè)每天可能打開(kāi)好幾次的窗口真正用起來(lái)。