概述
今天这个问题是未解之谜,还是挺神奇的,一起来看看吧~
1、问题说明
以下是一台2核4G的服务器,其中服务器上没运行任何程序,但4G内存就用了2.5G
这里用vmstat间隔5秒统计一次,共统计6次
2、查看内存详细信息
cat /proc/cpuinfo
[root@EPMSDB tuned]# cat /proc/meminfoMemTotal: 3882316 kBMemFree: 1174264 kBMemAvailable: 1084616 kBBuffers:0 kBCached: 67764 kBSwapCached: 0 kBActive: 51984 kBInactive:56356 kBActive(anon):40888 kBInactive(anon): 16864 kBActive(file):11096 kBInactive(file): 39492 kBUnevictable: 0 kBMlocked:0 kBSwapTotal: 2097148 kBSwapFree: 2097148 kBDirty: 0 kBWriteback: 0 kBAnonPages: 40540 kBMapped: 22772 kBShmem: 17176 kBSlab: 25928 kBSReclaimable:10688 kBSUnreclaim: 15240 kBKernelStack: 1936 kBPageTables: 3072 kBNFS_Unstable:0 kBBounce:0 kBWritebackTmp:0 kBCommitLimit:4038304 kBCommitted_AS:260036 kBVmallocTotal: 34359738367 kBVmallocUsed:150720 kBVmallocChunk: 34359341052 kBHardwareCorrupted:0 kBAnonHugePages:8192 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kBDirectMap4k: 51136 kBDirectMap2M:4143104 kB
3、手动释放内存
手动释放缓存后还是占用2.5G空间。
4、查看进程内存
--按内存使用大小排序ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
可以发现其中tuned占用内存比较多
5、考虑重启tuned进程
RHEL/CentOS 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-adm,其中 tuned 是服务端程序。
Tuned本质上是一个Linux环境中的后台进程,在运行过程中依据配置内容监控调整系统。监控程序会根据监控的配置内容,监控进程会持续监控结果反馈,调整优化策略。
直接停止tuned进程后无效,还是2.5G占用
systemctl stop tuned
6、考虑是否有僵死进程
无僵死进程
lsof|grep deleted
目前还不知道这2.5G究竟消耗到哪了...莫非是显存问题?但服务器重启后却恢复正常了,继续观察..