Linux系统调优——系统整体运行状态排查(七)

(1).vmstat

  vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的整体状态值,包括服务器的CPU使用率,MEM内存使用,VMSwap虚拟内存交换情况,IO读写情况。

[[email protected] ~]# vmstat
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 3709568   2108 156248   0    0     1     0   20   18  0  0 100  0  0

说明:

 procs(进程):

  r  展示正在运行和等待运行的进程个数,当这个值超过CPU个数时,就会出现CPU瓶颈。

  b  处在非中断睡眠状态的进程数。即等待IO的进程数量。

 memory(内存):

  swpd  已使用的虚拟内存大小。如果虚拟内存使用较多,可能是系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swpd不为0,并不意味物理内存吃紧,si、so的值长期为0,这也是没有问题的。

  free  空闲的物理内存的大小

  buff  用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

  cache  用作缓存的内存大小。如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。单位:KB

 swap(交换分区):

  si   从磁盘写入到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了。

  so  从swap虚拟内读出的数据。即从swap中的数据写入到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了。

  注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。   当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so。如果free很少,但是si和so是0,那么不用担心,系统性能这时不会受到影响的。

 io(这里指进出内存的数据):

  bi  每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。bi通常是读磁盘的数据

  bo  每秒发送到块设备的块数,单位:块/秒  也就是写块设备。bo通常是写磁盘的数据

 system(系统):

  in  每秒的中断数,包括时钟中断。

  cs  每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。

 cpu(使用cpu时间的百分比,最大100%):

  us  用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多

  sy  系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

  id  空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。

  wa  等待IO的CPU时间,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

  st  虚拟机占用cpu时间的百分比。如果centos系统上运行了kvm虚拟机,而kvm虚拟上又运行了几个虚拟机,那么这个值将显示这个几个正在运行的虚拟机从物理机中窃取CPU运行时间的百分比。

1)CPU利用率比例分配

  us——用户态——65%~70%

  sy——内核态——30%~35%

  id——空闲——0%~5%

  cs——Context Switches:上下文切换的数目直接关系到CPU 的使用率,如果CPU 利用率保持在上述均衡状态时,有大量的上下文切换是正常的。(上下文切换指的就是cpu中寄存器数据的写入和读出。每个进程在使用cpu时,都需要把自己的数据先写入cpu的缓存(寄存器)中,然后cpu才能根据缓存中的数据来计算。)

2)指定刷新时间间隔,连续输出

[[email protected] ~]# vmstat 1 10  //时间间隔1秒,连输输出10次
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 1778088   2108 125992   0    0     5     0   73   76  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  277  277  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  279  281  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     4  327  331  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  275  283  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  270  277  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  268  273  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     0  275  287  0  0 100  0  0
 0  0      0 1778088   2108 126024   0    0     0     1  251  268  0  0 100  0  0
 0  0      0 1778088   2108 126028   0    0     0     0  274  295  0  0 100  0  0

  用来连续查看系统整体运行状态,主要可以注意查看r、free、si、so、bi、bo、us、id、wa(wa大于40%就要查看bi、bo情况了)。

(2).sar

  sar命令需要安装sysstat工具包。sysstat工具包可以把检查到的信息保存下来,存在/var/log/sa目录下。sar 默认显示每10分钟统计一次状态信息(从装sysstat包开始)。

[[email protected] ~]# yum -y install sysstat

1)命令格式

  sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

  如果有时间间隔和次数则显示当前的情况,如果没有则显示今日的所有情况。

2)选项

  常用选项

