linux进程管理--ps/top

一、进程介绍
1.什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
2.进程的生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。所有进程都是第一个系统进程(操作系统)的后代。
3.进程状态产生的原因
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程 。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

4.进程状态
常用状态:
R-running
T-stopping
S-sleeping(休眠)
Z-zombie(非正常情况卡死(未响应)
X死掉,退出的进程
在这里插入图片描述
二、静态查看进程ps
1.ps aux输出字段含义:

[root@qianfeng ~]# ps aux |   head  -2
USER   PID %CPU %MEM    VSZ   RSS    TTY    STAT START   TIME COMMAND
root        1      0.0       0.6   128096   6708    ?         Ss    16:20      0:01  /usr/lib/systemd/systemd

字段含义:

  • USER: 运行进程的用户
  • PID: 进程ID
  • %CPU: CPU占用率
  • %MEM: 内存占用率
  • VSZ: 占用虚拟内存
  • RSS: 占用实际内存
  • TTY: 进程运行的终端
  • STAT: 进程状态
  • START: 进程的启动时间
  • TIME: 进程占用CPU的总时间
  • COMMAND: 进程文件,进程名

2.进程排序:

[root@localhost ~]# ps aux --sort -%cpu   //以cpu占比降序排列

3.查看进程的父子关系

[root@localhost ~]# ps -ef  
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 10:37 ?        00:00:03 /usr/lib/systemd/systemd --switched-root --sys
root          2      0  0 10:37 ?        00:00:00 [kthreadd]
root          4      2  0 10:37 ?        00:00:00 [kworker/0:0H]
root          6      2  0 10:37 ?        00:00:01 [ksoftirqd/0]
root          7      2  0 10:37 ?        00:00:00 [migration/0]

4.自定义显示字段

[root@localhost ~]# ps axo user,pid,ppid,command | head -3  //自定义显示用户名,pid,ppid,进程文件
USER        PID   PPID COMMAND
root          1      0 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0 [kthreadd]

三、动态查看进程top
1.输出字段含义:

[root@localhost ~]# top -d 1 -p 1206  //一秒刷新一次指定进程1206的动态信息

(1)上半部分:
op - 19:50:46 up 9:12, 6 users, load average: 0.43, 0.16, 0.09
程序名-系统时间 运行时间 登录用户数 cpu负载:1分钟 5 15
Tasks: 218 total, 2 running, 216 sleeping, 0 stopped, 0 zombie
总进程数 运行1 睡眠272 停止0 僵死0
%Cpu(s): 6.0 us, 3.6 sy, 0.0 ni, 90.0 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
cpu使用占比 us用户 sy系统 ni优先级 id空闲 wa等待 hi硬件 si软件 st虚拟机
KiB Mem : 2027940 total, 84264 free, 880448 used, 1063228 buff/cache
物理内存k 总内存 空闲内存 使用内存 缓存硬盘内容
KiB Swap: 2097148 total, 2093044 free, 4104 used. 927524 avail Mem
交换分区(虚拟内存)(硬盘的一部分空间,存放常用数据)
(2)下半部分:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程号 用户 优先级 申请内存 实占内存 共用内存 状态 cpu占比 内存占比 占时 程序名
2.top技巧

[root@qianfeng ~]# top    //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
[root@localhost ~]# top -d 1 -p 1206      //一秒刷新一次指定进程1206的动态信息。

四、信号控制进程kill
[root@qianfeng ~]# kill -l //列出所有支持的信号
常用信号:

  1. SIGHUP 重新加载配置
  2. SIGINT 键盘中断Ctrl+C
  3. SIGQUIT 键盘退出Ctrl+\,类似SIGINT
  4. SIGKILL 强制终止,无条件
  5. SIGTERM 终止(正常结束),缺省信号
  6. SIGCONT 继续
  7. SIGSTOP 暂停
    20)SIGTSTP 键盘暂停Ctrl+Z
    案例:
[root@localhost ~]# ps aux | grep vim
root      17219  0.2  0.2 149716  5540 pts/1    S+   20:07   0:00 vim 1.txt
root      17252  0.0  0.0 112728   972 pts/2    R+   20:07   0:00 grep --color=auto vim
[root@localhost ~]# kill  -15  17219
[root@localhost ~]# kill  -15  17219
bash: kill: (17219) - 没有那个进程

五、进程优先级nice
1.Linux 进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。
在这里插入图片描述
2.在top中显示的优先级有两个,PR值和nice值:
NI: 实际nice值。可控值-20----19,数值越小优先级越高。
PR(+20): 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

[root@localhost ~]# ps axo pid,command,nice --sort=-nice      //指定展示序列优先级由低到高。  sort排序
  PID COMMAND                       NI
    32 [khugepaged]                 19
   895 /usr/sbin/alsactl -s -n 19   19
  2589 /usr/libexec/tracker-extrac  19
  2590 /usr/libexec/tracker-miner-  19
  2596 /usr/libexec/tracker-miner-   -
  2607 /usr/libexec/tracker-miner-   -
    31 [ksmd]                        5
   892 /usr/libexec/rtkit-daemon     1
     1 /usr/lib/systemd/systemd --   0
     2 [kthreadd]                    0
     6 [ksoftirqd/0]                 0

3.启动具有不同nice级别的进程
默认情况下,启动进程时,通常会继承父进程的 nice级别,默认为0。

[root@localhost ~]# ps axo pid,command,nice | grep sleep   //显示睡眠进程的pid,程序名,优先级
 17804 sleep 5000                    0
 17851 sleep 60                      0
 17861 grep --color=auto sleep       0
[root@localhost ~]# nice -n -10 sleep 9999&     //指定程序的优先级
[5] 17874
[root@localhost ~]# renice -5 17804    //修改pid为17804的优先级为-5
17804 (进程 ID) 旧优先级为 0,新优先级为 -5
[root@localhost ~]# ps axo pid,command,nice | grep sleep   //再次查询验证
 17804 sleep 5000                   -5
 17874 sleep 9999                  -10
 17920 sleep 60                      0
 17922 grep --color=auto sleep       0

六、作业控制jobs
4.jobs查看后台进程。作业控制是一个命令行功能,也叫后台运行。
fg:前台进程:是在终端中运行的命令,占领终端。
bg:后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。

[root@localhost ~]# jobs   //查看后台进程
[1]   已停止               top -p 1206 -d 1
[2]+  已停止               top -p 12065 -d 5
[3]-  已停止               top -p 2779 -d 5
[4]   运行中               sleep 5000 &
[5]   运行中               nice -n -10 sleep 9999 &
[6]   运行中               sleep 600000 &
fg不加选项优先调动带“+”,其次为“-”的程序。
[root@localhost ~]# kill  %6   //杀死后台进程6
[6]   已终止               sleep 600000
[root@localhost ~]# fg  5   //调动5至前台运行
nice -n -10 sleep 9999

七、虚拟文件系统
虚拟文件系统:采集服务器自身内核,进程运行的状态信息
CPU信息存储文件:/proc/cpuinfo
查询cpu信息:cat /proc/cpuinfo
内存:/porc/meminfo
查询内存信息:cat /porc/meminfo
内核:/proc/cmdline

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值