参考
部分名词解释可以参考 psutil库介绍(一)
进程部分
测试代码:
1 | import psutil |
输出:1
2
3
4
5
6
7进程名:systemd,进程ID:1
进程名:kthreadd,进程ID:2
进程名:ksoftirqd/0,进程ID:3
进程名:kworker/0:0H,进程ID:5
进程名:rcu_sched,进程ID:7
进程名:rcu_bh,进程ID:8
...
测试代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import psutil
p = psutil.Process(88102)
print '进程名:', p.name()
print '执行文件位置:', p.exe()
print '进程的工作目录:', p.cwd()
print '进程的状态:', p.status()
print '进程的拥有者:' ,p.username()
print '进程创建的时间:' ,p.create_time()
print '该进程打开的终端:' ,p.terminal()
print '用户ID:', p.uids()
print '组ID:',p.gids()
print '进程的CPU时间:', p.cpu_times()
print '进程在3秒内的CPU占用率:', p.cpu_percent(interval=3.0)
print '进程占用内存百分比:', p.memory_percent()
print '进程占用内存信息:', p.memory_info()
print '进程占用内存信息:', p.memory_info_ex()
print '进程的线程数量:', p.num_threads()
print '进程的文件描述数量:', p.num_fds()
print '进程切换(被调度)的次数:', p.num_ctx_switches()
print '进程的优先级:', p.nice()
输出:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18进程名: python
执行文件位置: /usr/bin/python2.7
进程的工作目录: /home/shixin/python
进程的状态: running
进程的拥有者: root
进程创建的时间: 1435977235.72
该进程打开的终端: /dev/pts/7
用户ID: puids(real=0, effective=0, saved=0)
组ID: pgids(real=0, effective=0, saved=0)
进程的CPU时间: pcputimes(user=5.02, system=3.76)
进程在3秒内的CPU占用率: 0.0
进程占用内存百分比: 1.06501072687
进程占用内存信息: pmem(rss=22163456, vms=536449024)
进程占用内存信息(详细): pextmem(rss=22163456, vms=536449024, shared=5197824, text=3260416, lib=0, data=416690176, dirty=0)
进程的线程数量: 8
进程的文件描述数量: 52
进程切换(被调度)的次数: pctxsw(voluntary=2164, involuntary=441)
进程的优先级: 0
相关的名词解释:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25> /dev/pts:这里的 `/dev/pts` 为伪终端,所谓伪终端是逻辑上的终端设备,多用于模拟终端程序, 通常是我们在X Window下打开的终端
> real:实际ID
> effective:有效ID
> saved:保存设置ID
> rss: 实际使用物理内存
> vms: 虚拟内存
> shared:共享内存
> text:进程代码段的虚拟内存页个数
> lib: lib使用的内存
> data:数据占用的内存
> dirty:dirty标志,非dirty page都可以回收
> voluntary:主动(切换)
> involuntary:被动(切换)
测试代码:1
2
3
4
5
6import psutil
p = psutil.Process(88102)
cmds = p.cmdline()
print '执行该进程的命令行和参数:'
for item in cmds:
print item
输出:
1 | 执行该进程的命令行和参数: |
测试代码:1
2
3
4import psutil
p = psutil.Process(88102)
print '进程的IO计数信息:'
print p.io_counters()
输出:
1 | 进程的IO计数信息: |
相关的名词解释:1
2
3
4
5
6
7> read_count:读次数
> write_count:写次数
> read_bytes:读总量
> write_bytes:写总量
测试代码:1
2
3
4
5
6import psutil
p = psutil.Process(88102)
print '进程打开的文件:'
files = p.open_files()
for item in files:
print item
输出:
1 | 进程打开的文件: |
测试代码:1
2
3
4
5
6import psutil
p = psutil.Process(88102)
print '和进程有关的连接:'
conns = p.connections()
for item in conns:
print item
输出:
1 | 和进程有关的连接: |
输出:
1 | 进程打开的文件: |
测试代码:1
2
3
4
5
6import psutil
p = psutil.Process(88102)
print '子进程信息:'
threads = p.threads()
for item in threads:
print item
输出:
1 | 子进程信息: |
测试代码:1
2
3
4
5
6import psutil
p = psutil.Process(88102)
print '内存映射信息:'
maps= p.memory_maps()
for item in maps:
print item
输出:
1 | 内存映射信息: |
相关的名词解释:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21> path:被映射到内存的文件名称
> rss:实际使用物理内存
> size:进程使用的地址空间
> pss:实际使用物理内存
> shared_clean:和其他进程共享的未改写页面
> shared_dirty:和其他进程共享的已改写页面
> private_clean:未改写的私有页面页面
> private_dirty:已改写的私有页面页面
> referenced:标记为已经访问的内存大小
> anonymous:匿名内存数据,在文件系统中没有相应的“储备”文件
> swap:存在于交换分区的数据大小