top命令

​ 显示系统中进程信息

[root@node0 ~]# top
top - 09:36:45 up 13:39, 3 users, load average: 0.02, 0.03, 0.05
Tasks: 154 total, 2 running, 152 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863252 total, 429280 free, 266972 used, 1167000 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1305808 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6979 root 20 0 746596 43944 15132 S 1.6 2.4 5:24.25 containerd
45301 root 20 0 0 0 0 S 0.5 0.0 0:21.40 kworker/0:0
57660 root 20 0 162012 2332 1624 R 0.5 0.1 0:00.89 top
1 root 20 0 193716 6684 4028 S 0.0 0.4 0:07.68 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:04.19 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.28 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:00.20 ksoftirqd/1
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
17 root rt 0 0 0 0 S 0.0 0.0 0:00.28 watchdog/2
18 root rt 0 0 0 0 S 0.0 0.0 0:00.09 migration/2
19 root 20 0 0 0 0 S 0.0 0.0 0:00.74 ksoftirqd/2
21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H
22 root rt 0 0 0 0 S 0.0 0.0 0:00.26 watchdog/3
23 root rt 0 0 0 0 S 0.0 0.0 0:00.26 migration/3
24 root 20 0 0 0 0 S 0.0 0.0 0:00.25 ksoftirqd/3 首部信息
top -(与uptime结果相同,可按l命令隐藏/显示)
系统当前时间,启动多长时间,登录系统用户个数,平均负载(等待运行的进程队列长度,单核一般不超过3):过去1分钟,5分钟,15分钟 tasks:可用t命令隐藏/显示
任务或线程总数,正在运行任务数,睡眠任务数,停止任务数,僵尸任务数
进程状态:
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped
僵死态:zombie %CPU(s):
us, user : 运行用户进程的时间(未调整nice值的)
sy, system : 运行内核进程的时间
ni, nice : 运行调整过nice值的用户进程的时间
id, idle : 空闲时间
wa, IO-wait : 等待I/O完成花费的时间
hi : 处理硬件中断花费的时间
si : 处理软件中断花费的时间
st : 被虚拟化偷走的时间 KiB Mem :内存使用信息
KiB Swap:swap使用信息 进程显示字段
PID : 进程唯一ID
USER : 任务所有者的有效用户名
PR : 任务的调度优先级。如果您在该字段中看到“rt”,则意味着该任务在实时调度优先级下运行。
NI : 任务的nice值,nice值越小,优先级越高,0表示不会调整优先级
VIRT : 虚拟内存
RES : 常驻内存
SHR : 共享内存
S : 进程状态
D = 不可中断的睡眠态
R = 运行态
S = 睡眠态
T = 停止态
t = 被跟踪停止态
Z = 僵尸态
%CPU : 占用的CPU时间的百分比
%MEM : 占用的MEM时间的百分比
TIME+ : 任务启动以来使用的总CPU时间
COMMAND : 启动任务的命令行或相关程序的名称。可以使用“c”在命令行和名称之间切换。

常用选项:

​ -d:指定刷新时间间隔,不指默认为3秒;

​ -b:以批次方式显示;

​ -n:显示多少批次

​ -u 或 -U: 显示指定用户名 或者 UID的进程

​ -p:显示指定进程号的进程

例:指定1秒刷新,以批次显示显示三次

​ [root@node0 ~]# top -d 1 -b -n 3

常用子命令:

​ 进入top可使用不同的子命令显示不同的效果

首部信息展示:

​ l:隐藏/显示uptime信息

​ t:隐藏/显示tasks及CPU信息

​ m:隐藏/显示内存信息

排序:

​ P:以占据CPU百分比排序;

​ M:以占据内存百分比排序;

​ T:累积占用CPU时间排序

R:反向排序

A:交替模式

用'a'和'w'在4个 窗口间切换。'a'移到后一个窗口,'w'移到前一个窗口。用'g'命令你可以输入一个数字来选择当前窗口

c:显示进程完整的路径和程序名

d/s:修改刷新时间间隔

k:终止指定进程

r:修改nice值

f:设置显示的字段

按空格键选定,带“*”的为要显示的字段

u:显示指定用户的进程

V:以进程树方式显示进程之间的关系

h:显示帮助信息

q:退出

htop命令

