計算機安全和發(fā)揮高性能并不總能完美結(jié)合,而現(xiàn)在一些主流的防病毒軟件已經(jīng)失去了平衡,走得太遠了。這里我來介紹一些方便的技巧和工具。
我發(fā)現(xiàn)許多公司的電腦在開機時都遇到了可怕的延時,因為他們的計算機安裝了安全防御系統(tǒng)。這并不是在談?wù)撘粋€小麻煩,因為我有超過8分鐘和超過10分鐘的啟動的紀(jì)錄,而在沒有防火墻或防病毒軟件的阻礙時這個數(shù)字變成了1.5分鐘。這個問題不僅影響Windows,也影響Linux/BSD,不論用戶使用哪種系統(tǒng)——主要是在登錄時,但通常在用戶再次啟動瀏覽器窗口或電子郵件程序時也受到影響。
我想大家都非常期待著電腦的性能和安全防御能力能夠平衡運行。但我看到的情況是,目前流行的安全產(chǎn)品的延遲時間絕不能讓我接受。而更糟的是,許多管理員和用戶對這種情況已經(jīng)習(xí)以為常了。
他們不應(yīng)該就這樣放棄——你可以為更高的安全性犧牲掉一部分性能,但安全產(chǎn)品不應(yīng)該以犧牲性能作為代價。
那么,你可以做些什么呢?
列出性能清單
首先,在開始排查之前建立一個測量的基準(zhǔn)。用秒表或手表計時,以秒為單位,計算電腦從冷啟動到桌面完全可用所花費的時間。我說的“可用”是指用戶可以開始正常操作,沒有重大的延遲,而且CPU的使用率應(yīng)保持在5%以內(nèi)。此外,我通常將啟動過程分為兩個階段:一是從冷啟動到提示用戶登錄,二是從用戶成功登錄到桌面可用。如果可能,測量時把電腦配置為自動登錄以防止發(fā)生登錄錯誤而記錯了時間。冷啟動至少3次直到你得到差不多相同的啟動時間,差距為5或10秒都可以。
如果啟動時間長的可怕,試著暫時禁用你的主機防火墻或防毒產(chǎn)品,然后重新啟動時間測試。我很多次發(fā)現(xiàn)各種流行的防火墻或防毒產(chǎn)品造成了重要的延遲。我見識過主機防火墻將網(wǎng)絡(luò)數(shù)據(jù)包的速度降低為六分之一,甚至十分之一。有時候,雖然只是第一個數(shù)據(jù)包被延遲,但也足以引起本地資源的反應(yīng)變慢。
有些安全軟件可以進行調(diào)整來提高性能,在這種情況下你可能需要供應(yīng)商的幫助。
如果禁用主機防火墻或防病毒軟件也不能顯著提高性能,重新啟用它們,然后試一下其它操作。我經(jīng)常會逐一禁用各種非關(guān)鍵的服務(wù)或者daemon程序,并不斷重啟,直到找到罪魁禍?zhǔn)住?BR>如果不是服務(wù)或自啟動的daemon程序(即守護程序,相關(guān)詳細講解請參見51CTO.com文章:“守護進程daemon介紹”)出了問題,我接下來會去尋找usermode程序。在usermode中,你可以在登錄后使用許多不同的程序來確定哪些是自動加載的。在Linux/BSD系統(tǒng),自啟動程序可以從許多不同的地方啟動。如果你不確定該修改哪些文件夾和文本文件,最好在互聯(lián)網(wǎng)上搜索一下。
在Windows中,我使用調(diào)查分析軟件Autoruns來查找自動加載的程序,它可以顯示你的機器中的幾十到幾百個自動啟動的程序。它很容易操作,也可以用它來禁用各種你認(rèn)為有問題的程序。此前51CTO.com曾經(jīng)發(fā)表過Autoruns工具的詳細介紹,甚至有技術(shù)高手利用它揪出了流氓軟件的驅(qū)動保護。
試一試,再試一次
在Autoruns列出了嫌疑目標(biāo)之后,你仍然需要艱苦的工作來排除故障:每次只禁用一個可疑程序,然后重啟,重新測量時間,如果不是它的問題還要重新啟用該程序。對Windows用戶來說,使用Autoruns是一個確定惡意軟件、間諜軟件和廣告軟件的很好方式,ProcessExplorer和ProcessMonitor也是很好的分析工具,51CTO.com安全頻道此前也發(fā)表過多篇文章介紹過兩個軟件的下載和使用,有興趣的讀者可以自行查閱。
其他常見的讓人頭痛的問題包括低物理內(nèi)存,不存在的共享硬盤的永久硬盤映像,不正常暫停的登錄腳本,以及損壞的配置文件。就在這個星期,我碰到了一個流行的腳本添加程序,它造成了一分半鐘的啟動延遲——而在正常情況下這只需幾毫秒。
我經(jīng)常使用網(wǎng)絡(luò)嗅探器,比如MicrosoftNetworkMonitor或者Wireshark,在混雜模式下捕獲所有的出入流量,尋找各種錯誤,比如過小的MTU(MaximumTransmissionUnits,最大數(shù)據(jù)包),過高的重復(fù)傳輸率,以及延時超常的數(shù)據(jù)包。幾個星期前使用數(shù)據(jù)包嗅探,我發(fā)現(xiàn)一個客戶的電腦隨機但經(jīng)常性的連接到地球另一端的域控制器,而不是身邊幾米的那幾臺。
在Windows中,WindowsPerformanceToolkit與xperf.exe是個很好的技術(shù)故障排除工具。它可以在開關(guān)機、休眠或暫停時測量每個正在運行的程序,它會以圖形方式顯示詳細細節(jié),告訴你哪個程序在什么時間占用了計算機的何種資源。它是一個高級故障排除工具,是電腦信息的金礦。
良好的安全性總會以性能的降低為代價。問題是多大的打擊是可以接受的呢?雖然各種環(huán)境不同,但超過3分鐘的啟動肯定就是超過正常范圍的了。如果你已經(jīng)習(xí)慣于更長的啟動時間,那么我鼓勵你花上一兩天來找到問題出在哪里,因為一個良好的安全管理員應(yīng)該能夠在安全和性能之間找到適當(dāng)?shù)钠胶?,根?jù)業(yè)務(wù)和環(huán)境的需要調(diào)整戰(zhàn)略。