我们的一个网站正在使用类似2gb的内存,我们正在努力理解为什么它使用了这么多(因为我们试图将这个网站推向天蓝色,因为大内存使用意味着更高的天蓝色账单)。
我从一个IIS转储和任务管理器,我可以看到它使用像2.2GB的妈妈。
然后我运行!address -summary
,这就是我得到的:
--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
Free 913 7fb`2f5ce000 ( 7.981 Tb) 99.76%
<unknown> 4055 4`a49c9000 ( 18.572 Gb) 96.43% 0.23%
Heap 338 0`1dbd1000 ( 475.816 Mb) 2.41% 0.01%
Image 3147 0`0c510000 ( 197.063 Mb) 1.00% 0.00%
Stack 184 0`01d40000 ( 29.250 Mb) 0.15% 0.00%
Other 14 0`001bf000 ( 1.746 Mb) 0.01% 0.00%
TEB 60 0`00078000 ( 480.000 kb) 0.00% 0.00%
PEB 1 0`00001000 ( 4.000 kb) 0.00% 0.00%
--- Type Summary (for busy) ------ RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_PRIVATE 2206 4`ba7d2000 ( 18.914 Gb) 98.20% 0.23%
MEM_IMAGE 5522 0`148b0000 ( 328.688 Mb) 1.67% 0.00%
MEM_MAPPED 71 0`019a0000 ( 25.625 Mb) 0.13% 0.00%
--- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_FREE 913 7fb`2f5ce000 ( 7.981 Tb) 99.76%
MEM_RESERVE 2711 4`378f4000 ( 16.868 Gb) 87.58% 0.21%
MEM_COMMIT 5088 0`9912e000 ( 2.392 Gb) 12.42% 0.03%
--- Protect Summary (for commit) - RgnCount ----------- Total Size -------- %ofBusy %ofTotal
PAGE_READWRITE 1544 0`81afb000 ( 2.026 Gb) 10.52% 0.02%
PAGE_EXECUTE_READ 794 0`0f35d000 ( 243.363 Mb) 1.23% 0.00%
PAGE_READONLY 2316 0`05ea8000 ( 94.656 Mb) 0.48% 0.00%
PAGE_EXECUTE_READWRITE 279 0`020f4000 ( 32.953 Mb) 0.17% 0.00%
PAGE_WRITECOPY 92 0`0024f000 ( 2.309 Mb) 0.01% 0.00%
PAGE_READWRITE|PAGE_GUARD 61 0`000e6000 ( 920.000 kb) 0.00% 0.00%
PAGE_EXECUTE 2 0`00005000 ( 20.000 kb) 0.00% 0.00%
--- Largest Region by Usage ----------- Base Address -------- Region Size ----------
Free 5`3fac0000 7f9`59610000 ( 7.974 Tb)
<unknown> 3`06a59000 0`f9067000 ( 3.891 Gb)
Heap 0`0f1c0000 0`00fd0000 ( 15.813 Mb)
Image 7fe`fe767000 0`007ad000 ( 7.676 Mb)
Stack 0`01080000 0`0007b000 ( 492.000 kb)
Other 0`00880000 0`00183000 ( 1.512 Mb)
TEB 7ff`ffe44000 0`00002000 ( 8.000 kb)
PEB 7ff`fffdd000 0`00001000 ( 4.000 kb)
我真的得不到很多东西:
网络服务器总共有8GB内存,但使用情况摘要中的免费部分显示为7.9Tb?为什么呢?
Unknown显示19.572GB,但网络服务器总共有8GB内存。为什么呢?
非常感谢
答案 0 :(得分:0)
网络服务器总共有8GB内存,但使用情况摘要中的免费部分显示为7.9Tb?为什么呢?
8 GB RAM是物理内存,即填充在PC的DDR插槽中的内存。 8 TB是虚拟内存,也可以存储在页面文件中。
对于32位进程,虚拟内存可以是4 GB,并且取决于64位进程的操作系统的确切限制。
Unknown显示19.572GB,但网络服务器总共有8GB内存。为什么呢?
19 GB是<unknown>
内存管理器使用的虚拟内存量,例如: .NET或直接调用VirtualAlloc()
。
即使19 GB超过8 GB,这也不一定意味着内存已交换到磁盘。这取决于内存的状态。看MEM_RESERVE
,我们发现其中大部分尚未使用。因此,您的应用程序可能仍然具有良好的性能。
任务管理器显示私有内存工作集类似于2.2GB,但是如果我将Heap,Image和Stack加在一起它只有大约700MB,那么其余的1.5 GB内存还是我完全读错了输出?
其余部分位于<unknown>
,因此任务管理器显示的总和甚至超过2.2 GB。工作集大小表示您的进程使用了多少物理RAM。理想情况下,一切都在RAM中,因为RAM是最快的。但RAM有限,并非所有应用程序都适合RAM。因此,经常不使用的内存被交换到磁盘,这减少了物理RAM的使用,从而减少了工作集的大小。