​ 与top命令类似,显示更美观,支持使用鼠标直接点击操作

选项:

-d #:指定延迟时间间隔;

-u UserName:仅显示指定用户的进程;

-s COLUME:以指定字段进行排序;

子命令:

l:显示选定的进程打开的文件列表;需要有lsof命令

s:跟踪选定的进程的系统调用;需要有strace命令

t:以层级关系显示各进程状态;

a:将选定的进程绑定至某指定的CPU核心;

dstat命令

​ 用于生成系统资源统计的通用工具

语法:

​ dstat [-afv] [options..] [delay [count]]

dstat默认显示内容:

[root@node0 ~]# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 100 0 0 0|9319B 619k| 0 0 | 164B 612B| 121 246
0 0 100 0 0 0| 0 0 | 60B 882B| 0 0 | 126 254
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 113 241
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 130 249
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 104 229
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 117 242

字段说明:

total-cpu-usage CPU使用率

​ usr:用户进程占用的CPU时间

​ sys:系统进程占用的CPU时间

​ idl:空闲时间

​ wai:等待磁盘I/O花费的时间

​ hiq:硬中断

​ siq:软中断

dsk/total 磁盘统计

​ read:磁盘读

​ write:磁盘写

net/total 网络统计

​ recv :网络收包数

​ send:网络发包数

paging 内存分页统计

​ in: 换入

​ out:换出

注:分页较大说明系统用了大量交换空间,当使用了交换空间时表明内存就不够用

system 系统信息

​ int:中断次数

​ csw:上下文切换次数

注:如果数值较大,表明CPU非常繁忙,存在大量进程等待CPU调度

dstat默认情况为1秒刷新一次数据,一直刷新下去,直至手动终止

常用选项:

​ -l, --load:显示系统负载信息

​ -c,--cpu:显示CPU相关信息

​ -d,--disk:显示磁盘相关信息

​ -g, --page:显示page相关的速率数据

​ -m, --mem:显示MEM的相关统计数据

​ -n, --net:网络接口相关统计数据

​ -p, --proc:进程相关统计数据

​ -r, --io:I/O请求相关统计数据

​ -s, --swap:显示swapped的相关统计数据

​ --tcp:tcp连接信息

​ --udp:udp连接信息

​ --raw:裸套接字

​ --socket:套接字

​ --top-cpu:显示最占用CPU的进程

​ --top-io:显示最占用io的进程

​ --top-mem:显示最占用内存的进程

​ --top-latency:显示延迟最大的进程

ps命令

​ 报告当前的进程快照

使用:

​ ps [options]:

选项风格:

​ 1.UNIX options,需要加-

​ 2.BSD options,不加-

​ 3.GNU long options,需要--

选项:

​ a:所有与终端相关的进程

​ x:所有与终端无关的进程

​ u:以用户为中心组织进程状态信息显示

​ -e:显示所有进程

​ -f:显示完整格式的进程信息

​ -F:显示完整格式的进程信息

​ -H:以层级结构显示进程的相关信息

常用组合:

​ ps aux

​ ps -ef

​ ps -eFH

​ ps -eo/ps axo

​ o field1,field2....:自定义显示字段,以逗号分隔

​ 常用字段有:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

例:

[root@node0 ~]# ps axo user,pid,ni,pri,cmd
USER PID NI PRI CMD
root 1 0 19 /usr/lib/systemd/systemd --system --deserialize 20
root 2 0 19 [kthreadd]
root 3 0 19 [ksoftirqd/0]
root 5 -20 39 [kworker/0:0H]
root 7 - 139 [migration/0]
root 8 0 19 [rcu_bh] [root@node0 ~]# ps -eo user,pid,cmd
USER PID CMD
root 1 /usr/lib/systemd/systemd --system --deserialize 20
root 2 [kthreadd]
root 3 [ksoftirqd/0]
root 5 [kworker/0:0H]
root 7 [migration/0]
root 8 [rcu_bh]
root 9 [rcu_sched]
root 10 [lru-add-drain]
root 11 [watchdog/0]
root 12 [watchdog/1]
root 13 [migration/1]

