概述
今天這個問題是未解之謎,還是挺神奇的,一起來看看吧~
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究竟消耗到哪了...莫非是顯存問題?但服務器重啟后卻恢復正常了,繼續觀察..