-A:所有报告的总和,相当于选项-bBdFHqrRSuvwWy -I SUM -I XALL -m ALL  -n  ALL  -u ALL -P ALL
-d:显示磁盘的情况
-f [文件名]:查看由-o [文件名]创建的文件,文件名默认参数是当前的每日数据文件/var/log/sa/sadd
-n <关键词>:显示网络的情况,关键字可以是DEV、EDEV、NFS、NFSD、SOCK、IP、EIP、ICMP、EICMP、TCP、ETCP、UDP、SOCK6、IP6、EIP6、ICMP6、EICMP6、UDP6
-o [文件名]:以二进制形式保存正在读取得数据,文件名默认参数是当前的每日数据文件/var/log/sa/sadd
-u [ALL]:显示CPU情况,如果指定ALL,则显示所有参数。

  有可能用到的选项

-b:缓冲区使用情况
-c:每秒创建进程的个数
-v:进程、节点、文件和锁表状态
-r:内存使用情况(详细)
-R:内存使用情况
-y:终端设备活动情况
-W:swap(交换内存)情况
-P [ALL | CPU编号]:查看指定cpu使用情况
-w:任务创建和系统切换情况

3)实例

  每2秒采样一次,连续采样5次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件cpu.sar中。

[[email protected] ~]# sar -u 2 5 -o cpu.sar
Linux 3.10.0-957.el7.x86_64 (youxi1)    2019年08月04日  _x86_64_        (4 CPU)

01时30分28秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
01时30分30秒     all      0.00      0.00      0.25      0.00      0.00     99.75
01时30分32秒     all      0.00      0.00      0.00      0.00      0.00    100.00
01时30分34秒     all      0.00      0.00      0.12      0.00      0.00     99.88
01时30分36秒     all      0.00      0.00      0.00      0.00      0.00    100.00
01时30分38秒     all      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:     all      0.00      0.00      0.08      0.00      0.00     99.92

说明:

输出项 详细说明
CPU all 表示统计信息为所有 CPU 的平均值。
%user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。

  在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

  回头查看保存的文件

[[email protected] ~]# sar -u -f cpu.sar
Linux 3.10.0-957.el7.x86_64 (youxi1)    2019年08月04日  _x86_64_        (4 CPU)

01时30分28秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
01时30分30秒     all      0.00      0.00      0.25      0.00      0.00     99.75
01时30分32秒     all      0.00      0.00      0.00      0.00      0.00    100.00
01时30分34秒     all      0.00      0.00      0.12      0.00      0.00     99.88
01时30分36秒     all      0.00      0.00      0.00      0.00      0.00    100.00
01时30分38秒     all      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:     all      0.00      0.00      0.08      0.00      0.00     99.92

4)查看sar的计划任务,并读取日志

  查看sar的计划任务

[[email protected] ~]# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1  //每10分钟生成一次
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

  读取日志

[[email protected] ~]# ls /var/log/sa  //查看日志文件
sa03  sa04  sar03
[[email protected] ~]# sar -n DEV -f /var/log/sa/sa04  //读取指定日志文件的DEV情况
Linux 3.10.0-957.el7.x86_64 (youxi1)    2019年08月04日  _x86_64_        (4 CPU)

00时00分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
00时10分01秒        lo      9.89      9.89      4.17      4.17      0.00      0.00      0.00
00时10分01秒     ens33      0.04      2.02      0.01      0.12      0.00      0.00      0.00
00时20分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
00时20分01秒     ens33      0.06      2.03      0.01      0.14      0.00      0.00      0.00
00时30分01秒        lo      9.90      9.90      4.16      4.16      0.00      0.00      0.00
00时30分01秒     ens33      0.12      2.09      0.01      0.19      0.00      0.00      0.00
00时40分01秒        lo      9.86      9.86      4.16      4.16      0.00      0.00      0.00
00时40分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
00时50分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
00时50分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
01时00分01秒        lo      9.91      9.91      4.16      4.16      0.00      0.00      0.00
01时00分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
01时10分01秒        lo      9.91      9.91      4.17      4.17      0.00      0.00      0.00
01时10分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
01时20分01秒        lo      9.91      9.91      4.16      4.16      0.00      0.00      0.00
01时20分01秒     ens33      0.01      2.01      0.00      0.12      0.00      0.00      0.00
01时30分01秒        lo      9.83      9.83      4.19      4.19      0.00      0.00      0.00
01时30分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
01时40分01秒        lo      9.94      9.94      4.17      4.17      0.00      0.00      0.00
01时40分01秒     ens33      0.08      2.06      0.01      0.12      0.00      0.00      0.00
01时50分01秒        lo      9.88      9.88      4.15      4.15      0.00      0.00      0.00
01时50分01秒     ens33      0.01      2.01      0.00      0.12      0.00      0.00      0.00
02时00分01秒        lo      9.86      9.86      4.16      4.16      0.00      0.00      0.00
02时00分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
平均时间:        lo      9.89      9.89      4.16      4.16      0.00      0.00      0.00
平均时间:     ens33      0.04      2.02      0.00      0.13      0.00      0.00      0.00