[root@node0 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 193716 3604 ? Ss Aug23 0:09 /usr/lib/systemd/systemd --system --deserialize 20
root 2 0.0 0.0 0 0 ? S Aug23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Aug23 0:08 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Aug23 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Aug23 0:01 [migration/0]
root 8 0.0 0.0 0 0 ? S Aug23 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Aug23 0:07 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< Aug23 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S Aug23 0:03 [watchdog/0]
root 12 0.0 0.0 0 0 ? S Aug23 0:00 [watchdog/1]

字段说明:

​ USER:进程发起者

​ PID:进程ID

​ %CPU:cup占用

​ %MEM:内存占用

​ VSZ:虚拟内存集

​ RSS:常驻内存集

​ TTY:终端

​ STAT:运行状态

​ R:运行

​ S:可中断睡眠

​ D:不可中断睡眠

​ T:停止

​ Z:僵尸态

​ +:前台进程

​ l:多线程进程

​ N:低优先级进程

​ <:高优先级进程

​ s:session leader

htop/dstat/top/ps命令的使用的更多相关文章

  1. linux top ps 命令

    http://javawind.net/p131 VIRT:virtual memory usage 虚拟内存1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内 ...

  2. 00014 - linux中用top、ps命令查看进程中的线程

    在Linux上显示某个进程的线程的几种方式. 方法一:PS 在ps命令中,“-T”选项可以开启线程查看.下面的命令列出了由进程号为<pid>的进程创建的所有线程. 1.$ ps -T -p ...

  3. 10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  4. 【转】10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  5. 15 GIL 全局解释器锁 C语言解决 top ps

    1.GIL 全局解释器锁:保证同一时刻只有一个线程在运行. 什么是全局解释器锁GIL(Global Interpreter Lock) Python代码的执行由Python 虚拟机(也叫解释器主循环, ...

  6. 10个常用的ps命令总结,参数

    Linux系统中10个常用的ps命令总结 PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态.如果你想不断更新查看的这个状态,可以使用 ...

  7. Linux系统中10个常用的ps命令总结

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在 ...

  8. 如何查看Linux进程详情?(ps命令)

    点击关注上方"开源Linux", 后台回复"读书",有我为您特别筛选书籍资料~ 1. ps是什么? 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是 ...

  9. ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

随机推荐

  1. git 解决 error: failed to push some refs to 'https://github.com/xxxx.git'

    在github远程创建仓库后, 利用gitbash进行提交本地文件的时候出现如下错误 [root@foundation38 demo]# git push -u origin master Usern ...

  2. GET与POST方法和用curl命令执行

    1.超文本传输协议 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信,web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端. HTTP的工作方式是客户机与服务器之间 ...

  3. Navicat创建连接

    https://blog.csdn.net/suprezheng/article/details/90037702 以下是不用创建直接可用的

  4. 南京IT公司

    公司 (排名不分前后,有好的公司可以@我,及时更新) 1.中兴软创 http://www.ztesoft.com/cn/index.html 2.华为 http://www.huawei.com/cn ...

  5. Python面试题: 判断IP地址是否合法

    题目: 给出一个字符串, 判断其是否是是合法的IP(IPv4)地址 思路 将字符串按"."分割成4段得到一个列表 逐个判断列表中的字符串是否数字格式并且在0~255之间, 是在新列 ...

  6. Clion + 树莓派/Ubuntu 远程调试

    Clion进行远程调试 在大三下半学期学习Linux高级编程时,老师布置的作业要在linux机器上进行,当时完成的十分艰苦,调试难受的一匹,当时就萌生了这个想法,因为Jetbrains官方文档的晦涩( ...

  7. 泛目录/泛目录程序/泛目录解析/莲花泛目录解析/寄生虫程序/黑帽SEO

    莲花泛目录程序强大之处: 蜘蛛抓取繁殖新页面,对搜索引擎更加友好采用PHP7语言开发,代码执行率高.蜘蛛抓取目录页面触发繁殖新页面,诱导搜索引擎爬虫爬行更多目录页面, 并且在本地生成缓存页面,搜索引擎 ...

  8. Java并发指南开篇:Java并发编程学习大纲

    Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容. 这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类.当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中 ...

  9. python 找出数组重复的元素

    """ 从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i]与numbers[numbers[i]], 相等就认为找到了重复元素,返回true,否则就 ...

  10. js中的bind方法的实现方法

    js中目前我遇见的改变作用域的5中方法:call, apply, eval, with, bind. var obj = { color: 'green' } function demo () { c ...