天天看點

Nonpaged Pool(非分頁池) 和 Paged Pool(分頁池) 在Windows中的用處

很多DBA對nonpage pool 和 paged pool 搞不太清楚幹嘛用的,看perfmon中的說明也看得稀裡糊塗。找到一個資料就翻譯一下。

Nonpaged Pool(非分頁池)

Nonpaged pool is therefore always kept present in physical memory and nonpaged pool virtual memory is assigned physical memory. Common system data structures stored in nonpaged pool include the kernel and objects that represent processes and threads, synchronization objects like mutexes, semaphores and events, references to files, which are represented as file objects, and I/O request packets (IRPs), which represent I/O operations.

非分頁池是以總是報錯在記憶體中,非分頁池的虛拟位址被實體位址配置設定。通用的系統資料結構被儲存在非分頁池中包含核心和代表程序和線程的對象,互斥對象,同步信号量,引用檔案(代表檔案對象),和I/O請求包(代表I/O操作)

Paged Pool(分頁池)

Paged pool, on the other hand, gets its name from the fact that Windows can write the data it stores to the paging file, allowing the physical memory it occupies to be repurposed. Just as for user-mode virtual memory, when a driver or the system references paged pool memory that’s in the paging file, an operation called a page fault occurs, and the memory manager reads the data back into physical memory. The largest consumer of paged pool, at least on Windows Vista and later, is typically the Registry, since references to registry keys and other registry data structures are stored in paged pool. The data structures that represent memory mapped files, called sections internally, are also stored in paged pool.

分頁池,從字面意思來說,也就是可以存到系統的分頁檔案中,允許實體記憶體重定向。如使用者模式的虛拟記憶體,當驅動或者系統引用分頁池記憶體在分頁檔案中,那麼一個操作就會調用頁錯誤,記憶體管理系統把資料從分頁檔案中讀取到實體記憶體。在windows vista和之後的版本,分頁池最大的使用者是系統資料庫,引用的注冊鍵值和其他系統資料庫資料都是存儲在分頁池中。記憶體映射檔案(内部叫做記憶體對象[Sections])也存在分頁池中。

繼續閱讀