【linux学习笔记】ps top 查看的静态命令和动态命令
查看进程的静态命令ps 和动态命令top
学习书籍《鸟哥的LINUX私房菜 基础学习篇 (第四版)》
查看进程一共三个命令:ps , top, pstree
- ps: 静态查看
- top: 动态查看
- pstree: 查看进程树之间的关系 (本篇暂未记录)
ps
常用:
ps aux 查看系统所有进程
ps -lA 同ps aux作用
ps axjf 连同部分进程树的状态
ps -l 只查看自己bash进程
选项与参数:
-A : 所有进程均显示出来
-u: 有效使用者相关的进程
x: 通常与a这个参数一起使用,列出较完整信息
l: 长格式输出
j: 任务的格式(jobs format)
-f: 做一个更为完整的输出
选项前加不加-(减号),ps -l
和ps l
显示如下:
执行ps aux
和ps -aux
除了最后一行它们自己本身命令显示的差异外也是一样的。
书里没写有无减号的意义 但执行命令输出暂时看起来没有太大查别。
ps -l 的输出列解释:
#只查看自己当前bash此次登录的PID以及相关信息
[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 2032576 2032558 0 80 0 - 55840 - pts/0 00:00:00 bash
4 R 0 2033289 2032576 0 80 0 - 56589 - pts/0 00:00:00 ps
F: process flags 进程标识,说明这个进程的权限,常见号码:4(表示此进程权限为root),1(表示此子进程仅执行复制(fork)而没有实际执行(exec))
S: STAT 进程状态,主要状态有:
R(Running):进程在运行中
S(Sleep):睡眠状态(idle即空闲状态),但可以被唤醒(signal)
D: 不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况
T(stop):停止状态,可能是在任务控制(后台暂停)或跟踪(traced)状态。
Z(Zombie):僵尸状态,进程已终止但却无法被删除至内存外。
UID/PID/PPID:此进程被该UID所拥有/ 此进程的PID号码/ 此进程的父进程PID号码)
C:CPU使用率,单位百分比
PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级。数值越小表示越先被执行。
ADDR/SZ/WCHAN:都与内存有关。ADDR为kernel function,表示该进程在内存的哪个部分,如果是running的进程,则显示-;SZ表示此进程用掉多少内存;WCHAN:表示目前进程是否在运行,-表示在运行中。
TTY:登录者的终端位置,若为远程登录则使用动态终端接口名称pts/n。
TIME:此进程实际花费CPU运行的时间。
CMD:command缩写,表示造成此进程的触发命令是什么。
所以上述输出的
[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 2032576 2032558 0 80 0 - 55840 - pts/0 00:00:00 bash
4 R 0 2033289 2032576 0 80 0 - 56589 - pts/0 00:00:00 ps
表示:
bash的进程属于UID为0的用户,状态为睡眠,之所以为睡眠是因为它触发了ps(状态为run)。此进程PID为2032576,优先执行顺序为80,执行bash所获取的终端接口为pts/0,运行状态为-(running)。
ps aux的输出列解释:
USER: 该进程属于所属用户账号;
PID:进程的进程ID;
%CPU:进程使用掉的CPU资源百分比;
%MEM:进程所占用的物理内存百分比;
VSZ:进程使用掉的虚拟内存量(KB);
RSS:进程占用的固定内存量(KB);
TTY:进程在哪个终端上面运行,若与终端无关则显示?(问号)(如systemd进程),若为pts/0等表示由网络连接进入主机的进程;
STAT: 该进程目前的状态,与ps -l的S标识相同(R/S/T/Z);
START:该进程被触发启动的时间;
TIME:该进程实际使用CPU运行的时间;
COMMAND:该进程的实际命令是什么;
一般来说 ps aux 会按照PID的顺序来排序显示。
找出与cron与rsyslog这两个服务有关的PID号码:
[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps aux|egrep '(cron|rsyslog)'
root 1240 0.0 1.7 679868 36024 ? Ssl 2022 9:19 /usr/sbin/rsyslogd -n
root 1247 0.0 0.0 223116 1920 ? Ss 2022 0:04 /usr/sbin/crond -n
root 2033386 0.0 0.0 221528 860 pts/0 R+ 17:37 0:00 grep -E --color=auto (cron|rsyslog)
使用ps aux|egrep ‘正则表达式服务名’ 来模糊查找对应的进程信息
僵尸进程:该进程应该已经执行完毕,或是应该要终止了,但是该进程的父进程却无法完整地将进程结束掉,造成该进程一直存在内存当中。如果你发现某个进程CMD后面跟着<defunct>
时,就代表该进程是僵尸进程。
产生场景:系统不稳定容易造成;程序写的不好;用户操作习惯不良等;
top 动态查看进程
相对于ps是选取一个时间点的进程状态,top则可以持续监测进程运行的状态。
top [-d 数字] | top [-bnp]
选项与参数:
-d: 后面接秒数,表示整个进程姐妹更新的秒数,默认是5秒。
-b: 以批量的方式执行top,通常会搭配> 文件 将结果输出到文件。
-n: 与-b搭配,表示需要执行及此top的输出结果。
-p: 指定某些个PID来执行查看监测。
man top可以查看更多说明。
查看某个进程的每隔2s的实时状态:top -d 2 -p PID
命令:
[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# $$ 表示查看当前bash的PID
-bash: 2032576: command not found
[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# top -d 2 -p 2032576
输出:
top - 17:56:18 up 53 days, 2:02, 1 user, load average: 0.04, 0.01, 0.00
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 1.0 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.5 hi, 0.0 si, 0.0 st
MiB Mem : 1968.8 total, 178.3 free, 1112.4 used, 678.1 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 705.5 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2032576 root 20 0 223360 4860 3424 S 0.0 0.2 0:00.03 bash
top输出信息说明:
第一行(top…):这一行显示的信息分别为:
- 目前的时间,即 17:56:18;
- 开机到目前为止所经过的时间,即up 53 days;
- 已经登录系统的用户人数,即 1 user;
- 系统在1,5,15分钟的平均任务负载。代表1,5,15分钟,系统平均要负责运行几个进程(任务)的意思。数值越小代表系统越闲置,若高于1就要注意你的系统进程是否太过于频繁了。
第二行(Task…):目前进程总量,和目前各状态下进程的数量统计;要注意最后那个zombie的那个数值,如果不是0,要排查的。
第三行(%Cpus…):显示CPU的整体负载。wa表示I/O wait
PR:Priority的简写 进程的优先执行顺序 越小越先被执行
NI:Nice的简写,与Priority有关,也是越小越先被执行
%CPU:CPU的使用率
%MEM:内存的使用率;
TIME+:CPU使用时间的累加;
top中的命令
top默认使用CPU使用率(%CPU)作为排序的依据。
如果想使用内存使用率排序,则可以按下M(注意大写的),若要恢复则按下P(也是大写的)。退出top,按下q。
排序的作用,比如:如果想要找出最消耗CPU资源的进程,使用top,然后top当中按下P,就可以很快知道。
我觉得 ps aux 和 top 可以类比为 cat 和 tail -f ,一个静态查看,一个动态查看。
【linux学习笔记】ps top 查看的静态命令和动态命令相关推荐
- Linux学习笔记(一)(服务器环境搭配 常用命令 文件属性)
Linux学习笔记(一) 概述 Linux发行版 Linux应用 Linux系统运行级别 远程环境配置 连接服务器 安装宝塔 配置环境 测试 测试连接Tomcat 测试访问网站 测试上传 学习Linu ...
- Linux学习笔记(四)之查看登录用户
1.在多用户操作系统中系统管理员为了系统管理的需要和系统安全,通常需要了解当前是什么用户登录系统.有多少用户登录系统.这些用户在做什么.普通用户之间如果要进行通信交流时,也需要知道对方是否已经登录上系 ...
- Linux学习笔记016---CentOS7虚拟机设置使用静态IP上网_配置集群的时候可以用
JAVA技术交流QQ群:170933152 注意这里: 按下面的装完以后,可能本地ping不通centos虚拟机,这个时候:可以这样设置一下: 到控制面板,找到网络VMware Network Ada ...
- Linux学习笔记009---Centos7安装vim ifconfig wget tree等基础命令
JAVA技术交流QQ群:170933152 安装wget: CentOS wget是一个从网络上自动下载文件的自由工具.它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是 ...
- linux给数据库重命名,Linux学习笔记:mv移动或文件重命名
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...
- Linux学习笔记(自用)
Linux学习笔记(自用) 该笔记由尚硅谷的"3天上手LInux"视频整理而成,若有侵权,请联系作者删除 文章目录 Linux学习笔记(自用) 1. 概述 2. 下载 3.文件与目 ...
- Linux命令篇 linux命令大全简洁明了 linux学习笔记
Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...
- LINUX学习笔记共五部分
LINUX学习笔记1--LINUX系统命令 1. 界面切换: a) 进入字符界面:按住ctrl+alt+F1: 1. 首先需要进入用户登入,输入用户名和 ...
- Linux中常用的文件目录,Linux学习笔记2——Linux中常用文件目录操作命令
ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...
最新文章
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
- 一首歌的时间看懂荷兰三色旗问题
- 欢乐纪中某A组赛【2019.7.6】
- SpringMVC 实例 --非注解【过时的,留作回忆】
- python自然语言处理学习笔记二
- fpga学习之vga驱动
- Selenium查找元素
- windows7无法登陆网络上的计算机,win7电脑网络连接显示感叹号无法上网怎么处理...
- Shiro session过期跳转到登录页面问题
- 详细SpringBoot教程之入门(一)
- python语言属于科学计算语言吗_python语言属于( )
- 手机APP爬虫技巧(Fiddler+雷电模拟器进行APP抓包)
- win10系统sqlserver2000数据库问题
- 问题 I: decimal
- 如何解决WIN10环境下 Raid 模拟器遇到乱码问题
- Java核心编程(22)
- 从自签名证书到wireshark解密https
- 关于Python爬虫之获取海量表情包+存入数据库+搭建网站通过关键字查询表情包
- 京东文件存储服务器,紫晶存储智能家庭云服务器登录中国移动和彩云,首个京东官方旗舰店助力消费者业务...
- 一文读懂开源日志管理方案 ELK 和 EFK 的区别