目录
1. 程序
-
程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。
-
用于描述进程要完成的功能,是控制进程执行的指令集。
程序和进程的关系
- 程序
- 保存在硬盘、光盘等介质中的可执行代码和数据
- 静态保存的代码
- 进程
- 在CPU及内存中运行的程序代码
- 动态执行的代码
- 父、子进程
- 每个程序可以创建一个或多个进程
2. 进程
2.1 进程是什么?
运行中程序的副本,被载入内存的指令集合,资源分配的单位
- 进程ID(Process ID,PID)号码被用来标记各个进程
- 通常从执行进程的用户来继承
- 存在生命周期
- 由父进程创建
进程创建:
- init:第一个进程,centos 7的进程为systemd
- 进程:由父进程创建,有数据写入子进程需要新的内存空间
2.2 进程特征
-
动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
-
并发性:任何进程都可以同其他进程一起并发执行
-
独立性:进程是系统进行资源分配和调度的一个独立单位
-
结构性:进程由程序、数据和进程控制块三部分组成
面试题 如何查看一个程序是多线程还是单线程?
pstree
grep -i threads /proc/进程的PID/status
prtstat 进程PID号
2.3 进程状态
- 创建状态:从硬盘拷贝到内存中的状态
- 就绪状态:进程准备好,排队状态,等待分配到cpu处理
- 执行状态:进程被调度后,进入执行状态
- 阻塞状态:进程由于一些事件(如I/O请求)无法运行,进程受到阻塞
- 终止状态:任务执行结束
进程更多状态:
运行态:running
就绪态:ready
睡眠态:可中断(interruptable)、不可中断(uninterruptable)
停止态:stopped,暂停于内存,只能手动启动
僵死态:zombie,僵尸态,结束进程,父进程不回收子进程
2.4 进程分类
进程类型
- 守护进程:只要系统在就在,与终端无关
- 前台进程:跟终端相关,通过终端启动
3. 查看进程信息
3.1 查看进程信息ps命令
-
ps命令(process state),可以查看进程当前状态的快照
- 查看静态的进程统计信息
[root@localhost ~]#ps aux #可以查看系统中所有的进程,当前状态,不会刷新
命令支持三种:长格式、短格式、unix风格
常用选项
a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程信息。
-e:显示系统内的所有进程信息。
-l:使用长(Long)格式显示进程信息。
-f:使用完整的(Full)格式显示进程信
k|--sort 属性 对属性排序,属性前加 - 表示倒序 ps aux k -%cpu
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
3.2 查看进程信息top命令
- top命令
- 查看动态的进程排名信息
[root@localhost ~]#top
top 即任务管理器 实时的
大部分系统信息都可以使用top来看
不建议在top中直接按k,想以什么排序就直接在top中按首字母
按小写l隐藏第一行
按数字1显示cpu
m命令进度条显示
选项
-d:秒数,指定top命令几秒更新一次,默认3秒
-b:使用批处理模式输出,一般和"-n"选项合用,用于把 top 命令重定向到文件中
-n:次数,用于指定 top 命令执行的次数。一般和"-"选项合用;
-p:进程PID:仅查看指定 ID 的进程
-s:使top命令在安全模式中运行,避免在交互模式中出现错误
-u:用户名:只监听某个用户的进程
面试题
top的cpu在第几行?
第三行为 CPU 信息,具体内容如表
CPU 信息,具体内容如表
内 容 | 说 明 |
---|---|
Cpu(s): 0.1 %us | 用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率 |
0.1%sy | 系统模式占用的 CPU 百分比 |
0.0%ni | 改变过优先级的用户进程占用的 CPU 百分比 |
99.7%id | 空闲 CPU 占用的 CPU 百分比 |
0.1%wa | 等待输入/输出的进程占用的 CPU 百分比 1 |
0.0%hi | 硬中断请求服务占用的 CPU 百分比 |
0.1%si | 软中断请求服务占用的 CPU 百分比 |
0.0%st | st(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比 |
3.3 查看进程信息pgrep命令
- pgrep命令
- 根据特定条件查询进程PID信息,过滤进程名,过滤出想要的信息
查看指定的进程
-U:指定用户
-l: 显示进程名
-a:显示完整格式的进程名
-P pid:显示指定进程的子进程
[root@localhost ~]#pgrep -l "log" #-l显示进程名
410 xfs-log/dm-0
600 xfs-log/sda1
700 systemd-logind
701 rsyslogd
740 abrt-watch-log
741 abrt-watch-log
[root@localhost ~]#pgrep -l -U 特定用户 -t 指定终端 #-U指定特定用户 -t指定终端
3.4 命令进程树pstree命令
- pstree命令
- 以树形结构列出进程信息
常用选项
-a:显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p:显示PID
-T:不显示线程thread,默认显示线程
-u:显示用户切换
-H pid:高亮显示指定进程及其前辈进程
[root@localhost ~]#pstree -aup #-a:显示完整信息 -u:列出对应用户名 -p:列出对应ID号
3.5 查看进程信息prtstat命令
prtstat 19204
五大性能:
1. 内存 free top
2. 磁盘
- 剩余量 df lsblk fdisk -l
- io读写性能 dd iostat vmstat iotop
3. cpu 使用率
- top(实时)
- ps(静态)
4. 网络 iftop
系统版本:cat/etc/redhat-release
ip地址:ifconfig
内核版本:uname -r
5. kill -9
killall
标签:查看,top,信息,命令,任务,计划,进程,CPU
From: https://www.cnblogs.com/LJ69/p/17586412.html