1. 程式人生 > >摘:Windows系統內存計數器理解解析_備忘錄_51Testing軟件測試網...

摘:Windows系統內存計數器理解解析_備忘錄_51Testing軟件測試網...

執行 imu pac total 列表 大數 疑問 清空 man

【原創】Windows系統內存計數器理解解析

2008-05-13 11:42:23 / 個人分類:性能測試

說明:本文的計數器以Windows2003為準。

序言
;F9n)\%V1a6Z C)?ZV0內存的使用情況是系統性能中重要的因素之一,頻繁的頁交換及內存泄露都會影響到系統的性能。本文主要是描述內存的一些概念、計數器含義,以及可能存在的性能瓶頸。
4Cd%l3r(T&z y051Testing軟件測試網xi[8VP?r?Q?a
一些概念
f2c(qDw-y&{l0
1Vu7t|%D} r5eG x0
① “頁交換”是使用稱為“頁面”的單位,將固定大小的代碼和數據塊從 RAM 移動到磁盤的過程,其目的是為了釋放內存空間。51Testing軟件測試網3tp8d!h!Te1Z*Y
② 每個Windows

進程都擁有4G的虛擬地址空間,在多任務環境下,所有進程使用的內存總和可以超過物理內存。51Testing軟件測試網 i6sOT9l3g ]q)l`
③ 進程的一部分可能會從物理內存中刪除而被暫存在硬盤的文件裏(pagefile)。當進程試圖訪問這些被交換到pagefile裏的內存的時候,系統會產生一個缺頁中斷(page fault),這時候Windows內存管理器會負責把對應的內存頁重新從硬盤調入物理內存。51Testing軟件測試網F+k0TQX4|GD@-h
④ 用於描述物理內存中虛擬頁面子集的術語稱為一個工作集(Working Set),也叫駐留集。一共有三種工作集:進程工作集、系統工作集、會話工作集。(具體概念看後面的計數器)
A3C` EB:P,l K0⑤ 非換頁池:它是由一些“可保證總是駐留在物理內存中”的虛擬地址範圍構成的,由於這些地址範圍總是駐留在內存中,因此任何時候都可以訪問它們,而不會招致頁面錯誤。
4aDJ1W U{ \0⑥ 換頁池:系統空間中的一段虛擬內存區域,它可以被換入和換出系統。這兩種內存池都位於系統地址空間部分,並且被映射到每個進程的虛擬地址空間中。51Testing軟件測試網&vx9j(yj i;lm
⑦ 共享內存:對於多個進程可見的內存,或者出現在多個進程虛擬地址空間中的內存。例如:如果兩個進程使用了同樣的DLL,那麽只需將引用該DLL的代碼頁面加載到物理內存一次,然後所有映射了該DLL的進程之間共享這些頁面。51Testing軟件測試網5TNXb8@ xeT-M
⑧ MDL(Memory Descrīptor List)是一個結構體,用於描述一片內存區域中的所有物理內存頁。51Testing軟件測試網f`+\o?oy%s
51Testing軟件測試網BN"|!vty
可能存在的性能問題
n*R&cX#Q%V1h4ce051Testing軟件測試網#I6UA%l8xnE]S9oG
1、Memory\\Page Reads/sec過高,持續大於5。
;| v3Uy @e)zh0
過多的頁交換要使用大量的硬盤空間,很容易將導致將頁交換內存不足與導致頁交換的磁盤瓶徑混淆。這就需要我們在研究內存不足不太明顯的頁交換的原因時,必須跟蹤如下的磁盤使用情況計數器和內存計數器:Physical Disk\\ % Disk Time、Physical Disk\\ Avg.Disk Queue Length、Memory\\Page Reads/sec51Testing軟件測試網8ohw NB7G\T
①如果Memory\\Page Reads/sec比較低,但Physical Disk\\% Disk Time and Physical Disk\\Avg. Disk Queue Length計數器很高,表明磁盤有瓶頸。
F2_[a,[0 ②如果隨著Physical Disk\\Avg. Disk Queue Length的增加,而Memory\Page Reads/sec並沒有減少,表明有內存的瓶頸。51Testing軟件測試網?8@gI+sN1Mxo
51Testing軟件測試網Y,Omb u%i[
2、內存泄露
Q*ktz"C^(i6i"cD?6X!P`0
如果懷疑內存泄露,監視 Memory\\ Available Bytes 和 Memory\\ Committed Bytes,以觀察內存行為,並監視可能存在泄露內存的進程的 Process\\Private Bytes、Process\\Working Set和Process\\Handle Count(Handle泄漏)。
vZU.Qp6P@zp4m0 如果懷疑是內核模式進程導致了泄露,則還應該監視 Memory\\Pool Paged Bytes、Process\\ Pool Paged Bytes。(Memory\\Pool Paged Bytes與Process\\ Pool Nonpaged Bytes,有什麽不同,期待告知)。51Testing軟件測試網4x7WWb;]8Rnw"|:I
可以通過PoolMon工具詳細查看非換頁池和換頁池的詳細使用情況。
MN#y!v d0U9u0 備註:這裏只是隨便提一下。

各計數器理解及描述
|CH6l*aY051Testing軟件測試網(O!@`8c‘JJn5fz
1、Process\\Working Set
{7Q2BAgEMt0
含義:
w?MlOMB0q0進程工作集,是虛擬地址空間在物理內存中的那部分。包含了一個進程內的各個線程引用過的頁面,即:Task Manager中的Mem Usage。
[ {+o5xalb0分析:
$H/PK{sf9u@+E0
由於每個進程工作集中包含了共享頁面,所以Process\\Working Set(_Total)值會大於實際的總進程內存使用量。
G7t9^2V{T0
si:wy l/LDZ o02、Process\\Private Bytes51Testing軟件測試網6V&] zNdKH
含義:51Testing軟件測試網*r‘E5[*o |+K
分配的私有虛擬內存總數,即私有的、已提交的虛擬內存使用量。即:Task Manager中的VM Size。
wZ5PW,n6wY;}0分析:51Testing軟件測試網;OijY7@qRUz1e1c1j
內存泄露時表現的現象是私有虛擬內存的遞增,而不是工作集大小的遞增。在某個點上,內存管理器會阻止一個進程繼續增加物理內存大小,但它可以繼續增大它的虛擬內存大小。51Testing軟件測試網(a$O?A7Y)~`G

8S}X+{{jR$ET03、Memory\\Available MBytes (Available Bytes、Available KBytes)
5dRv#@!I0
含義:51Testing軟件測試網A2s?oZ%S
Available MBytes 是指以 MB 表示的可用物理內存量,此內存能立刻分配給一個進程或系統使用。它是空閑列表、零列表和備用列表的大小總和。51Testing軟件測試網V5qw/s?m/JOo|U
分析: 51Testing軟件測試網?C3p"b3{Rk9h
至少要有10% 的物理內存值,最低限度是4 MB。51Testing軟件測試網rlwZ|:x y
頁面狀態:51Testing軟件測試網 PK,c$CDS!RUS
備用:頁面原先屬於某個工作集,但現在被去除了。該頁面自從最後一次被寫到磁盤後一直未被修改過,PTE(Page Table Entry)仍然指向該物理頁面,不過已標記為無效的和正在轉移中。
p&bwv [0空閑:頁面是空閑的,但它包含了未特別指明的臟數據。(需要用零初始化,否則不能交給用戶進程)
*_mOQ4@$`2` Q0零化:頁面是空閑的,並且已經被零頁面線程初始化為零了。
6Z\4@4j nGf1I:b{h0
%W%\0\;W:j$~Z$|0n04、Memory\\Page Faults/sec
8y9Q?Qz‘c+gk*H0
含義:51Testing軟件測試網I#z?M+v.N Ee;d
Page Faults/sec 是每秒鐘出錯頁面的平均數量。由於每個錯誤操作中只有一個頁面出錯,計算單位為每秒出錯頁面數量,因此這也等於頁面錯誤操作的數量。這個計數器包括硬錯誤(那些需要磁盤訪問的)和軟錯誤(在物理內存的其他地方找到的錯誤頁)。許多處理器可以在有大量軟錯誤的情況下繼續操作。但是,硬錯誤可以導致明顯的拖延,因為需要訪問磁盤。
1]o.g8MBf t%sY0
A8M[L4fl/]] F,N05、Memory\\Page Reads/sec
‘Xk?g1]0lf7{&B0
含義:
Z9S7GD8RI3x5n{|0
Page Reads/sec 是讀取磁盤以解析硬頁面錯誤的次數。它顯示讀取操作的數量,它並不考慮每個操作的頁面數量。當一個進程引用一個虛擬內存的頁面,而此虛擬內存位於工作集以外或物理內存的其他位置,並且此頁面必須從磁盤檢索時,就會發生硬頁面錯誤。此計數器是引起系統範圍內延遲的主要指示器。它包含讀取操作以滿足文件系統緩存(通常由應用程序請求)和非緩存映射內存文件的錯誤。比較內存的值\\Pages Reads/sec 與內存的值\\Pages Input/sec 來決定每個操作取讀的平均頁面數量。51Testing軟件測試網0}w$E4H{ ?1I
通俗含義:
U6a/^u$`\ _y0
頁的硬故障,Page/sec的子集,是為了解決硬錯誤,從硬盤讀取的次數。51Testing軟件測試網7v#U.E-F"En#C
分析:
J(~/L+xfF0
閾值為>5,越低越好。大數值表示磁盤讀而不是緩存讀。持續大於5的值,表明內存的讀請求發生了較多的缺頁中斷(page fault)。51Testing軟件測試網?N8hJ hA-m!H#l^
說明進程的Working Set已經不夠,使用硬盤來虛擬內存。此處為讀得次數,不關心讀取得頁數,比較大的值表明內存出現了瓶頸。
rE p&i#D_0
v+{"s4d+}pc‘{+j06、Memory\\Page Writes/sec
^3o0dIR;F0
含義:
cN$v8l9B,Q[G0
Page Writes/sec 是指為了釋放物理內存空間而將頁面寫入磁盤的速度。只有頁面還在物理內存中時所做的更改才會寫入磁盤,因此這些頁面可能只保留數據而不保留代碼。這個計數器顯示寫入操作,不計數每個操作中寫入的頁數。
c K!jgp0eA0
/U*Sf"oy@d"p?8G07、Memory\\Pages Input/sec51Testing軟件測試網N aAH9V|T3?0[
含義:
A-]p/` ^?E0
Pages Input/sec 是以解析硬頁面錯誤從磁盤讀取的頁數。當一個進程引用一個虛擬內存的頁面,而此虛擬內存位於工作集以外或物理內存的其他位置,並且此頁面必須從磁盤檢索時,就會發生硬頁面錯誤。當夜面發生錯誤時,系統嘗試將多個連續頁面讀入內存以充分利用取讀操作的優點。請比較 Memory\\Pages Input/sec 的值和 Memory\\Page Reads/sec 的值以便決定每個取讀操作讀入內存的平均頁面數量。51Testing軟件測試網i)i#CUP\Zy

&d3Kf o1}?4@{08、Memory\\Pages Output/sec
‘h‘I*v^2O;y#y.s0
含義:51Testing軟件測試網t.t-Mq‘G6w-at
Pages Output/sec 是指為了釋放物理內存空間而將頁面寫入磁盤的頁數。只有在物理內存中更改時頁面才會寫回到磁盤上,因此頁面可能只保留數據而不是代碼。高速的頁面輸出可能表示內存不足。當物理內存不足時,Windows 會將頁面寫回到磁盤以便釋放空間。
n6LcT?{0
u dW z ] X09、Memory\\Page/sec
51Testing軟件測試網g#z0{mEE8u
含義:
7I,lw7qR e)kL|-fy0
Pages/sec 是指為解決硬頁錯誤從磁盤讀取或寫入磁盤的頁數。這個計數器是可以顯示導致系統範圍延緩類型錯誤的主要指示器。它是 Memory\\Pages Input/sec 和 Memory\\Pages Output/sec 的總和。是用頁數計算的,以便在不用做轉換的情況下就可以同其他頁計數如: Memory\\Page Faults/sec 做比較,這個值包括為滿足錯誤而在文件系統緩存(通常由應用程序請求)的非緩存映射內存文件中檢索的頁。
4EZp$d/L fcxt0分析:51Testing軟件測試網!mvN_ hN‘C
一般如果pages/sec持續高於幾百,那麽您應該進一步研究頁交換活動。有可能需要增加內存,以減少換頁的需求(你可以把這個數字乘以4k就得到由此引起的硬盤數據流量) 。Pages/sec 的值很大不一定表明內存有問題,而可能是運行使用內存映射文件的程序所致。 51Testing軟件測試網7`Kf/F.IcmNS9lb
51Testing軟件測試網;z7jGe2t!i Lo C
10、Memory\\ % Committed Bytes In Use
‘wJnE~Q0
含義:51Testing軟件測試網){5Wk:K3I }w)F
%Committed Bytes In Use 是 Memory\\Committed Bytes 與 Memory\\Commit Limit 之間的比值。Committed memory是已在頁面文件中保留空間的在用物理內存。Commit Limit 是由頁面文件的大小而決定的。如果擴大了頁面文件,該比例就會減小。51Testing軟件測試網jx0@&B1Y

cRI‘a.I-J-Xat3o0※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
eX(EmW051Testing軟件測試網NNxXnRw
11、Memory\\ Committed Bytes
!o ov${l`qJp8^0
含義:51Testing軟件測試網,I+_.u,a/P$}0G
Committed Bytes 是指已被提交的(不是保留的)虛擬內存字節數。此數並不一定代表頁面文件的使用量,因為它包含了物理內存中從未被換出過的私有提交頁面。當然,如果一個進程完全是非駐留的,則它代表所使用的頁面文件數量。
-h4|?KC0對應Task Manager的PF使用 (Current Commit Charge) 。頁面文件的使用量參見計數器:Paging File\\%Usage。51Testing軟件測試網%T4M)T%o%n P
原文:
!X1AK@!p.W G!V!M:R0
Number of bytes of virtual (not reserved) memory that has been committed. This number doesn’t necessarily represent page file usage because it includes private committed pages in physical memory that have never been paged out. Rather, it represents the amount of page file space that would be used if the process was completely made nonresident.
m,cGd]Isn0分析:
k-NA m6v:[ c@Q&d0
NT的內存分配采用了兩步走的方法,首先,在虛地址空間上保留一段空間,這時操作系統並沒有分配物理內存,只是保留了一段地址。然後,再提交這段空間,這時操作系統才會分配物理內存。51Testing軟件測試網"@+^?_:B1r
Windows的地址空間有三種狀態。一種是COMMITED,表明該地址空間已和一塊內存相聯系;一種是RESERVED,表明該地址空間雖未與一塊內存相聯系但今後可能會用到,需要保留;一種是FREE,表明該地址空間與內存沒有聯系。51Testing軟件測試網)`f3JtKz/Td
51Testing軟件測試網8KP?h(F#mFv#|
12、Memory\\ Commit Limit
l_ Wc3] z9CS0
含義:
xi\A*CU@v0
Commit Limit 是指無需擴展頁面文件就可以提交的虛擬內存字節數。51Testing軟件測試網@E9p-b9a:Z)XY
原文:
#p0~ A0hP‘xe5On0
Number of bytes of virtual memory that can be committed without having to extend the paging files; if the paging files can be extended, this limit is not hard. 51Testing軟件測試網j-q_7S?t
To use a reserved region of address space, you must allocate physical storage and then map this storage to the reserved region. This process is called committing physical storage. Physical storage is always committed in pages.

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
$Dk7?.}M A9ze#`051Testing軟件測試網Z7o1x;GL5J5G[K
13、Memory\\Pool Nonpaged Allocs
6WU }]^0Gp0
含義:51Testing軟件測試網PRT9Do
Pool Nonpaged Allocs 指在換換頁池中分派空間的調用數。它是用衡量分配空間的調用數來計數的,而不管在每個調用中分派的空間數是多少。
~m FT}Z wX0原文:51Testing軟件測試網M&Ne+m m!z~
Shows the number of calls to allocate space in the nonpaged pool. This counter is measured in numbers of calls to allocate space, regardless of the amount of space allocated in each call.
*^T p o"q0分析:
2{"h/p;qIms0
考察其自系統啟動以來的增長了10%以上,如果是,表明有潛在的嚴重瓶頸。
.}@Z0@‘]8_(v0需要觀察Server\\Pool Nonpaged Failures,非頁面池分配失敗的次數。非零表示計算機的物理內存太小。51Testing軟件測試網U yun,^:WX
51Testing軟件測試網,N:^`-i:T%MbXs
14、Memory\\Pool Nonpaged Bytes
`!A a:};i*F0含義:
51Testing軟件測試網LDKF:t‘R
Pool Nonpaged Bytes 指在非換頁池中的字節數,非換頁池是指系統內存(操作系統使用的物理內存)中可供對象(指那些在不處於使用時不可以寫入磁盤上而且只要分派過就必須保留在物理內存中的對象)使用的一個區域。51Testing軟件測試網9?0GU[3Bm
疑問:Memory\\Pool Nonpaged Bytes 的計數方式與 Process\\Pool Nonpaged Bytes 的計數方式有什麽不同。
ma2J?}kXz4{l0通俗含義:
7Gm/ud^(X G.V0非換頁池中的當前大小,即Task Manager中的Kernel Memory→NonPaged。51Testing軟件測試網8q(k&[6e4S5i(I@i6?
51Testing軟件測試網(MC%EH LL)v4Y(C+J?\
15、Memory\\Pool Paged Allocs
Vk%iimmLN)mOp&g0含義:
)C%N)Won bE]0
Pool Paged Allocs 指在換頁池中分派空間的調用次數。它是用計算分配空間的調用次數來計算的,而不管在每個調用中分派的空間數是什麽。51Testing軟件測試網Q w1O;d`M#i
原文:
PD%TQ5?/|}:h0
Shows the number of calls to allocate space in the paged pool. This counter is measured in numbers of calls to allocate space, regardless of the amount of space allocated in each call. 51Testing軟件測試網6S2N6q2M9Gt&B0dR C/o

-u_ d @5l‘y/l016、Memory\\Pool Paged Bytes
.?e#~1SU.V0含義:51Testing軟件測試網$G9r)o8?$B&b
Pool Paged Bytes 指在換頁池中的字節數,換頁池是系統內存(操作系統使用的物理內存)中可供對象(在不處於使用時可以寫入磁盤的)使用的一個區域。51Testing軟件測試網/yM;[;Eo0r;`5C;\
疑問:Memory\\Pool Paged Bytes 的計數方式與 Process\\Pool Paged Bytes 的方式有什麽不同。
5A%[5d4IkeSH(oV@?M0通俗含義:
Oh`D3\?3o0換頁池的當前虛擬大小,即Task Manager中的Kernel Memory→Paged Virtual。51Testing軟件測試網us.D{$O,Z9w&W
換頁池的當前物理(駐留)大小參見計數器Memory\\Poll Paged Resident Bytes。51Testing軟件測試網|o m+u FD2{?mL
分析:
[6[%O@0xo!`nf0也需要觀察Server\\Pool Paged Failures,頁面池分配失敗的次數。非零表示計算機的物理內存或頁面文件太小。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
GHS?J4_051Testing軟件測試網3JL,?V6]6G\Wt ~T
17、Memory\\ Cache Bytes
D!v O(t+j‘@mWZ0含義:
51Testing軟件測試網_ ok8_i,[v
系統工作集的總大小,其包括以下代碼或數據駐留在內存中的那一部分:系統緩存、換頁內存池、可換頁的系統代碼(Ntoskrnl.exe和驅動程序),以及系統映射的視圖。
/s?j/Z?A‘_T0分析:51Testing軟件測試網pPmE3xc(J#U
從字面意思上看,僅僅是指系統緩存,其實不然。
#z M o%K+_,|+wn0Cache Bytes Memory\\System Cache Resident Bytes、Memory\\System Driver Resident Bytes、Memory\\System Code Resident Bytes 和 Memory\\Pool Paged Resident Bytes的總和。
8x7m,f$QA‘s0
)hs&[qT#P5g018、Memory\\Cache Bytes Peak
6k"dQ%_K,L%b4n+i Gf0含義:
#~ dWfy?q d0
Cache Bytes Peak 是系統啟動後文件系統緩存使用的最大字節數量。這可能比當前的緩存量要大。這個計數器只顯示上一次觀察到的值;它不是一個平均值。 51Testing軟件測試網v&{^H"{Zm4g
原文:
/FW)c‘dI/f0Shows the maximum number of bytes used by the file system cache since the system was last started. This might be larger than the current size of the cache.
g].i~$lst0
0L ezC_^J#X.~b019、Memory\\Cache Faults/sec
i$cz R t9o&h/i8@D0含義:51Testing軟件測試網V/O3^sXZY
Cache Faults/sec 指在文件系統緩存中找不到要尋找的頁而需要從內存(軟錯誤)的其他地方或從磁盤(硬錯誤)的其他上檢索時出現的錯誤的速度。文件系統緩存活動是大部分應用程序 IP 操作的可靠指示51Testing軟件測試網_.c&c\*h?TB1w[
器。這個計數器顯示錯誤的次數而不管每次操作中的出錯的頁數。51Testing軟件測試網&h&`#_"Ac*L(a
原文:
1dp8Z;`*}~5D_0Shows the rate, in incidents per second, at which faults occured when a page that was sought in the file system cache was not found and was be retrieved either from elsewhere in memory (a soft fault) or from disk (a hard fault). This counter shows the total number of faults, without regard for the number of pages faulted in each operation.
OU0zQ8bL3E0分析:51Testing軟件測試網5UbiR#Q
從文件系統緩存中查找數據,未命中的次數。這個值應該盡可能的低,較大的值表明內存出現短缺,緩存命中很低。
r zCA1B?C,P$~i0同時需要觀察Cache\MDL Read Hits%,MDL Read Hits 是指 Memory Descrīptor List 向文件系統緩存發出的請求命中緩存的百分比,例如:不需要磁盤訪問即可為在緩存中的頁面提供內存訪問。
kr{ n5v}o;?0值越大(接近100%),表明文件系統緩存效果越好。51Testing軟件測試網Nj`^,p-APc*B

9? @Tq.xF~020、Memory\\Demand Zero Faults/sec
d9KE2DtVP0含義:
GX5t.j6M _0
Demand Zero Faults/sec 通過零化頁面來彌補分頁錯誤的平均速度。這個計數器顯示最近兩個保留取樣值的差,再除以取樣間隔。零化頁面是指先清空以前的資料,再將頁面用0來填滿,這是Windows NT的安全性功能,這樣可以防止以前的資料外泄。這個計數器顯示的是錯誤數量,而不是重新獲取的頁面數量。
j]:b.^WV ^0原文:
mp6n;s&A,]0Shows the average rate, in incidents per second, at which page faults required a zeroed page to satisfy the fault. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval. Zeroed pages (pages emptied of previously stored data and filled with zeroes) prevent processes from seeing data stored by earlier processes that used the same memory space. This counter displays the number of faults, without regard to the number of pages retrieved to satisfy the fault. 51Testing軟件測試網NB3iP$jiUc4v1V
51Testing軟件測試網"UY:q)RNy"V @x
21、Memory\\Free System Page Table Entries 51Testing軟件測試網p,?fY;I
含義:51Testing軟件測試網(Ot m‘I.Ba*Z zu
Free System Page Table Entries 指系統沒有使用的頁表項目。這個計數值僅顯示上一次的值,而不是一個平均值。
5CUYR"Y:A0原文:51Testing軟件測試網B/P a;Fv;T
Shows the number of page table entries not in use by the system.
(G*};P oz$N‘[051Testing軟件測試網,IdH"E/[^ K-P+UV(|
22、Memory\\Pool Paged Resident Bytes
!OGVw,Te][‘dV;w?a0含義:51Testing軟件測試網Z pA)R‘~]L8A
換頁池所使用的物理內存,即Task Manager中的Kernel Memory→Paged Physical。51Testing軟件測試網7} KDTe1Q"L}5nK

Y7y7^sZ DI023、Memory\\System Cache Resident Bytes 51Testing軟件測試網;uF UY7h9x+i!{ n?R
含義:51Testing軟件測試網g‘l&I:~E3f8DQJw
System Cache Resident Bytes 是文件系統緩存可換頁的操作系統代碼的字節大小。此值只包括當前的物理頁面,而不包括當前未使用的虛擬內存頁面。它不等於“任務管理器”上顯示的系統緩存值。因此,此值會比文件系統緩存使用的實際虛擬內存要小。此值是 Memory\\System Code Resident Bytes 的組件,它代表當前在物理內存裏的所有可換頁的操作系統代碼。 51Testing軟件測試網 yYZ/`&n+t
原文:
`D4k0e$\n*pP0Shows the size, in bytes, of pageable operating system code in the file system cache. This value includes only current physical pages and does not include any virtual memory pages that are not currently resident. It does not equal the System Cache value shown in Task Manager. As a result, this value may be smaller than the actual amount of virtual memory in use by the file system cache. This value is a component of System Code Resident Bytes that represents all pageable operating system code that is currently in physical memory. 51Testing軟件測試網7_ u*p8P3cI5?
通俗含義:
@‘X\ui l0@4TA0系統緩存所使用的物理內存。51Testing軟件測試網$[,W;i}9\/NiE|

k c?{&z5t*gpF+u qP024、Memory\\System Code Resident Bytes
)Fe"C k[N!ehY0含義:51Testing軟件測試網,bRU }@.q!CU
System Code Resident Bytes 是操作系統代碼當前在物理內存的字節大小,此物理內存在未使用時可寫入磁盤。此值是 Memory\\System Code Total Bytes 的組件,它還包括磁盤上的操作系統代碼。Memory\\System Code Resident Bytes (和 Memory\\System Code Total Bytes) 不包括必須留在物理內存的代碼,並且不能寫入磁盤。51Testing軟件測試網L;G*M!DKA4w
原文:
fbm$M.tL L0Shows the size, in bytes, of operating system code currently in physical memory that can be written to disk when not in use. This value is a component of System Code Total Bytes, which also includes operating system code on disk. System Code Resident Bytes (and System Code Total Bytes) does not include code that must remain in physical memory. 51Testing軟件測試網c)u+CQ3m.H jD
通俗含義:
i+v L^%t-q7y)h0Ntoskrnl.exe中可換頁代碼所使用的物理內存。
(qc#{Uq5@0
~lf*W.n%h.m?}e {025、Memory\\System Code Total Bytes
y?A HCypb,I0含義:
/G p5^/sQuy4Ki&E6e9S0
System Code Total Bytes 指當前在虛擬內存中的可換頁的操作系統代碼的字節數。這是用來衡量在不使用時可以寫入到磁盤上的操作系統使用的物理內存的數量。這個值是通過將在 Ntoskrnl.exe, Hal.dll 、啟動驅動器和用 Ntldr/osloader 加載的文件系統中的字節的數相加得出的。這個計數器不包括必須保留在物理內存中並不能寫入到磁盤上的代碼。
#qcDW%_ f(X*k0原文:51Testing軟件測試網 p.OPF4@9eeS~
Shows the size, in bytes, of pageable operating system code currently in virtual memory. It is a measure of the amount of physical memory being used by the operating system that can be written to disk when not in use. This value is calculated by adding the bytes in Ntoskrnl.exe, Hal.dll, the boot drivers, and file systems loaded by Ntldr/osloader. This counter does not include code that must remain in physical memory.
!o(K zC?m q051Testing軟件測試網U+xP:f ]Al7qp`"u~
26、Memory\\System Driver Resident Bytes 51Testing軟件測試網*h;qiDmIG
含義:
0T/AvH;h$t0
System Driver Resident Bytes 指設備驅動程序當前使用的可換頁的物理內存的字節數。它是驅動程序的工作集(物理內存區域)。這個值為 Memory\\System Driver Total Bytes (也包括可以寫入磁盤的驅動程序51Testing軟件測試網u1Q6D.[[u!M
內存)的組件。無論 System Driver Resident Bytes 還是 System Driver Total Bytes都包括不能寫入磁盤的物理內存。 51Testing軟件測試網&@3M9|@QcB$?;Ro
原文:51Testing軟件測試網!Y)`3z7jt}
Shows the size, in bytes, of pageable physical memory being used by device drivers. The counter is the working set (physical memory area) of the drivers. This value is a component of System Driver Total Bytes, which also includes driver memory that has been written to disk. Neither System Driver Resident Bytes nor System Driver Total Bytes includes memory that cannot be written to disk. 51Testing軟件測試網Ep6li_
通俗含義:
%z\/~!dvJ7u e}‘? l0可換頁的設備驅動程序代碼所使用的物理內存。
zLi aZr051Testing軟件測試網‘i)[X \X8{%AD
27、Memory\\System Driver Total Bytes51Testing軟件測試網b(yy j7Td6c"r
含義:
0h1Y~-X.r_2M4T ~e u0
System Driver Total Bytes 指設備驅動程序當前使用的可換頁的虛擬內存的字節數。當不使用時可換頁內存可以寫入磁盤。它包括物理內存(Memory\\System Driver Resident Bytes)和代碼以及寫到磁盤中的數據。它是Memory\\System Code Total Bytes 的一個組件。
k-gV$k*o0原文:
j+W?PKn1SF0
Shows the size, in bytes, of pageable virtual memory currently being used by device drivers. Pageable memory can be written to disk when it is not being used. It includes physical memory (System Driver Resident Bytes) and code and data written to disk. This counter is a component of System Code Total Bytes.
u-Nmp nMdshl051Testing軟件測試網:s8s0a vP ]N*s1m^
28、Memory\\Transition Faults/sec
s RYH9m6] X0含義:51Testing軟件測試網krf%q/D5]
Transition Faults/sec是在沒有額外磁盤運行的情況下,通過恢復頁面來解決頁面錯誤的速度。頁面錯誤包括頁面正被另一個共享此頁面的進程使用,或在被修改的頁面列表上或待機列表上,或在發生頁面錯誤時正被寫入磁盤。該技術器也等於錯誤的頁面數量,因為每一操作只有一個頁面錯誤。 51Testing軟件測試網iBT#{5M A
原文:
3qj9H?O8V ^K `0Shows the rate, in incidents per second, at which page faults were resolved by recovering pages without additional disk activity, including pages that were being used by another process sharing the page, or that were on the modified page list or the standby list, or that were being written to disk at the time of the page fault. This counter is also equal to the number of pages faulted because only one page is faulted in each operation. 51Testing軟件測試網5|y?s ]
分析:
H/I4Ty%v0如果這個指標持續的居高不下說明內存存在瓶頸,應該考慮增加內存。
/X?s+k [!k)G0
3S}nlY)Y.Q029、Memory\\Write Copies/sec 51Testing軟件測試網}a0By%Y,V+Gt
含義:
‘X{;R.^@GP N0
Write Copies/sec 是指通過從物理內存中的其他地方復制頁面來滿足寫入嘗試而引起的頁面錯誤速度。由於頁面只在被寫入時才被復制,這是一個實用的共享數據方式;另外該頁面是共享的。這個計數器顯示的是復制次數,不考慮每次操作時中被復制的頁面數。51Testing軟件測試網 X rF*Mb[Q7[
原文:
:Hv}-c!KL‘X|7o0Shows the rate, in incidents per second, at which page faults were caused by attempts to write that were satisfied by copying the page from elsewhere in physical memory. This is an economical way of sharing data since pages are only copied when they are written to; otherwise, the page is shared. This counter shows the number of copies, without regard to the number of pages copied in each operation. 51Testing軟件測試網.zp,e(OF-Z8gW
分析:51Testing軟件測試網‘K2UfK0L
就是寫時復制錯誤的比率。寫時復制頁面保護機制是一種優化,內存管理器利用它可以節約內存。
m+O)\x K8N}4d1H4DWl0例如:兩個進程正在共享三個頁面,每個頁面都被標記為寫時復制,當其中一個進程的任一線程對一個頁面執行寫操作,則會產生一個內存管理錯誤。內存管理器不會將該錯誤報告為訪問違例,而是在物理內存中分配一個新的讀/寫頁面,並將原始頁面中的內容拷貝到新的頁面中,同時更新該進程對應的頁面映射信息,使之指向新的頁面位置,然後解除異常,從而繼續進行剛才的寫指令。寫操作成功,新拷貝的頁面現在對於執行寫操作的進程來說是私有的,對於其他進程是不可見的。
^0_)DQ J"v&m0
VKa Do Ua‘?0後序
*s:gW1HAD0
本人參考《深入解析Windows操作系統》和網上的一些資料,通過自己的理解,形成了上文,有什麽不足之處,敬請提出。51Testing軟件測試網$^(G Wo}]4i\
51Testing軟件測試網!d&U4G]J9F‘[^M
附:Task Manager說明

技術分享圖片51Testing軟件測試網"ot-_?T‘P(e-l

F6LQqG[)t A?Y0物理內存:51Testing軟件測試網] Q^cHu!})hi
總數(2088268):實際可用的物理內存;
n;`d e*F0可用數(1176636):備用列表、空閑列表、零列表的總值大小;51Testing軟件測試網!cw&p~_D ?1xY
系統緩存(1230280):備用列表+系統工作集;51Testing軟件測試網4I_:j U7Z2A#E2E,]
51Testing軟件測試網1O-`-a8Z;D
內存使用:51Testing軟件測試網.BI uFG;|
總數(926572):提交的總虛擬內存;
)yL`:k4Y‘Y0限制(5068816):在不擴展頁面文件的情況下最大的虛擬內存;51Testing軟件測試網WKpP"|

#h4H {U&U h6|s#c0核心內存:
+je?Zr6]0分頁數(95784):換頁池的虛擬大小;
QH%g-|#oo:f0未分頁(30552):非換頁池的物理大小。

摘:Windows系統內存計數器理解解析_備忘錄_51Testing軟件測試網...