常规方法:

一:使用TOP命令
top命令将整个机器的进程概况展示出来
1.1:按照cpu排序
top命令之后,输入大写的P
1.2:按照内存排序
top命令之后,输入大写的M
1.3查看完成的命令行
top命令之后输入小写的c
1.4查看指定进程
top -p pid
查看进程下面的线程
top -p pid -H

二:使用free命令
share:共享内存占用
ipcs:查看共享内存标识
ipcrm:删除指定共享内存

-/+ buffer/cache
buffer/cache是一个整体变量
-:表示
+:表示空闲的内存空间,等于free+buffers+cache

三:/proc文件系统
内核提供的一种特殊文件系统,是用户跟内核交互的接口。
Buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB 左 右)。这样,内核就可以把分散的写集中起来,统一优化磁盘的写入,比如可以把多次小的写合并成单次大的写等等。
Cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的磁盘。
SReclaimable 是 Slab 的一部分。Slab 包括两部分,其中的可回收部分,用 SReclaimable 记录;而不可回收部分,用 SUnreclaim 记录。
写文件时会用到 Cache 缓存数据,而写磁盘则会用到 Buffer 来缓存数据。,但实际上,Cache 也会缓存写文件时的数据。
Buffer 既可以用作“将要写入磁盘数据的缓存”,也可以用作“从磁盘读取数据的缓存”。
Cache 既可以用作“从文件读取数据的页缓存”,也可以用作“写文件的页缓存”。
简单来说,Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。

四:通过以上命令找不到比较大的占用
说明不是某个程序占用比较大,可能是某类占用比较小,但是进程示例特别多的情况,这时候可以通过查看进程个数及进程类型比较分析。