@cdmonkey
2018-12-13T07:21:29.000000Z
字数 2192
阅读 1580
操作系统
http://blog.51cto.com/leejia/1431756
http://www.it165.net/os/html/201404/7813.html
问题现象:系统占用内存高,使用 ps 指令查看,并没有进程占用过多内存。
[root@PBSOSSBACK ~]# free -mtotal used free shared buffers cachedMem: 3817 3345 2735 0 26 142-/+ buffers/cache: 1012 2805Swap: 8187 26 8161# 这时操作系统中已经将主要的工作进程关闭,但内存占用居高不下。
使用 atop 指令进行查看:
[root@PBSOSSBACK ~]# atop...MEM | tot 3.7G | free 345.9M | cache 229.4M | dirty 0.0M | buff 26.4M | slab 3.1G |
使用 slabtop 指令查看具体信息:
[root@PBSOSSBACK ~]# slabtopActive / Total Objects (% used) : 6664857 / 7277229 (91.6%)Active / Total Slabs (% used) : 850234 / 850235 (100.0%)Active / Total Caches (% used) : 101 / 188 (53.7%)Active / Total Size (% used) : 2659946.91K / 2701460.45K (98.5%)Minimum / Average / Maximum Object : 0.02K / 0.37K / 4096.00KOBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME3828156 3275671 85% 0.06K 64884 59 259536K size-642163690 2163688 99% 1.02K 721230 3 2884920K nfs_inode_cache1114180 1114180 100% 0.19K 55709 20 222836K dentry56721 7647 13% 0.10K 1533 37 6132K buffer_head...
还可使用 vmstat 指令查看:
[systemusers@PBSOSSBACK ~]$ vmstat -mCache Num Total Size Pagesnfs_direct_cache 0 0 200 19nfs_commit_data 0 0 704 11nfs_write_data 36 36 960 4nfs_read_data 0 0 896 4nfs_inode_cache 2140236 2140236 1048 3nfs_page 0 0 128 30...
从 /proc/meminfo 文件中也能够看出问题:
[root@PBSOSSBACK ~]# cat /proc/meminfoMemTotal: 3909344 kBMemFree: 125508 kBBuffers: 26960 kBCached: 215080 kBSwapCached: 1440 kBActive: 144816 kBInactive: 117336 kBActive(anon): 7204 kBInactive(anon): 13528 kBActive(file): 137612 kBInactive(file): 103808 kBUnevictable: 0 kBMlocked: 0 kBSwapTotal: 8384508 kBSwapFree: 8357824 kBDirty: 0 kBWriteback: 0 kBAnonPages: 19524 kBMapped: 7612 kBShmem: 360 kBSlab: 3448700 kB # 就是这里SReclaimable: 3157544 kBSUnreclaim: 291156 kBKernelStack: 2816 kBPageTables: 4032 kBNFS_Unstable: 0 kBBounce: 0 kBWritebackTmp: 0 kBCommitLimit: 10339180 kBCommitted_AS: 141488 kBVmallocTotal: 34359738367 kBVmallocUsed: 168580 kBVmallocChunk: 34359567224 kBHardwareCorrupted: 0 kBAnonHugePages: 0 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kBDirectMap4k: 8192 kBDirectMap2M: 2088960 kBDirectMap1G: 2097152 kB
解决办法:手动释放
[root@PBSOSSBACK ~]# cat /proc/sys/vm/drop_caches0 # 这个值的默认值是0[root@PBSOSSBACK ~]# sync # 将内存中的数据同步至硬盘# 接下来就是手动释放缓存:[root@PBSOSSBACK ~]# echo 2 > /proc/sys/vm/drop_caches[root@PBSOSSBACK ~]# cat /proc/sys/vm/drop_caches2
可将上述操作配置为定时任务:
# crontab -e0 */4 * * * sync&&echo 2 >/proc/sys/vm/drop_caches