Linux----进程的查看、调度

一、进程查看

1、进程概念

  • 计算机进行资源调用的最小单位

2、查看当前终端的进程

 [root@localhost ~]# ps          //只能查看当前终端的进程
    PID(进程ID) TTY(进程运行的终端名)          TIME(消耗多少时间的CPU) CMD(进程名)
   1835                  pts/0               00:00:00            bash
   5715                  pts/0               00:00:00            ps

3、查看所有进程

 [root@localhost ~]# ps aux  | less      //查看所有终端,所有用户
 USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 root          1  0.0  0.4 125736  4300 ?        Ss   17:05   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
 root          2  0.0  0.0      0     0 ?        S    17:05   0:00 [kthreadd]
 root          4  0.0  0.0      0     0 ?        S<   17:05   0:00 [kworker/0:0H]
 root          6  0.0  0.0      0     0 ?        S    17:05   0:00 [ksoftirqd/0]
 .
 .
  1. RSS 物理内存集

  2. 真正消耗掉的物理内存值

  3. VSZ 虚拟内存集

  4. 物理内存、共享内存、swap(可能,用就加上,不用不加)分区大小之和

  5. 共享内存

  6. 实现进程间的相互通信

  7. 查看内存容量

 [root@hosta ~]# free -m
               total        used        free      shared  buff/cache   available
 Mem:           3932         111        3686          11         133        3614
 Swap:          2047           0        2047
  1. 进程状态

    • CPU按时间切片调度执行多个任务/进程

    • R

      • running:运行状态

    • S

      • 可中断的睡眠状态

    • D

      • 不可中断的睡眠状态

    • T

      • 终止状态

    • Z

      • 僵尸进程

      • 当进程被销毁时,父进程没有办法回收内存资源

    • 模拟僵尸进程

 [root@hosta ~]# yum install httpd
 httpd-2.4.6-97.el7.centos.2.x86_64
 ​
 [root@hosta ~]# systemctl start httpd
 ​
 # kill -19  父进程ID               // 暂停进程的运行 
 ​
 # kill -18 父进程ID                // 恢复父进程的运行
 ​
 # kill 子进程ID                    // 不标准杀死进程
 ​
 # kill -9 子进程ID                 // 标准杀死进程
 ​
  1. 查看进程树

 [root@hosta ~]# pstree 
 systemd─┬─NetworkManager───2*[{NetworkManager}]
         ├─VGAuthService
         ├─agetty
         ├─auditd───{auditd}
         ├─crond
         ├─dbus-daemon
         ├─irqbalance
  1. 获取进程ID

 [root@hosta ~]# pidof vim
 9580
 [root@hosta ~]# pgrep vim
 9580

二、动态查看进程

1、top

  • P

    • 按照CPU使用率排序

  • M

    • 按照内存使用率排序

 [root@localhost ~]# top
 top - 22:52:43 up  5:47,  3 users,  load average: 0.00, 0.01, 0.05
 Tasks: 171 total,   2 running, 169 sleeping,   0 stopped,   0 zombie
 %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
 KiB Mem :   995748 total,   140228 free,   409340 used,   446180 buff/cache
 KiB Swap:  1048572 total,  1047796 free,      776 used.   423968 avail Mem 
 ​
    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                          
   8729 root      20   0  162120   2316   1596 R  0.7  0.2   0:00.17 top                                                              
      1 root      20   0  125868   4388   2656 S  0.0  0.4   0:03.77 systemd                                                          
      2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd  

三、查看主机性能状态

1、CPU

  • 查看CPU平均负载

    • 平均1分钟、5分钟、15分钟的负载值

 [root@localhost /]# uptime
  23:07:37 up  6:02,  3 users,  load average: 0.00, 0.01, 0.05
[root@hosta ~]# top 
top - 15:00:51 up  3:59,  3 users,  load average: 0.00, 0.01, 0.04

  • 查看CPU使用率

# top
%Cpu0  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
  • 数字1 显示每个CPU的使用率

  • us

    • 用户进程占用的CPU百分比

  • sy

    • 系统进程占用的CPU百分比

  • id

    • 空闲CPU 所占用的百分比

[root@hosta ~]# mpstat 1 3
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

03:38:14 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:38:15 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
03:38:16 PM  all    0.00    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.75
03:38:17 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:     all    0.00    0.00    0.08    0.00    0.00    0.00    0.00    0.00    0.00   99.92

2、内存

