肥仔教程网

SEO 优化与 Web 开发技术学习分享平台

Linux服务器故障排查时如何使用sar命令

当站点响应慢的时候一般会怀疑服务器是不是有问题,而服务器也是有很多因素(CPU、内存、磁盘I/O等等)组成,在这里我们使用sar命令进行初期排查。

sar命令是可以显示LoadAverage、CPU使用率及磁盘I/O信息的命令,更重要的是可以查看过去的信息。

安装sar

首先查看服务器有没有安装sysstat。

# rpm -qa | grep sysstat
sysstat-9.0.4-22.el6.x86_64

如果什么都没有显示的话,yum安装sysstat。安装sysstat之后,信息采集就会自动开始。

# yum install sysstat

修改sar命令采集信息的间隔

修改/etc/cron.d/sysstat文件。

# Run system activity accounting tool every 10 minutes
*/1 * * * * root /usr/lib64/sa/sa1 1 1
~ 省略 ~

默认采集信息间隔是10分钟’*/10’,在这里改为修改为1分钟’*/1’。

常用选项

常用命令内容
sar -qLoadAverage
sar -uCPU使用率
sar -b磁盘I/O
sar -r内存及交换分区使用率
sar -s time指定开始时间
sar -e time指定终止时间
sar -f /var/log/sa/sa01指定过去的性能文件

1. -q选项确认LoadAverage

# sar -q -s 23:25:00
Linux 2.6.32-358.6.2.el6.x86_64 (awspack)         07/07/2015      _x86_64_        (16 CPU)

11:25:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
11:26:01 PM         3       600      2.27      1.87      1.85
11:27:01 PM         4       602      1.75      1.80      1.83
11:28:01 PM         1       602      1.36      1.64      1.77
Average:            3       601      1.79      1.77      1.82

ldavg-x是表示过去x分钟的LoadAverage。

而当LoadAverage过高(CPU内核数的2倍)的时候,一般是

2. -u选项确认CPU使用率

# sar -u -s 23:35:00
Linux 2.6.32-358.6.2.el6.x86_64 (awspack)         07/07/2015      _x86_64_        (16 CPU)

11:35:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:36:01 PM     all     10.52      0.00      0.82      0.58      0.00     88.08
11:37:01 PM     all     10.10      0.00      0.85      0.60      0.00     88.46
11:38:01 PM     all     16.31      0.00      1.70      0.62      0.00     81.37
11:39:01 PM     all     13.32      0.00      1.17      0.72      0.00     84.79
11:40:01 PM     all      9.62      0.00      0.83      0.69      0.00     88.86
11:41:01 PM     all      7.92      0.00      0.66      0.68      0.00     90.74
11:42:01 PM     all     11.43      0.00      0.96      0.78      0.00     86.84
11:43:01 PM     all     11.39      0.00      0.91      0.86      0.00     86.83
Average:        all     11.32      0.00      0.99      0.69      0.00     87.00

sar -u显示的是CPU在各种模式下占用的比例。

模式内容
%user用户模式(一般是应用程序)下的CPU使用率
%nice一般为0
%system内核模式(OS等)下的CPU使用率
%iowait等待磁盘的I/O完成
%steal一般为0
%idleCPU的空闲比例(等待磁盘I/O时间除外)

从sar -u结果我们可以做如下简单的判断

  • %system一般不会超过10%,超过10%时可以怀疑内存不足或者LoadAverage过高
  • %user过高时,可使用top命令查看哪个进程占用的CPU使用率过高
  • %iowait过高是磁盘I/O出现了瓶颈

3. -b选项查看磁盘读写

# sar -b -s 00:00:00
Linux 2.6.32-358.6.2.el6.x86_64 (awspack)         07/08/2015      _x86_64_        (16 CPU)

12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:01:02 AM    112.79      0.00    112.79      0.00    957.00
12:02:01 AM     99.32      0.00     99.32      0.00    813.04
12:03:01 AM    106.23      0.00    106.23      0.00    865.49
12:04:01 AM    119.21      0.00    119.21      0.00    975.00
12:05:01 AM    110.04      0.00    110.04      0.00    897.71
12:06:01 AM     97.66      0.00     97.66      0.00    864.40
12:07:01 AM    107.89      0.00    107.89      0.00    926.72
12:08:01 AM     94.22      0.00     94.22      0.00    768.58
12:09:01 AM     89.11      0.00     89.11      0.00    732.24
12:10:01 AM     85.54      0.00     85.54      0.00    694.89
Average:       102.21      0.00    102.21      0.00    849.56
项目内容
tpsI/O请求的总次数/秒
rtps读取请求的总次数/秒
wtps写入请求的总次数/秒
bread/sBlock单位的读取请求的总次数/秒
bwrtn/sBlock单位的写入请求的总次数/秒

4. -r选项确认内存及交换分区的使用情况

# sar -r -s 00:10:00
Linux 2.6.32-358.6.2.el6.x86_64 (awspack)         07/08/2015      _x86_64_        (16 CPU)

12:10:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
12:11:01 AM   4151820  12165284     74.56    313516   5964312   5474348     33.55
12:12:01 AM   4148072  12169032     74.58    313516   5964364   5473416     33.54
12:13:01 AM   4140396  12176708     74.63    313516   5964448   5476452     33.56
12:14:01 AM   4136844  12180260     74.65    313516   5964512   5475960     33.56
12:15:01 AM   4100348  12216756     74.87    313516   5964564   5562188     34.09
12:16:01 AM   4112976  12204128     74.79    313516   5964656   5541804     33.96
12:17:01 AM   4136260  12180844     74.65    313516   5964816   5480288     33.59
Average:      4132388  12184716     74.67    313516   5964525   5497779     33.69

通过以下项目查看内存及交换分区的使用情况。

项目内容
kbmemfree内存可用量(kb)
kbmemused内存使用量(kb)
%memused内存使用率
kbswpfree交换分区的可用量(kb)
kbswpused交换分区的使用量(kb)
%swpused交换分区的使用率

5. 查看过去的性能信息

在/var/log/sa目录下有过去的性能信息,可通过指定文件及指定时间查看信息。

以下命令查看当月7日的23:50以后的CPU使用情况。

# sar -u -s 23:50:00 -f /var/log/sa/sa07
Linux 2.6.32-358.6.2.el6.x86_64 (awspack)         07/07/2015      _x86_64_        (16 CPU)

11:50:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:51:01 PM     all     13.25      0.00      1.03      1.06      0.00     84.66
11:52:01 PM     all     13.58      0.00      1.05      1.03      0.00     84.35
11:53:01 PM     all     13.89      0.00      1.17      1.08      0.00     83.86
11:54:01 PM     all     10.46      0.00      0.87      1.08      0.00     87.59
11:55:01 PM     all     10.59      0.00      0.86      1.01      0.00     87.54
11:56:01 PM     all      9.90      0.00      0.85      0.96      0.00     88.29
11:57:01 PM     all     13.78      0.00      1.11      1.04      0.00     84.06
11:58:01 PM     all      9.75      0.00      0.82      0.69      0.00     88.74
11:59:01 PM     all      4.91      0.00      0.40      0.66      0.00     94.04
Average:        all     11.12      0.00      0.91      0.96      0.00     87.02

结语

当我们的网站或者站点响应慢的时候,可使用sar命令进行初期的排查,作为今后调查方向的依据。

需要注意的是,当访问量超出系统承载量的时,出现的CPU过高、内存过高甚至溢出等情况,需要结合访问量分析进行排查。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言