11时52分01秒       LINUX RESTART

12时00分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12时10分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
12时10分01秒     ens33      0.21      2.20      0.02      0.16      0.00      0.00      0.00
12时20分01秒        lo      9.91      9.91      4.16      4.16      0.00      0.00      0.00
12时20分01秒     ens33      0.38      2.31      0.03      0.28      0.00      0.00      0.00
12时30分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
12时30分01秒     ens33      0.07      2.06      0.01      0.15      0.00      0.00      0.00
12时40分01秒        lo      9.92      9.92      4.16      4.16      0.00      0.00      0.00
12时40分01秒     ens33      0.97      2.88      0.09      0.57      0.00      0.00      0.00
12时50分01秒        lo      9.91      9.91      4.16      4.16      0.00      0.00      0.00
12时50分01秒     ens33      0.31      2.27      0.02      0.33      0.00      0.00      0.00
13时00分01秒        lo      9.94      9.94      4.17      4.17      0.00      0.00      0.00
13时00分01秒     ens33      0.03      2.02      0.00      0.12      0.00      0.00      0.00
13时10分01秒        lo      9.92      9.92      4.16      4.16      0.00      0.00      0.00
13时10分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
13时20分01秒        lo      9.92      9.92      4.16      4.16      0.00      0.00      0.00
13时20分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
13时30分01秒        lo      9.92      9.92      4.16      4.16      0.00      0.00      0.00
13时30分01秒     ens33      0.13      2.09      0.01      0.13      0.00      0.00      0.00
13时40分01秒        lo      9.92      9.92      4.16      4.16      0.00      0.00      0.00
13时40分01秒     ens33      0.06      2.04      0.00      0.12      0.00      0.00      0.00
13时50分01秒        lo      9.89      9.89      4.16      4.16      0.00      0.00      0.00
13时50分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
14时00分01秒        lo      9.90      9.90      4.16      4.16      0.00      0.00      0.00
14时00分01秒     ens33      0.02      2.02      0.00      0.12      0.00      0.00      0.00
14时10分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
14时10分01秒     ens33      0.02      2.01      0.00      0.12      0.00      0.00      0.00
平均时间:        lo      9.91      9.91      4.16      4.16      0.00      0.00      0.00
平均时间:     ens33      0.17      2.15      0.02      0.19      0.00      0.00      0.00

  sar最大特点是可以监控所有状态,还可以查看摸个时间段的运行情况

[[email protected] ~]# sar -s 12:00:00 -e 12:20:00 -f /var/log/sa/sa04
Linux 3.10.0-957.el7.x86_64 (youxi1)    2019年08月04日  _x86_64_        (4 CPU)

12时00分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
12时10分01秒     all      0.01      0.00      0.05      0.01      0.00     99.94
平均时间:     all      0.01      0.00      0.05      0.01      0.00     99.94
[[email protected] ~]# sar -s 12:00:00 -e 12:20:00 -f /var/log/sa/sa04 -n DEV
Linux 3.10.0-957.el7.x86_64 (youxi1)    2019年08月04日  _x86_64_        (4 CPU)

