1
It is subtly mentioned on this article, that the page- and non-page pool, are used for contiguous memory allocations which are sub-page size.
It then goes on to list the differences. I am not sure if this first part is accurate, probably because it is not emphasized enough throughout the article, and because it's not mentioned on any other site.
- So my first question is the page pool, the amount of memory that can be paged out that consists of sub page size allocation of memory, and non paged the opposite?
- Is this separately measured from normally allocated memory?
- Also the cached memory in the image below is that in working memory (ram) or just in virtual memory?
I just found it strange the the commit use is .7 but the cache plus the ram usage is about .9. It this commit (In Use + page and non paged pools), because that would make more sense to me?
If the paged pool represent all memory (memory that can be paged out + memory that cannot be page) why are those variables so comparably low to the total amount of memory used? Am I misunderstanding this? Is the non paged pool similar to wired memory in OSX. – rubixibuc – 2012-02-15T03:24:06.480
1Windows only counts pageable system allocations under the paged pool. So that would include things like pageable driver files or other files mapped into memory by kernel drivers, registry cache, and so on. Things allocated directly by processes are not counted. – David Schwartz – 2012-02-15T03:35:27.607
So whether it's in non or page pool, it only represents memory allocated in kernel space? Also is the paged pool, completely in physical memory or is it in virtual memory (can be either)? – rubixibuc – 2012-02-15T03:47:20.883
2@rubixibuc, the kernel maintains two different heaps for its private allocations. One can be paged, the other can not. All memory is virtual, the difference is whether or not it must be backed by physical ram at all times, or can sometimes be paged out. – psusi – 2012-02-15T04:12:26.090