# top
KiB Mem :  4026384 total,  3704136 free,   126636 used,   195612 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  3659052 avail Mem 
[root@hosta ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3932         123        3617          11         191        3573
Swap:          2047           0        2047
  • 动态查看内存使用率

[root@hosta ~]# vmstat 1 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 144936    164 3759652    0    0     2   245   11   15  0  0 100  0  0
 0  0      0 144904    164 3759652    0    0     0     0   52   61  0  0 100  0  0
 0  0      0 144912    164 3759652    0    0     0     0   51   69  0  0 100  0  0
 0  0      0 144912    164 3759652    0    0     0     0   56   60  0  0 100  0  0
 1  0      0 144912    164 3759652    0    0     0     0   32   47  0  0 100  0  0

3、硬盘

  • 查看磁盘容量

[root@hosta ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        18G  1.9G   16G  11% /
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   12M  2.0G   1% /run
  • 硬盘IO

[root@hosta ~]# iostat 1 3
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.16    0.03    0.00   99.80

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.52         9.58      1046.38     150181   16402101
scd0              0.00         0.07         0.00       1028          0
dm-0              2.49         8.79      1046.25     137726   16400053
dm-1              0.01         0.16         0.00       2460          0
    • kB_read/s

      • 每秒读取的字节数

    • KB_wrtn/s

      • 每秒写入的字节数

4、网卡

  • 查看网卡带宽

[root@hosta ~]# ethtool ens33 | grep -i "speed"
	Speed: 1000Mb/s
  • 查看网卡IO

[root@hosta ~]# sar -n DEV 
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

09:04:16 AM       LINUX RESTART

09:10:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
09:20:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:20:01 AM     ens33      0.85      0.57      0.07      0.07      0.00      0.00      0.00
09:30:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:30:01 AM     ens33      1.80      1.08      0.15      0.13      0.00      0.00      0.00
09:40:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:40:01 AM     ens33      0.94      0.58      0.08      0.09      0.00      0.00      0.00
09:50:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM     ens33      0.24      0.19      0.02      0.02      0.00      0.00      0.00
    • rxpck/s

      • 每秒接收的数据包个数

    • txpck/s

      • 每秒发送的数据包个数

    • rxkB/s

      • 每秒接收的数据量,单位KB

    • txkB/s

      • 每秒发送的数据量,单位KB

四、命令总结

1、查看进程:

//查看所有进程
[root@localhost ~]# ps aux 		#不区分终端,显示所有用户的所有进程

[root@localhost ~]# ps -efl   #详细显示所有进程的UID,PPID,C与STIME栏位

//通过进程树来查看进程的“父子关系”
[root@localhost ~]# pstree

//通过top命令动态查看进程
[root@localhost ~]# top

2、查看进程PID

//通过进程名字来获取进程PID
[root@localhost ~]# pidof httpd
8554 8553 8552 8551 8550 8549

//使用grep过滤指定进程
[root@localhost ~]# ps -ef | grep "httpd"

3、查看进程端口

//netstat有很多选项,这里只列出常用的
[root@localhost ~]# netstat -antlp

4、查看主机性能

//查看CPU
[root@localhost ~]# mpstat 1
[root@localhost ~]# uptime
[root@localhost ~]# top

//查看内存
[root@localhost ~]# vmstat 1
[root@localhost ~]# top
[root@localhost ~]# free -m

//查看硬盘
[root@localhost ~]# iostat 1
[root@localhost ~]# df -Th

//查看网卡,查看网卡带宽
[root@localhost ~]# sar -n DEV
[root@localhost ~]# ethtool ens33 | grep -i "speed"

五、进程调度

1、什么是调度

  • 控制进程的运行方式

2、通过发送特定信号

//kill [-信号名称\编号]  进程PID
[root@localhost ~]# kill -l			//-l选项查看所有信号
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
.....................略...........................	
//最常用的有三个,
15) SIGTERM		//正常结束进程 ,可省略不写,默认就是15 
9) SIGKILL		//强制结束进程
1) SIGHUP		//让这个进程重新读取他的配置文件,并不会重启,只是让配置生效
18) SIGCONT		//继续进程
19) SIGSTOP		//停止进程

3、控制进程前台、后台运行

  • 在后台执行任务

[root@localhost ~]# nohup dd if=/dev/zero of=/opt/a.txt ps=10M count=200 &
[1] 2938
[root@localhost ~]# nohup: 忽略输入并把输出追加到"nohup.out"
  • 将正在执行的任务放入后台

ctrl +z
  • 查看后台任务

[root@localhost ~]# jobs -l
  • 将任务调回前台

fg [任务编号]
  • 在后台继续运行任务

bg [任务编号]

六、相关知识

1、防火墙与SELinux

  • 防火墙用于过滤不安全的网络连接,SELinux用于限制应用程序访问系统资源的权限。两者都是Linux中的重要安全保障机制。

  • 所以要在配置好虚拟机后关闭防火墙和SELinux

  • Firewall

[root@localhost ~]# systemctl stop firewall.service
Failed to stop firewall.service: Unit firewall.service not loaded.
[root@localhost ~]# systemctl disable firewall.service
Failed to execute operation: No such file or directory
[root@localhost ~]# systemctl mask firewalld.service 
Created symlink from /etc/systemd/system/firewalld.service to /dev/null.
  • SELinux

[root@localhost ~]# getenforce 
Disabled

[root@localhost ~]# vim /etc/sysconfig/selinux 

2、输出重定向

你可能感兴趣的:(linux,bash,运维)