概述
今天这个问题是未解之谜,还是挺神奇的,一起来看看吧~
1、问题说明
以下是一台2核4G的服务器,其中服务器上没运行任何程序,但4G内存就用了2.5G
这里用vmstat间隔5秒统计一次,共统计6次
2、查看内存详细信息
cat /proc/cpuinfo
- [root@EPMSDB tuned]# cat /proc/meminfo
- MemTotal: 3882316 kB
- MemFree: 1174264 kB
- MemAvailable: 1084616 kB
- Buffers: 0 kB
- Cached: 67764 kB
- SwapCached: 0 kB
- Active: 51984 kB
- Inactive: 56356 kB
- Active(anon): 40888 kB
- Inactive(anon): 16864 kB
- Active(file): 11096 kB
- Inactive(file): 39492 kB
- Unevictable: 0 kB
- Mlocked: 0 kB
- SwapTotal: 2097148 kB
- SwapFree: 2097148 kB
- Dirty: 0 kB
- Writeback: 0 kB
- AnonPages: 40540 kB
- Mapped: 22772 kB
- Shmem: 17176 kB
- Slab: 25928 kB
- SReclaimable: 10688 kB
- SUnreclaim: 15240 kB
- KernelStack: 1936 kB
- PageTables: 3072 kB
- NFS_Unstable: 0 kB
- Bounce: 0 kB
- WritebackTmp: 0 kB
- CommitLimit: 4038304 kB
- Committed_AS: 260036 kB
- VmallocTotal: 34359738367 kB
- VmallocUsed: 150720 kB
- VmallocChunk: 34359341052 kB
- HardwareCorrupted: 0 kB
- AnonHugePages: 8192 kB
- HugePages_Total: 0
- HugePages_Free: 0
- HugePages_Rsvd: 0
- HugePages_Surp: 0
- Hugepagesize: 2048 kB
- DirectMap4k: 51136 kB
- DirectMap2M: 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究竟消耗到哪了...莫非是显存问题?但服务器重启后却恢复正常了,继续观察..