今天这个问题是未解之谜,还是挺神奇的,一起来看看吧~
以下是一台2核4G的服务器,其中服务器上没运行任何程序,但4G内存就用了2.5G
这里用vmstat间隔5秒统计一次,共统计6次
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
手动释放缓存后还是占用2.5G空间。
--按内存使用大小排序
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
可以发现其中tuned占用内存比较多
RHEL/centos 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-adm,其中 tuned 是服务端程序。
Tuned本质上是一个linux环境中的后台进程,在运行过程中依据配置内容监控调整系统。监控程序会根据监控的配置内容,监控进程会持续监控结果反馈,调整优化策略。
直接停止tuned进程后无效,还是2.5G占用
systemctl stop tuned
无僵死进程
lsof|grep deleted
目前还不知道这2.5G究竟消耗到哪了...莫非是显存问题?但服务器重启后却恢复正常了,继续观察..