我正在检查我的服务器资源使用情况,并注意到"cma“进程正在使用大量的RAM。
top - 15:04:54 up 127 days, 21:00, 1 user, load average: 0.27, 0.33, 0.24
Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.9%us, 0.3%sy, 0.0%ni, 92.6%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4043700k total, 4006616k used, 37084k free, 146968k buffers
Swap: 1052248k total, 1052240k used, 8k free, 1351364k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4308 root 16 0 2080m 977m 4708 S 0.0 24.8 0:00.02 cma
4396 root 15 0 2080m 977m 4708 S 0.0 24.8 0:00.10 cma
4397 root 16 0 2080m 977m 4708 S 0.0 24.8 3:47.36 cma
4398 root 15 0 2080m 977m 4708 S 0.0 24.8 2:31.40 cma
4399 root 15 0 2080m 977m 4708 S 0.0 24.8 0:00.34 cma
4400 root 18 0 2080m 977m 4708 S 0.0 24.8 0:00.00 cma
4403 root 15 0 2080m 977m 4708 S 0.0 24.8 0:47.36 cma
4404 root 18 0 2080m 977m 4708 S 0.0 24.8 0:00.07 cma
4405 root 18 0 2080m 977m 4708 S 0.0 24.8 0:00.04 cma
4406 root 15 0 2080m 977m 4708 S 0.0 24.8 0:12.14 cma
4408 root 19 0 2080m 977m 4708 S 0.0 24.8 0:00.00 cma 我发现了去年的这个论坛帖子,显然这些过程与McAfee病毒扫描有关。
我在其中一个进程上运行了pmap,这是输出的最后一行:
mapped: 2130892K writeable/private: 2113632K shared: 40K这个进程真的使用2.1GB内存吗?顶部报告内存使用情况accurately>吗?
谢谢!
发布于 2014-07-10 16:20:16
VIRT列告诉您映射到进程中的虚拟内存段的总大小--这包括可执行文件本身、库、数据段、堆栈、堆、内存映射文件等。从某种意义上说,进程目前有权限以某种方式触摸的内存总量(读、写、执行)。该流程不一定使用所有这些,这是RES列报告数量较少的几个原因之一。RES是目前实际处于物理内存中的VIRT大小子集的总大小。这是一个更好(但仍然不是很好)的衡量进程实际使用多少内存的指标--它在内存中的事实表明它已经或正在被积极使用。但是,如果您的系统有大量的内存,那么其中的一部分可能在3天前就已经被触及了,而不是从那以后,所以它可能没有被积极地使用。相反,如果内存不足,该进程可能会尝试使用比RES当前指示的更多的内容,这将导致分页/交换活动和性能问题。
还有一种趋势是,某些类型的内存(可执行文件、库)在程序的多个实例之间共享,IPC类型的共享内存的存在,以及其他一些因素都会影响到“这个进程使用了多少内存?”
换句话说,这个问题并不像你想象的那么简单.
https://stackoverflow.com/questions/24679259
复制相似问题