查看linux系统的负载
在windows下我们遇到卡顿和高负载的时候经常使用任务管理器来查看电脑的使用情况,linux下同样有相似的功能,linux下查看负载的主要命令有下面一些:
ps:用于报告当前系统的进程状态
- ps -aux显示所有进程
- ps -aux | grep xxx 过滤出要查看的进程
[root@VM-4-16-centos king]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 52956 4052 ? Ss May22 0:16 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S May22 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< May22 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S May22 0:02 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S May22 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S May22 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S May22 0:17 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< May22 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S May22 0:00 [watchdog/0]
(部分输出)
其中:
USER:用户
PID:进程的id
%CPU:CPU使用率
%MEM:内存使用率
VSZ:虚拟内存
RSS:物理内存
TTY:终端
STAT:状态
START:开始运行时间
TIME:cpu使用时间
COMMAND:使用了什么命令
进程杀死命令
终止一个进程
- kill【选项】【参数】
- 选项:-1强制重启
-9强制杀死
- 参数:pid进程编号
top:进程状态显示和控制,每5s中自动刷新一次(动态显示)
[root@VM-4-16-centos ~]# top
top - 14:03:48 up 13 min, 2 users, load average: 0.00, 0.03, 0.04
Tasks: 91 total, 1 running, 88 sleeping, 2 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3782868 total, 3361148 free, 175688 used, 246032 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3381272 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
292 root 20 0 0 0 0 S 0.3 0.0 0:00.01 jbd2/vda1-8
1 root 20 0 44472 3856 2588 S 0.0 0.1 0:01.30 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
(部分输出)
uptime :命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间
目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
[root@VM-4-16-centos ~]# uptime
14:06:07 up 15 min, 2 users, load average: 0.00, 0.01, 0.04
free : 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内
存缓冲区
[root@VM-4-16-centos ~]# free
total used free shared buff/cache available
Mem: 3782868 171520 3364676 584 246672 3385432
Swap: 0 0 0
空闲内存:available = free + buffer(缓冲) + cache(缓存)
mpstat :CPU核状态
有时候使用该命令会出现-bash: mpstat: command not found
这是因为没有安装这个命令我们只需要安装这个命令
yum install -y sysstat
(centos)
[root@VM-4-16-centos ~]# mpstat
Linux 3.10.0-1160.62.1.el7.x86_64 (VM-4-16-centos) 06/12/2022 _x86_64_ (2 CPU)
02:10:09 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
02:10:09 PM all 1.77 0.00 0.88 0.43 0.00 0.01 0.00 0.00 0.00 96.91
其中:
CPU 显示的是某个CPU 还是全部CPU all=全部
%usr 表示用户所有使用的CPU百分比
%nice 表示使用 nice 值的 CPU 的百分比。
%sys 表示内核进程使用的 CPU 百分比。
%iowait 表示等待进行 I/O 所使用的 CPU 时间百分比。
%irq 表示用于处理系统中断的CPU百分比
%soft 表示用于软件中断的CPU百分比
%steal 虚拟机强制CPU等待的时间百分比
%guest 虚拟机占用CPU时间的百分比
%gnice CPU运行niced guest虚拟机所花费的时间百分比
%idle CPU的空闲时间的百分比
ifstat : 网卡网络状态
[root@VM-4-16-centos ~]# ifstat
#kernel
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate
RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
lo 10 0 10 0 1360 0 1360 0
0 0 0 0 0 0 0 0
eth0 8262 0 7964 0 3207K 0 2064K 0
0 0 0 0 0 0 0 0
df :查看磁盘的使用率
[root@VM-4-16-centos ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1879848 0 1879848 0% /dev
tmpfs 1891432 24 1891408 1% /dev/shm
tmpfs 1891432 560 1890872 1% /run
tmpfs 1891432 0 1891432 0% /sys/fs/cgroup
/dev/vda1 61795096 3303936 55874496 6% /
tmpfs 378288 0 378288 0% /run/user/0
iostat:主要用来查看磁盘使用的情况
[root@VM-4-16-centos ~]# iostat
Linux 3.10.0-1160.62.1.el7.x86_64 (VM-4-16-centos) 06/12/2022 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.29 0.00 0.69 0.30 0.00 97.72
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 14.66 233.97 149.57 401606 256744
scd0 0.08 4.22 0.00 7248 0
(显示所有设备的负载情况)
其中:
%usr 表示用户所有使用的CPU百分比
%nice 表示使用 nice 值的 CPU 的百分比。
%system 表示内核进程使用的 CPU 百分比。
%iowait 表示等待进行 I/O 所使用的 CPU 时间百分比。
%steal 虚拟机强制CPU等待的时间百分比
%idle CPU的空闲时间的百分比
进程的挂起
对于shell来说执行程序产生的进程分为前台进程和后台进程
执行一个程序如果需要把他变成后台进程在执行命令时后面加&
- CTRL+z 将正在运行的进程挂起
jobs 查看被挂起的进程
fg 【挂起进程的编号】把挂起的进程调至前台继续执行
bg 【挂起进程的编号】把挂起的进程调至后台执行