我们已经configuration了一个新的服务器,并且正在经历高内存使用,没有关于htop / top的使用信息,也没有发现python内存脚本( http://www.pixelbeat.org/scripts/ps_mem.py ) 。 这里是free -m的输出:
total used free shared buffers cached Mem: 7195 1347 5848 0 3 28 -/+ buffers/cache: 1315 5879 Swap: 3813 0 3813
从最上面开始,按内存使用情况sorting:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1586 root 20 0 200m 14m 1836 S 0 0.2 0:00.75 xend 1585 root 20 0 95892 9.9m 832 S 0 0.1 0:00.00 xend 1855 root 20 0 51728 2996 2368 S 0 0.0 0:00.00 sshd 1822 ntp 20 0 38332 2176 1596 S 0 0.0 0:00.03 ntpd 1858 psadmin 20 0 17728 1932 1436 S 0 0.0 0:00.00 bash 1071 root 20 0 52416 1852 1032 S 0 0.0 0:00.02 rsyslogd 1857 psadmin 20 0 51880 1396 756 S 0 0.0 0:00.00 sshd 1866 psadmin 20 0 19064 1364 1000 R 0 0.0 0:00.04 top 1564 root 20 0 49168 1140 592 S 0 0.0 0:00.00 sshd (etc)
和前面提到的python脚本说什么应用程序使用什么:
Private + Shared = RAM used Program 180.0 KiB + 71.5 KiB = 251.5 KiB xenconsoled 228.0 KiB + 32.0 KiB = 260.0 KiB acpid 204.0 KiB + 58.0 KiB = 262.0 KiB init 252.0 KiB + 75.5 KiB = 327.5 KiB cron 332.0 KiB + 44.0 KiB = 376.0 KiB dbus-daemon 380.0 KiB + 53.5 KiB = 433.5 KiB xenstored 556.0 KiB + 138.0 KiB = 694.0 KiB sudo 612.0 KiB + 255.0 KiB = 867.0 KiB getty (6) 604.0 KiB + 582.0 KiB = 1.2 MiB udevd (3) 1.1 MiB + 103.5 KiB = 1.2 MiB rsyslogd 956.0 KiB + 267.5 KiB = 1.2 MiB ntpd 1.2 MiB + 73.0 KiB = 1.3 MiB bash 1.5 MiB + 1.3 MiB = 2.8 MiB sshd (3) 16.2 MiB + 3.8 MiB = 20.0 MiB xend (2) --------------------------------- 31.0 MiB ================================= Private + Shared = RAM used Program
所以,真的有两个问题:
1)这个内存是什么?
2)为什么我只能从已安装的8GB内存看到7195MB的内存?
这是在戴尔Poweredge R210,与RAID0中的SAS驱动器。
任何帮助,将非常感激!
发现在这里看到的是同样的问题: Debian Squeeze和可用内存(1GB缺失) ,Xen内核在dmesg显示dmesg '缺席'。
更新的问题与具体细节: 在Debian挤压Xen内核使1GB内存'缺席'
我看到xend和xenconsoled正在运行,并且在讨论部署时使用了“provisioning”这个词,所以我假定这是在Xen下运行的虚拟化系统?
这就是你的问题,虽然它不是一个问题,只是它的工作方式。 dom0正在使用缺less的RAM。 额外的RAM使用情况可能是试图节省资源的气球驱动程序。 这里有一些额外的解释, 这里有一些可能的修正。
问题1
不要惊慌!
它正在用于您的文件caching缓冲区。 Linux将不断caching从硬盘读取的文件以提高性能。 没有必要担心,一旦内存需要其他的东西,它将转储caching,并使内存可用于运行进程。 这实际上是在你运行free -m时告诉你的:
基本上它正在做它应该做的事情。
问题2
这可能是由于显卡使用内存,请检查您的BIOS,看看是否有一个设置,分配给GPU的特定数量的内存。
tbh,idk。
http://www.mjmwired.net/kernel/Documentation/IO-mapping.txt
127 NOTE NOTE NOTE! The above is only one part of the whole equation. The above 128 only talks about "real memory", that is, CPU memory (RAM). 129 130 There is a completely different type of memory too, and that's the "shared 131 memory" on the PCI or ISA bus. That's generally not RAM (although in the case 132 of a video graphics card it can be normal DRAM that is just used for a frame 133 buffer), but can be things like a packet buffer in a network card etc. 134 135 This memory is called "PCI memory" or "shared memory" or "IO memory" or 136 whatever, and there is only one way to access it: the readb/writeb and 137 related functions. You should never take the address of such memory, because 138 there is really nothing you can do with such an address: it's not 139 conceptually in the same memory space as "real memory" at all, so you cannot 140 just dereference a pointer. (Sadly, on x86 it _is_ in the same memory space, 141 so on x86 it actually works to just deference a pointer, but it's not 142 portable).
– 尝试彻底禁用framebuffer。 看看这是否做了什么。
如果这样还不够神秘,你可以继续深入: