求助 Linux 真实内存占用过大, htop 命令无法展示占用的进程

2018-02-27 09:58:54 +08:00
 R18

Linux 60G 47G 用掉了,昨天用 HTOP 看以为是 Mysql 占用的 经指点发现不是,但是找不到究竟是谁用的,麻烦帮忙看看

htop :

9533 次点击
所在节点    Linux
21 条回复
hcymk2
2018-02-27 10:05:46 +08:00
ilovebaicai
2018-02-27 10:06:25 +08:00
你需要按内存占用排序:
ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less
http://www.cnblogs.com/Donal/archive/2011/01/15/1936079.html
shiyouming91
2018-02-27 10:07:19 +08:00
我记得绿色的是 availible 的吧?能贴一下 free 的结果么?
R18
2018-02-27 10:08:17 +08:00
@shiyouming91

free

total used free shared buffers cached
Mem: 62919396 60687420 2231976 9928 327796 10375052
-/+ buffers/cache: 49984572 12934824
Swap: 0 0 0
R18
2018-02-27 10:09:47 +08:00
@ilovebaicai 我这个排过的 用你的命令排出来的进程顺序和图上是一致的
sNullp
2018-02-27 10:12:48 +08:00
确实不是某个进程导致的,是不是 tmpfs 使用过多?
263
2018-02-27 10:17:16 +08:00
cat /proc/meminfo

发一下。
R18
2018-02-27 10:17:37 +08:00
@sNullp

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 4.8G 2.9G 63% /
devtmpfs 30G 68K 30G 1% /dev
tmpfs 31G 0 31G 0% /dev/shm
/dev/xvdb1 493G 89G 379G 20% /data


感谢之意无以言表
R18
2018-02-27 10:19:22 +08:00
@263

cat /proc/meminfo
MemTotal: 62919396 kB
MemFree: 2228000 kB
MemAvailable: 60639408 kB
Buffers: 327824 kB
Cached: 10384060 kB
SwapCached: 0 kB
Active: 8945140 kB
Inactive: 3568212 kB
Active(anon): 1801992 kB
Inactive(anon): 9432 kB
Active(file): 7143148 kB
Inactive(file): 3558780 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 76 kB
Writeback: 0 kB
AnonPages: 1801496 kB
Mapped: 52352 kB
Shmem: 9940 kB
Slab: 48031092 kB
SReclaimable: 47962884 kB
SUnreclaim: 68208 kB
KernelStack: 3376 kB
PageTables: 14700 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 31459696 kB
Committed_AS: 3442324 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 26624 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 12288 kB
DirectMap2M: 63987712 kB


楼上 V 友帮忙找到问题了 应该是 tmpfs 的问题
Nitroethane
2018-02-27 10:22:41 +08:00
应该是 linux 的页高速缓存机制导致的这种现象。这种情况下好多物理页被标记为脏页,当剩余内存达到某个阈值的时候内核会将这些脏页的数据刷回磁盘,然后将这些脏页回收用以重新分配
263
2018-02-27 10:25:44 +08:00
Slab: 48031092 kB

Google Slab 占用高。
R18
2018-02-27 10:34:43 +08:00
@263 感谢 获益匪浅
liangzi
2018-02-27 10:35:43 +08:00
Linux 的内存管理一直比较吭的
wwhc
2018-02-27 11:10:08 +08:00
Linux 的内存管理比 Windows 强太多,楼主不防试试 ZRAM,把交换分区放到内存
Windows 无论有多少内存,一开机就在硬盘上使劲读写交换文件,很影响性能
mrzx
2018-02-27 11:39:24 +08:00
正常过程是 系统先使用内存,内存不足了再使用,tmpfs 的。tmpfs 满了,系统内存再满了,你机器就挂了。
你看看系统内存什么情况吧。
如果系统内存正常,tmpfs 满了说明你服务有问题
mrzx
2018-02-27 11:43:33 +08:00
补充一点,肯定是哪个进程创建了过多的临时目录,或者对文件系统有过多的写入,导致写入到 tmpfs 这个拿物理内存当“虚拟硬盘用的 tmpfs ”占用物理内存过高。
walleL
2018-02-27 14:39:55 +08:00
@263
Slab +1,同被坑过
omph
2018-02-27 15:48:12 +08:00
可以用 atop 命令
panzhc
2018-02-28 04:02:16 +08:00
abccccabc
2018-02-28 09:27:09 +08:00
@R18 问两个问题:
1、准确原因是什么?
2、怎么解决的。


我的机子可能也有这个问题,但还不确定。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX