云服务器 ECS Linux 系统负载查询及分析说明 

、服务器出现死机或者卡顿现象分析

云服务器 ECS Linux 系统出现死机或卡顿时,可以通过如下步骤进行整体排查:

  1. 检查服务器进程与服务否占用了过多内存,或者内存没有正常释放,导致出现内存溢出,系统宕机。
  2. 检查 /var/spool/cron 等系统配置中是否有 cron(计划任务、自动任务)在对应时间段内执行。
  3. 检查 Web 服务器的参数是否超过了服务器的性能。比如最大连接数过高等。
  4. 检查进程数是否非常高,导致服务瘫痪,机器假死。
  5. 查看系统日志中是否有异常记录。
  6. 检查磁盘是否有坏块。
  7. 内核消耗过大,查看是否有瞬间资源占用过大的进程或服务。
  8. 查看是否有异常进程,是否存在被攻击或入侵症状。

使用 sar 查看 Linux 系统各项资源使用情况

sar 是System Activity Reporter(系统活动情况报告)的缩写。sar 工具对系统状态进行取样后,通过计算数据和比例来表达系统当前的运行状态。其特点是可以连续对系统取样,获得大量的取样数据。其取样数据和分析结果可以存入文件,所需的负载很小。

sar 是 Linux 系统中较为全面的性能分析工具,可以从多个方面对系统的活动进行监控和报告,包括文件读写情况、系统调用使用情况、串口、CPU 效率、内存使用情况、进程活动及 IPC 有关的活动情况等等。

1. Linux系统默认是没有这个命令的,需要自己安装。

[root@hecs-293015 ~]# yum install sysstat    ##安装
Loaded plugins: fastestmirror
Determining fastest mirrors
base | 3.6 kB 00:00:00 
epel | 4.7 kB 00:00:00 
extras | 2.9 kB 00:00:00 
updates | 2.9 kB 00:00:00 
(1/4): epel/x86_64/group_gz | 99 kB 00:00:00 
(2/4): epel/x86_64/updateinfo | 1.0 MB 00:00:00 
(3/4): epel/x86_64/primary_db | 7.0 MB 00:00:00 
(4/4): updates/7/x86_64/primary_db | 20 MB 00:00:00 
Resolving Dependencies
--> Running transaction check
........
[root@hecs-293015 ~]# systemctl enable --now sysstat  ##开机自启

2. 查看 CPU 负载

[root@hecs-293015 ~]# sar -u 1 5    ##每间隔1秒统计一次CPU的使用情况,总共统计5Linux 3.10.0-1160.53.1.el7.x86_64 (hecs-293015)       03/29/2023     _x86_64_      (2 CPU)

05:01:55   PM   CPU  %user %nice %system %iowait %steal %idle
05:01:56   PM   all  0.00   0.00   0.00   0.00   0.00    100.00
05:01:57   PM   all  6.47   0.00   1.00   0.00   0.00    92.54
05:01:58   PM   all  0.00   0.00   0.00   0.00   0.00    100.00
05:01:59   PM   all  0.50   0.00   0.00   0.00   0.00    99.50
05:02:00   PM   all  0.00   0.00   0.50   0.00   0.00    99.50
Average:        all  1.40   0.00   0.30   0.00   0.00    98.30

显示说明:

%user:用户消耗的 CPU 时间的比例。

%nice:通过 nice 改变了进程调度优先级的进程

%system:系统模式下消耗的 CPU 时间的比例。

%iowait:CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例。

%steal:虚拟机的虚拟 CPU 计算占用的时间比例。

%idle:CPU 空闲时间比例。

3. 查看平均负载

[root@hecs-293015 ~]# sar -q 1 5   ##每间隔1秒统计一次系统负载,总共统计5Linux 3.10.0-1160.53.1.el7.x86_64 (hecs-293015) 03/29/2023 _x86_64_ (2 CPU)

05:31:51 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
05:31:52 PM 0       196      0.02    0.04    0.05     0
05:31:53 PM 0       196      0.02    0.04    0.05     0
05:31:54 PM 0       196      0.02    0.04    0.05     0
05:31:55 PM 0       196      0.02    0.04    0.05     0
05:31:56 PM 0       196      0.02    0.04    0.05     0
Average:    0       196      0.02    0.04    0.05     0

显示说明:

runq-sz:运行队列的长度(等待运行的进程数)。

plist-sz:进程列表中进程(processes)和线程(threads)的数量。

ldavg-1:最后 1 分钟的系统平均负载。

ldavg-5:过去 5 分钟的系统平均负载。

ldavg-15:过去 15 分钟的系统平均负载。

4. 查看内存负载

[root@hecs-293015 ~]# sar -r 1 3       ##每间隔1秒统计一次系统负载,总共统计3次
Linux 3.10.0-1160.53.1.el7.x86_64 (hecs-293015) 03/29/2023 _x86_64_ (2 CPU)

05:40:11 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
05:40:12 PM 1830148   2049644   52.83    218592    931480   1677808  43.24   1203096  494708  140
05:40:13 PM 1830148   2049644   52.83    218592    931480   1677808  43.24   1203104  494712  140
05:40:14 PM 1830148   2049644   52.83    218592    931480   1677808  43.24   1203108  494708  140
Average:    1830148   2049644   52.83    218592    931480   1677808  43.24   1203103  494709  140

显示说明:

kbmemfree:该值和 free 命令中的 free 值基本一致,它不包括 buffer 和 cache 空间(空闲中的物理内存大小)

kbmemused:该值和 free 命令中的 used 值基本一致,它包括 buffer 和 cache 空间(使用中的物理内存大小)

%memused:物理内存使用率,该值是 kbmemused 和内存总量(不包括 swap)的百分比。

kbbuffers 和 kbcached:这两个值和free 命令中的 buffer 和 cache 一致。

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)。

%commit:该值是 kbcommit 与内存总量(包括swap)的百分比。

5. 查看页面交换发生状况

[root@hecs-293015 ~]# sar -w 1 3
Linux 3.10.0-1160.53.1.el7.x86_64 (hecs-293015) 03/29/2023 _x86_64_ (2 CPU)

05:47:11 PM proc/s cswch/s
05:47:12 PM 3.00   271.00
05:47:13 PM 1.00   241.00
05:47:14 PM 1.00   216.00
Average:    1.67   242.67

显示说明:

pswpin/s:每秒系统换入的交换页面(swap page)数量。

pswpout/s:每秒系统换出的交换页面(swap page)数量。

6. 其他常用参数

  • -A 汇总所有的报告
  • -a 报告文件读写使用情况
  • -B 报告附加的缓存的使用情况
  • -b 报告缓存的使用情况
  • -c 报告系统调用的使用情况
  • -d 报告磁盘的使用情况
  • -g 报告串口的使用情况
  • -h 报告关于buffer使用的统计数据
  • -m 报告IPC消息队列和信号量的使用情况
  • -n 报告命名cache的使用情况
  • -p 报告调页活动的使用情况
  • -q 报告运行队列和交换队列的平均长度
  • -R 报告进程的活动情况
  • -r 报告没有使用的内存页面和硬盘块
  • -u 报告CPU的利用率
  • -v 报告进程、i节点、文件和锁表状态
  • -w 报告系统交换活动状况
  • -y 报告TTY设备活动状况

 

 

 


云野 » 云服务器 ECS Linux 系统负载查询及分析说明 

发表回复