linux怎么查看线程占用的内存
时间: 2023-09-04 19:15:41 浏览: 2313
可以使用 `ps` 命令结合 `grep` 过滤出指定进程的线程,然后使用 `pmap` 命令查看每个线程占用的内存。
具体步骤如下:
1. 使用 `ps -eLf | grep <进程名>` 命令过滤出指定进程的线程。其中 `-e` 选项表示列出所有进程,`-L` 选项表示列出每个进程的线程。
2. 记下每个线程的 ID,然后使用 `pmap -x <线程ID>` 命令查看该线程占用的内存信息。其中 `-x` 选项表示以十六进制格式显示内存地址。
例如,假设我们要查看进程名为 `myapp` 的线程占用的内存,则可以执行以下命令:
```sh
ps -eLf | grep myapp
```
输出类似如下内容:
```sh
UID PID PPID LWP C NLWP STIME TTY TIME CMD
user 10000 1 10000 0 10 12:34 ? 00:00:00 myapp
user 10000 1 10001 0 10 12:34 ? 00:00:00 myapp
user 10000 1 10002 0 10 12:34 ? 00:00:00 myapp
user 10000 1 10003 0 10 12:34 ? 00:00:00 myapp
```
其中第一列为用户 ID,第二列为进程 ID,第四列为线程 ID。我们可以使用以下命令查看第一个线程占用的内存信息:
```sh
pmap -x 10000
```
输出类似如下内容:
```sh
10000: myapp
Address Kbytes RSS Dirty Mode Mapping
...
0000555555554000 26212 26104 26104 rw--- myapp
...
mapped: 26212K writeable/private: 26104K shared: 0K
```
其中第二列 `Kbytes` 为占用的内存大小(单位为 KB)。
阅读全文