iskMon是一款用于記錄和顯示W(wǎng)indows系統(tǒng)上所有硬盤活動(dòng)的應(yīng)用程序。它可以將磁盤活動(dòng)記錄下來,并以列表視圖的形式展示出來。此外,DiskMon還可以將自身最小化到系統(tǒng)托盤中,以充當(dāng)磁盤指示燈的功能。
安裝和使用DiskMon非常簡(jiǎn)單,只需解壓縮并運(yùn)行"diskmon.exe"即可。您可以使用菜單和工具欄按鈕來禁用事件捕獲、控制列表視圖的滾動(dòng),并將列表視圖內(nèi)容保存為ASCII文件。
如果您希望讓DiskMon在系統(tǒng)托盤中充當(dāng)磁盤指示燈,可以選擇"Options"菜單中的"Minimize to Tray"選項(xiàng),或者使用命令行參數(shù)"/l"來啟動(dòng)DiskMon(例如diskmon.exe /l)。雙擊系統(tǒng)托盤中的DiskMon圖標(biāo)可以重新激活DiskMon窗口。如果您希望在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)DiskMon并創(chuàng)建一個(gè)快捷方式,可以將快捷方式的目標(biāo)設(shè)置為引用DiskMon可執(zhí)行文件的路徑,并在引號(hào)外面添加命令行參數(shù)(例如"C:\Sysinternals Tools\Diskmon.exe" /l)。
DiskMon以扇區(qū)(每個(gè)扇區(qū)512字節(jié))為單位顯示讀取和寫入的偏移量。事件可以按持續(xù)時(shí)間(以微秒為單位)計(jì)時(shí),也可以根據(jù)它們啟動(dòng)的絕對(duì)時(shí)間進(jìn)行標(biāo)記。您可以使用"History Depth"對(duì)話框指定在GUI中保留的最大記錄數(shù)(0表示無限制)。
DiskMon使用了內(nèi)核事件跟蹤,事件跟蹤記錄在Microsoft平臺(tái)SDK中,而DiskMon則基于TraceDmp源代碼開發(fā)而成。
DiskMon的特色功能包括以下幾點(diǎn):
硬盤活動(dòng)記錄:DiskMon可以記錄并顯示W(wǎng)indows系統(tǒng)上的所有硬盤活動(dòng),包括讀取和寫入操作。
系統(tǒng)托盤指示燈:您可以將DiskMon最小化到系統(tǒng)托盤中,它會(huì)顯示一個(gè)磁盤指示燈。當(dāng)有磁盤讀取活動(dòng)時(shí),指示燈變?yōu)榫G色,而有磁盤寫入活動(dòng)時(shí),指示燈變?yōu)榧t色。
禁用事件捕獲:通過禁用事件捕獲,您可以停止記錄硬盤活動(dòng),以便進(jìn)行其他操作或減少資源占用。
滾動(dòng)控制:菜單和工具欄按鈕可用于控制列表視圖的滾動(dòng),方便查看較長的記錄。
記錄保存:您可以將列表視圖的內(nèi)容保存為ASCII文件,以便后續(xù)分析或備份。
可定制的記錄深度:通過“歷史記錄深度”對(duì)話框,您可以指定在GUI中保留的最大記錄數(shù),以控制記錄的深度和存儲(chǔ)空間的使用情況。
DiskMon的應(yīng)用場(chǎng)景包括以下幾個(gè)方面:
系統(tǒng)性能調(diào)優(yōu):DiskMon可以幫助您了解Windows系統(tǒng)上硬盤的使用情況,從而找到可能影響系統(tǒng)性能的瓶頸。例如,您可以檢查某個(gè)應(yīng)用程序或進(jìn)程對(duì)硬盤的讀寫操作是否超過了預(yù)期,如果是,就需要進(jìn)行相應(yīng)的優(yōu)化或限制。
數(shù)據(jù)恢復(fù):在數(shù)據(jù)恢復(fù)和故障排除過程中,DiskMon可以幫助您確定硬盤讀寫錯(cuò)誤的發(fā)生時(shí)間和位置,以便更快地找到數(shù)據(jù)丟失的原因和最優(yōu)解決方案。
安全審計(jì):在安全審計(jì)和監(jiān)控過程中,DiskMon可以記錄所有與磁盤相關(guān)的操作,包括文件的打開、讀取和修改,從而有助于識(shí)別并防止?jié)撛诘陌踩{。
學(xué)術(shù)研究:DiskMon可以用于學(xué)術(shù)研究中,例如硬盤訪問模式的分析和建模,或者用于系統(tǒng)性能測(cè)試和基準(zhǔn)測(cè)試等方面。
許多系統(tǒng)管理員可能不曾聽過”磁盤分區(qū)對(duì)齊“之說,甚至一些有經(jīng)驗(yàn)的存儲(chǔ)管理員對(duì)分區(qū)對(duì)齊也不甚了解。磁盤分區(qū)不對(duì)齊現(xiàn)象是什么,為什么會(huì)造成比較嚴(yán)重的性能下降?相反,配置正確的分區(qū)起始位置(Offset)設(shè)置會(huì)使存儲(chǔ)系統(tǒng)發(fā)揮更大的性能潛力。文章就磁盤分區(qū)對(duì)齊進(jìn)行的介紹,并且給出了在Windows平臺(tái)上如何配置的方法。
Windows的磁盤有一種結(jié)構(gòu)叫做Master Boot Record(MBR), 它的默認(rèn)大小為63個(gè)Block(每個(gè)大小為512字節(jié))。它的存在使得磁盤的初始位置和的磁盤上第一個(gè)分區(qū)的初始位置有63個(gè)Block的錯(cuò)位。如果磁盤的單個(gè)Track大于63個(gè)Block的話。這就會(huì)導(dǎo)致默認(rèn)的初始的位置是從第64個(gè)開始。使文件系統(tǒng)的中的Track和位于磁盤中的兩個(gè)Track之上。這種不對(duì)齊現(xiàn)象會(huì)導(dǎo)致存儲(chǔ)系統(tǒng)的性能下降,原因是單個(gè)I/O請(qǐng)求會(huì)跨越多個(gè)磁盤上的Track,從而導(dǎo)致存儲(chǔ)系統(tǒng)的額外性能開銷。特別是對(duì)于一些隨機(jī)I/O比較較大的應(yīng)用程序,影響將更大。
而對(duì)于Windows 2003以后支持的GPT Disk,也會(huì)存在磁盤分區(qū)不對(duì)齊的現(xiàn)象,但是結(jié)構(gòu)有所不同。如圖1所示(圖中單位為Block,512字節(jié)),所有的分區(qū)由1MB大小(2048 Block)構(gòu)成,第一個(gè)分區(qū)從LBA 34開始,即17KB大小位置。這也就意味著所有的分區(qū)會(huì)有17KB的不對(duì)齊的情況發(fā)生。同樣會(huì)導(dǎo)致I/O讀寫性能影響。
Windows磁盤分區(qū)對(duì)齊配置
配置磁盤分區(qū)對(duì)齊后,如下圖所示四個(gè)分區(qū)的例子中,對(duì)比圖1中不對(duì)稱的情況,圖2中這些Windows的分區(qū)結(jié)束地址與圖1中的地址位置一致了。
磁盤分區(qū)對(duì)齊操作,只針對(duì)Windows的Basic Disk。對(duì)于Windows 2008和Windows 2008 R2,無需對(duì)磁盤進(jìn)行對(duì)齊操作,因?yàn)檫@個(gè)過程已經(jīng)在操作系統(tǒng)劃分分區(qū)的時(shí)候自動(dòng)進(jìn)行了,軟件的升級(jí)還是給管理員們帶來了不少便利的。對(duì)于Windows 2003和 2003 R2,以及Windows 2000,建議設(shè)置開始偏移量(starting offset)為64KB(128 block)。另外,對(duì)于Dynamic Disk類型,不能進(jìn)行磁盤分區(qū)對(duì)齊操作。不過,如果原來的Basic Disk上已經(jīng)進(jìn)行了對(duì)齊操作的分區(qū),會(huì)在轉(zhuǎn)換后保留原來的對(duì)齊。
查看Windows磁盤分區(qū)對(duì)齊方法:
1. 查看Basic Disk的分區(qū)對(duì)齊信息:
方法1:
在Windows的命令行下輸入Diskpart命令。
C:\>diskpart
選擇對(duì)應(yīng)的Disk
DISKPART> list disk (顯示本機(jī)所有磁盤)
DISKPART> Select Disk X (x代表上面顯示的從0開始的磁盤編號(hào))
DISKPART> list partition (顯示從1開始的所有的分區(qū)信息,在最右邊有一個(gè)Offset/偏移量的值,如果它是8的倍數(shù),說明你的硬盤分區(qū)是對(duì)齊的,如果不是,說明你的磁盤分區(qū)沒有對(duì)齊)
方法2:
使用WMIC命令,在Windows命令行下輸入下列命令,命令輸出的列StartingOffset為該分區(qū)的偏移量,該數(shù)值除以512則為扇區(qū)數(shù)目:
wmic partition get BlockSize, StartingOffset, Name, Index
2.查看Dynamic Disk的對(duì)齊信息:
使用dmdiag工具,下載地址;
執(zhí)行從命令行執(zhí)行dmdiag.exe –v
在命令行輸出中,LDM Volume區(qū)域的RelSec列,該列顯示的就是Dynamic Disk的起始扇區(qū)。
磁盤分區(qū)對(duì)齊配置方法:
對(duì)于Windows 2003 sp1以下版本,使用dispar命令來設(shè)置偏移量和分區(qū)對(duì)齊。步驟如下:
1. 安裝在Windows Resource Kit后,在Performance Tools目錄下,通過命令行運(yùn)行diskpar命令:
2. 使用diskpar –s N命令,下面的例子中定義了配置一個(gè)20GB的磁盤的錯(cuò)位64KB的配置
對(duì)于Windows 2003 sp1以上版本,dispar命令被dispart命令所替換。
1. 在CMD命令行運(yùn)行Diskpart命令
C:\>diskpart
2. 選擇對(duì)應(yīng)的Disk
DISKPART> Select Disk X
3. 創(chuàng)建分區(qū)設(shè)置偏移量為64KB(128 Block),下面的例子為創(chuàng)建一個(gè)1GB的分區(qū)。
DISKPART> create partition primary size=1024
最后,進(jìn)行分區(qū)對(duì)齊操作的時(shí)候需要注意:對(duì)齊操作需要在磁盤上寫入數(shù)據(jù)之前完成,最好在磁盤剛剛映射到主機(jī)時(shí)進(jìn)行。磁盤對(duì)齊操作必然損壞磁盤上的數(shù)據(jù),所以如果有數(shù)據(jù)需先備份,操作的時(shí)候注意數(shù)據(jù)安全。