通过Linux命令监控内存案例
1. top 命令
top 命令是 Linux 下性能分析工具,实时显示CPU 或 内存的占用情况。
top
top -p 1921 //显示进程号为 1921 的进程的信息
2. free 命令
free 命令显示当前系统内存使用情况,用于检测设备是否存在内存泄漏。
free -s 3:表示每隔 3 秒打印一次内存信息
校验内存泄露方法:我们可以通过在设备启动和运行一段时间后,使用 free
命令查看 已使用内存(used) 的大小并进行对比,如果运行一段时间后 used内存
有很明显的增大,那很有可能是存在内存泄漏。
3. cat /proc/meminfo 或 cat /proc/$pid/status 命令
cat /proc/meminfo 命令查看Linux系统的内存使用情况。
cat /proc/$pid/status 命令查看某个进程的内存使用信息。
MemTotal: 应用可以使用的内存总数
MemFree: 当前空闲的内存数目
MemAvailable: 可用内存(MemFree + 可回收的内存),系统中有些内存虽然已被使用,但是可以回收,如cache、buffer、slab都有一部分可以回收。
Buffers: 用来给文件做缓存大小
4.查看应用系统log日志
在log文件中搜索关键字 java.lang.OutOfMemoryError java.lang.StackOverflowError,搜索的结果中存在上述报错,则存在内存泄漏。