Linux学习日记 —— 13.1.1 Linux系统管理-进程管理-进程查看

1、进程简介

进程就是正在运行的一个程序或命令。每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

任何程序只要在运行,就会产生至少一个进程。对于比较复杂的程序,比如apache,运行时,会产生多个进程。

命令产生的进程一般都是临时的,因为大多数命令运行的时间很短,命令结束后,进程就自动终止了。


2、进程管理的作用

1. 判断服务器的健康状态(最主要的作用)。
主要查看CPU的使用率、内存的占用情况。
Windows系统中通过任务管理器查看计算机的健康状态。

2. 查看系统中所有的进程。
查看所有的进程(包括正常进程和异常进程)。
查看它们对系统资源的占用情况。
如果是进程出现了异常,就找出原因,并尽快恢复正常。
如果是病毒进程,不要直接杀死,而是找到它的本体所在,根除本体。

3. 杀死进程。
优先使用正常终止(关闭)进程。
只有当无法正常终止进程时,才考虑使用强制终止进程的方式。


3、查看系统中的所有进程

查看进程的命令为ps。最常见的用法为 ps aux 。
其中,a代表前台进程,x代表后台进程,u代表进程的发起者。

[root@localhost ~]# ps aux
查看系统中所有的进程,使用BSD(Unix)操作系统格式。

说明:由于使用的是Unix格式,所以aux前不能加短横线;
否则,输出结果的第一行会有报错信息,但几乎没有影响。
上述命令的部分输出信息,如下:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   2904  1416 ?        Ss   Jan31   0:01 /sbin/init
每一行代表一个进程。PID为1的进程是init,它是系统启动的第一个进程,是所有其他进程的父进程。
root         2  0.0  0.0      0     0 ?        S    Jan31   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jan31   0:00 [migration/0]

···
共有11列,分别是USER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、STARTTIME、COMMAND 。

说明如下:
USER:进程是由哪个用户产生的。
PID:进程的id,也称作进程号。
%CPU:进程占用的CPU资源的百分比,占用越高,越浪费资源。
%MEM:进程占用的物理内存的百分比,占用越高,越浪费资源。
VSZ:进程占用的虚拟内存的大小,单位KB。
RSS:进程占用的实际物理内存的大小,单位KB。
TTY:进程是在哪个终端中运行的。其中tty1到tty7代表本地控制台终端,tty1到tty6是本地的字符界面终端,tty7是本地的图形界面终端。pts/0-255代表虚拟终端(即远程登录终端)。
STAT:进程的状态。常见的进程状态有:R 正在运行;S 睡眠状态;T 停止状态;s 包含子进程;+ 位于后台。
START:进程是在什么时间启动的。
TIME:进程占用CPU的运算时间,值越大,越耗费资源。
COMMAND:产生进程的命令,也就是进程的全名。
[root@localhost ~]# ps -le      
查看系统中所有的进程,使用Linux标准命令格式。-l代表显示进程的详细信息,-e代表显示所有进程。

它和ps aux的输出结果差不多,只不过没有ps aux显示的直观易懂。故用得较少。
说明:查看系统中所有的进程的命令主要是ps aux。


4、查看服务器的健康状态

[root@localhost ~]# top [选项]
选项: 
-d 秒数:指定top命令每隔几秒更新一次。默认是3秒。
在top命令的交互模式中,可以执行的命令主要有:
? 或 h       显示交互模式的帮助信息。
P       以CPU占用率排序,默认排序。
M       以内存的占用率排序。
N       以进程的PID排序。
R       切换降序排列和升序排序。默认降序。
q       退出。或者用Ctrl+C。
常见用法:
top
查看系统的健康状态。会进入交互模式。
交互模式的部分内容如下:

top - 12:26:46 up 1 day,  13:32,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.7%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   625344k total,   571504k used,   53840k free,    65800k buffers
Swap:  524280k total,        0k used,  524280k free,   409280k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
 4527 root      20   0  2676 1120  888 R  0.3  0.1   0:00.61 top     
    1 root      20   0  2904 1416 1208 S  0.0  0.1   0:01.56 init                                             
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd    
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                     

top命令最重要的输出信息在前五行。


第一行是任务队列信息。
top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00

内容说明
12:26:46系统当前的时间。
up 1 day, 13:32系统的运行时间。本机已连续运行1天13小时32分钟。
2 users当前登录了2个用户(包括本地登录和远程登录)。
load average: 0.00, 0.00, 0.00系统在1分钟、5分钟、15分钟之前的平均负载。对于单核服务器,平均负载小于1时,说明负载较小;如果大于1,说明系统已超出负荷。(四核就以4为标准。)


第二行是进程信息。
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie

内容说明
95 total系统的进程总数。
1 running正在运行的进程数。
94 sleeping睡眠的进程数。
0 stopped正在停止的进程数。
0 zombie僵尸进程数。如果不是0,需要手工检查僵尸进程。

僵尸进程是指进程正在终止,但还没有终止完全。过一会儿再查看,如果终止完全了就没事;否则,需要手工将其终止。


第三行是CPU信息。
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st

内容说明
0.1%us用户占用的CPU百分比。
0.1%sy系统占用的CPU百分比。
0.0%ni改变过优先级的用户进程占用的CPU百分比。
99.7%id空闲CPU的百分比。(最重要)
0.1%wa等待输入/输出的进程占用的CPU百分比。
0.0%hi硬中断请求服务占用的CPU百分比。
0.1%si软中断请求服务占用的CPU百分比。
0.0%ststeal time 虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。


第四行是物理内存信息。
Mem: 625344k total, 571504k used, 53840k free, 65800k buffers

内容说明
625344k total物理内存的总大小,单位KB。
571504k used已使用的物理内存大小。
53840k free空闲的物理内存大小。(最重要)
65800k buffers作为缓冲的内存大小。


第五行是交换分区(swap)信息。
Swap: 524280k total, 0k used, 524280k free, 409280k cached

内容说明
524280k total交换分区(虚拟内存)的总大小,单位KB。
0k used已使用的交换分区的大小。
524280k free空闲的交换分区的大小。
409280k cached作为缓存的交换分区的大小。
对于前五行信息,最主要进行查看的指标有三个:
服务器的平均负载
CPU的空闲率
内存(物理内存)的空闲大小

对于第七行及后面的行,它和ps aux的输出结果类似。


5、查看进程树pstree

[root@localhost ~]# pstree [选项]
选项:
-p  显示所有进程(主进程和子进程)的PID(进程号)。
-u  显示进程的所属用户。
常见用法:
[root@localhost ~]# pstree
init─┬─auditd───{auditd}
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─dbus-daemon───{dbus-daemon}
     ├─dhclient
     ├─httpd───8*[httpd]
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─5*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───bash───pstree
     └─udevd───2*[udevd]

如上,init进程是所有进程的父进程;同时,对于apache的进程(httpd),有1个主进程和8个子进程。
如果想看到更为详细的进程树信息,可以用:
[root@localhost ~]# pstree -p
查看所有进程的进程号。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值