12时00分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12时10分01秒        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
12时10分01秒     ens33      0.21      2.20      0.02      0.16      0.00      0.00      0.00
平均时间:        lo      9.88      9.88      4.16      4.16      0.00      0.00      0.00
平均时间:     ens33      0.21      2.20      0.02      0.16      0.00      0.00      0.00

  

参考:每天一个linux命令:vmstat

  https://blog.csdn.net/volitationlong/article/details/81741754

原文地址:https://www.cnblogs.com/diantong/p/11289689.html

时间: 2024-10-18 08:00:49

Linux系统调优——系统整体运行状态排查(七)的相关文章

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

61 &nbsp; Linux系统调优基础

01 Linux系统调优基础 #显示进行在哪个cpu上运行 [[email protected] ~]# ps axo psr,     2 ntpd   1 qpidd   3 pickup   3 sshd   0 bash   2 pscomm     #显示进行在哪个cpu上运行,并显示进程的pid  [[email protected] ~]# ps axo psr,comm,pid   2 ntpd             3775   1 qpidd            9998

Linux系统调优1

Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬件本身,所以接下来讲对这些进行详细的介绍,从而是系统的性能有所提高. 内核子系统中主要包括一下几个方面: 1.         network(网络) 2.         IO(输入输出子系统) 3.         process(进程) 4.         memory(内存) 5.    

Linux系统调优

Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬件本身,所以接下来讲对这些进行详细的介绍,从而是系统的性能有所提高. 内核子系统中主要包括一下几个方面: 1.         network(网络) 2.         IO(输入输出子系统) 3.         process(进程) 4.         memory(内存) 5.    

第五十五课 linux系统调优 之cpu、内存、网络、I/O

linux系统调优之系统基础原理及CPU调优 linux系统调优之内存调优 linux系统调优之网络调优 linux系统调优之内存和IO调优

linux系统调优之IO、cpu

首先先要再次强调一个概念:系统调优的目的不是怎样去吧那一部分做的特别优化.而是整体的全局的考虑.性能优化是为了找到系统的瓶颈并且想办法提高瓶颈最好能够去除.(个人认为万事皆有利弊,在计算机的世界里同样如此所以完美是不现实的..) 调优的终极目标是为了让计算机个各个子系统达到一种平衡状态.. 子系统:cpu  memory  Io network 此处不多赘述.. 下来首先来解决io的优化,其实这个优化就是由内核控制选择一种相对较好的io策略对应您的实际环境. 下面给出我们IO调度在系统调用中的位

最新最全linux系统调优指南(centos7.X)

linux系统调优指南(centos7.X) 欢迎关注我最新博客地址:https://owelinux.github.io/ 关闭不必要的服务(如打印服务等) for owelinux in `chkconfig --list | grep "3:on" | awk '{print $1}'`; do chkconfig $owelinux off; done for owelinux in crond network sshd rsyslog sysstat iptables; do

Linux系统调优相关工具

系统调优4大子系统 实战1:找出系统中使用CPU最多的进程? 实战2:找出系统中使用内存最多的进程? 实战3:找出系统中对磁盘读写最多的进程? 实战4:找出系统中使用网络最多的进程? 系统调优概述: 1.系统的运行状况:CPU->MEM->DISK*->NETWORK->应用程序调优 性能优化的4个子系统: CPU Memory IO Network

Sybase数据库应用系统调优的五大领域

Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数据库应用系统调优的五大领域:压力测试. 应用端调优.服务器端调优.系统平台层的优化.应用架构的优化,详细介绍了作者在项目开发过程中曾经遇到的各种问题及其解决办法.本文通过对“企业级 Sybase数据库应用系统的性能调优的最佳实践”的探讨,从而为这类性质的工作提供了具有普遍指导意义的参考. 1.项目背