linux 中查看某个单进程程序运行所占内存(linux proc status statm详解)

linux 中查看某个单进程程序运行所占内存(linux proc status statm详解)
本文来自:http://www.lifecrunch.biz/archives/216
转载自品味生活

linux 中查看 某个单进程程序运行所占内存所占的内存空间,设pid为进程id(ps aux| grep ‘processName’获得),查看/proc/pid/statm和/proc/pid/status即可。
        /proc/[pid]/statm
              Provides information about memory usage, measured in pages.  The
              columns are:
                  size       total program size
                             (same as VmSize in /proc/[pid]/status)
                  resident   resident set size
                             (same as VmRSS in /proc/[pid]/status)
                  share      shared pages (from shared mappings)
                  text       text (code)
                  lib        library (unused in Linux 2.6)
                  data       data + stack
                  dt         dirty pages (unused in Linux 2.6)

       /proc/[pid]/status
              Provides much of the information in /proc/[pid]/stat and
              /proc/[pid]/statm in a format that's easier for humans to parse.
              Here's an example:

        $ cat /proc/$$/status
                  Name:   bash
                  State:  S (sleeping)
                  Tgid:   3515
                  Pid:    3515
                  PPid:   3452
                  TracerPid:      0
                  Uid:    1000    1000    1000    1000
                  Gid:    100     100     100     100
                  FDSize: 256
                  Groups: 16 33 100
                  VmPeak:     9136 kB
                  VmSize:     7896 kB
                  VmLck:         0 kB
                  VmHWM:      7572 kB
                  VmRSS:      6316 kB
                  VmData:     5224 kB
                  VmStk:        88 kB
                  VmExe:       572 kB
                  VmLib:      1708 kB
                  VmPTE:        20 kB
                  Threads:        1
                  SigQ:   0/3067
                  SigPnd: 0000000000000000
                  ShdPnd: 0000000000000000
                  SigBlk: 0000000000010000
                  SigIgn: 0000000000384004
                  SigCgt: 000000004b813efb
                  CapInh: 0000000000000000
                  CapPrm: 0000000000000000
                  CapEff: 0000000000000000
                  CapBnd: ffffffffffffffff
                  Cpus_allowed:   00000001
                  Cpus_allowed_list:      0
                  Mems_allowed:   1
                  Mems_allowed_list:      0
                  voluntary_ctxt_switches:        150
                  nonvoluntary_ctxt_switches:     545

              The fields are as follows:

              * Name: Command run by this process.

              * State: Current state of the process.  One of "R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T (tracing stop)", "Z(zombie)", or "X (dead)".

              * Tgid: Thread group ID (i.e., Process ID).

              * Pid: Thread ID (see gettid(2)).

              * TracerPid: PID of process tracing this process (0 if not being
                traced).

              * Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).

              * FDSize: Number of file descriptor slots currently allocated.

              * Groups: Supplementary group list.

              * VmPeak: Peak virtual memory size.

              * VmSize: Virtual memory size.

              * VmLck: Locked memory size (see mlock(3)).

              * VmHWM: Peak resident set size ("high water mark").

              * VmRSS: Resident set size.

              * VmData, VmStk, VmExe: Size of data, stack, and text segments.

              * VmLib: Shared library code size.

              * VmPTE: Page table entries size (since Linux 2.6.10).

              * Threads: Number of threads in process containing this thread.

              * SigPnd, ShdPnd: Number of signals pending for thread and for process  as a whole (see pthreads(7) and signal(7)).

              * SigBlk, SigIgn, SigCgt: Masks indicating signals being blocked, ignored, and caught (see signal(7)).

              * CapInh, CapPrm, CapEff: Masks of capabilities enabled in inheritable, permitted, and effective sets (see capabilities(7)).

              * CapBnd: Capability Bounding set (since kernel 2.6.26, see  capabilities(7)).

              * Cpus_allowed: Mask of CPUs on which this process may run (since Linux 2.6.24, see cpuset(7)).

              * Cpus_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).

              * Mems_allowed: Mask of memory nodes allowed to this process (since Linux 2.6.24, see cpuset(7)).

              * Mems_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).

              * voluntary_context_switches, nonvoluntary_context_switches: Number of  voluntary and involuntary context switches (since Linux 2.6.23).


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux,我们可以通过以下几种方式查看某个进程运行的具体程序名: 1. 使用ps命令:输入`ps -p <进程ID>`来查看进程的详细信息,包括程序名。例如,输入`ps -p 1234`,其1234是目标进程进程ID。 2. 使用pgrep命令结合ps命令:首先使用`pgrep <程序名>`来查找目标进程进程ID,然后再使用`ps -p <进程ID>`来查看进程的详细信息。例如,输入`pgrep firefox`将返回Firefox浏览器的进程ID,然后再运行`ps -p <进程ID>`查看进程的详细信息。 3. 使用top命令:运行`top`命令后,按下`Shift + c`,将显示正在运行的进程列表,其包括程序名。 4. 使用htop命令:htop是top命令的增强版,可以更直观地查看系统运行的进程。运行`htop`命令后,即可显示正在运行的进程列表,其包括程序名。 这些方法可以帮助我们在Linux系统查看某个进程运行的具体程序名。 ### 回答2: 要查看Linux某个进程运行的具体程序名,可以使用以下方法: 1. 使用ps命令:在终端执行以下命令可以查看系统运行的进程及其对应的程序名: `ps -p <pid> -o comm=` 其,`<pid>`是要查看进程的PID(进程ID)。这将显示指定进程的程序名。 2. 使用pgrep命令:在终端执行以下命令可以查看满足特定条件的进程及其对应的程序名: `pgrep -l <name>` 其,`<name>`是要查找的程序名关键字。这将显示包含指定关键字的进程及其程序名。 3. 使用lsof命令:在终端执行以下命令可以查看指定进程所打开的文件及对应的程序名: `lsof -p <pid>` 其,`<pid>`是要查看进程的PID。这将显示指定进程打开的文件和对应的程序名。 4. 使用/proc文件系统:在终端执行以下命令可以通过/proc文件系统查看进程对应的程序名: `ls -l /proc/<pid>/exe` 其,`<pid>`是要查看进程的PID。这将显示指定进程的可执行文件路径。 需要注意的是,这些方法在Linux系统都可以使用,可以根据具体需求选择使用。 ### 回答3: 在Linux系统上,可以使用以下几种方法来查看某个进程运行的具体程序名: 1. 使用ps命令查看进程信息:在终端输入"ps -ef | grep 进程ID"(其进程ID为要查看进程的PID),会列出与该进程相关的进程信息。从输出结果可以查找到进程的具体程序名。 2. 使用top命令查看进程信息:在终端输入"top"命令,会显示当前系统运行的进程信息。通过按下"Shift + f"键,再选择通过哪个字段排序,可以方便地找到目标进程,并查看其具体程序名。 3. 使用lsof命令查看进程打开的文件:在终端输入"lsof -p 进程ID"(其进程ID为要查看进程的PID),lsof命令会显示该进程打开的所有文件和文件描述符。从输出结果找到进程对应的可执行文件路径,即可确认其具体程序名。 4. 使用/proc文件系统查看进程信息:在终端进入/proc目录(cd /proc),然后进入要查看进程的对应目录(例如cd 进程ID),进入该目录后使用"cat cmdline"命令,可以查看进程的命令行参数,从可以确定进程的具体程序名。 通过以上方法,可以在Linux系统查看某个进程运行的具体程序名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值