当前位置:首页 > linux > 正文

linux进程占用内存过高分析(linux 进程资源占用)

  • linux
  • 2024-03-15 18:27:47
  • 350
Linux 进程占用内存过高分析
要素:

1. 进程 ID (PID)


- 通过 ps aux 或 top 命令确定占用内存过高的进程的 PID。

2. rss 和 vss


- rss(常驻集大小):进程物理驻留在内存中的大小。
- vss(虚拟内存大小):进程可访问的虚拟地址空间大小。
- 可通过 ps aux --sort -rss 或 top -o rss 查看。

3. malloc() 和 free() 统计


- 使用 malloc_info 检查分配和释放的内存统计信息。
- 查找分配总数与释放总数之间的差异。
- 可能指示内存泄漏。

4. 文件描述符


- 查看进程打开的文件描述符数量(lsof -p )。
- 过多打开的文件描述符可能导致内存泄漏。

5. 共享库


- 检查进程是否加载了大量的共享库(ldd )。
- 意外加载的库可能导致内存使用过高。

6. 线程分析


- 使用 top -H -p 查看进程的线程和内存使用情况。
- 查找占用内存过多的特定线程。

7. 内存映射


- 检查进程是否创建了大量内存映射(cat /proc//maps)。
- 过多内存映射可能导致碎片化和内存使用过高。

8. 核心转储


- 通过运行 gcore 创建进程的 core 转储。
- 使用 gdb 分析 core 转储以查找内存泄漏或其他问题。