在Linux Ubuntu上加载平均怪异度


9

在过去的几天里,我一直在试图了解我们的基础架构中正在发生的怪异现象,但是我无法弄清它的怪异之处,因此我求助于您一些提示。

我一直在Graphite中注意到,load_avg的峰值大约每2小时就会以致命的规律性发生-并非完全是2个小时,但非常规律。我要附上我从Graphite拍摄的截图

加载Averag-单击放大

我一直在进行调查-这种规律性使我想到这是某种cron工作或类似的工作,但是这些服务器上没有cronjob运行-实际上,这些是在Rackspace云中运行的VM。我正在寻找的是某种可能会导致这些问题以及如何进行进一步调查的迹象。

服务器相当空闲-这是一个暂存环境,因此几乎没有流量传入/它们上应该没有负载。这些都是4个虚拟核心VM。我可以确定的是,我们大约每10秒就会采集一堆Graphite样本,但是如果这是造成负载的原因,那么我希望它会一直很高,而不是每两小时在不同的服务器中发生一次波动。

任何帮助如何对此进行调查将不胜感激!


这是来自sar的app01数据-这是上图中的第一个蓝色尖峰-我无法从数据中得出任何结论。同样不是每半小时(不是每2小时)就会发生一次字节写入高峰,这是由于厨师客户端每30分钟运行一次。即使我已经做到了,但我仍将尝试收集更多数据,但无论如何也无法得出任何结论。

加载

09:55:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
10:05:01 PM         0       125      1.28      1.26      0.86         0
10:15:01 PM         0       125      0.71      1.08      0.98         0
10:25:01 PM         0       125      4.10      3.59      2.23         0
10:35:01 PM         0       125      0.43      0.94      1.46         3
10:45:01 PM         0       125      0.25      0.45      0.96         0
10:55:01 PM         0       125      0.15      0.27      0.63         0
11:05:01 PM         0       125      0.48      0.33      0.47         0
11:15:01 PM         0       125      0.07      0.28      0.40         0
11:25:01 PM         0       125      0.46      0.32      0.34         0
11:35:01 PM         2       130      0.38      0.47      0.42         0
11:45:01 PM         2       131      0.29      0.40      0.38         0
11:55:01 PM         2       131      0.47      0.53      0.46         0
11:59:01 PM         2       131      0.66      0.70      0.55         0
12:00:01 AM         2       131      0.81      0.74      0.57         0

中央处理器

09:55:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:05:01 PM     all      5.68      0.00      3.07      0.04      0.11     91.10
10:15:01 PM     all      5.01      0.00      1.70      0.01      0.07     93.21
10:25:01 PM     all      5.06      0.00      1.74      0.02      0.08     93.11
10:35:01 PM     all      5.74      0.00      2.95      0.06      0.13     91.12
10:45:01 PM     all      5.05      0.00      1.76      0.02      0.06     93.10
10:55:01 PM     all      5.02      0.00      1.73      0.02      0.09     93.13
11:05:01 PM     all      5.52      0.00      2.74      0.05      0.08     91.61
11:15:01 PM     all      4.98      0.00      1.76      0.01      0.08     93.17
11:25:01 PM     all      4.99      0.00      1.75      0.01      0.06     93.19
11:35:01 PM     all      5.45      0.00      2.70      0.04      0.05     91.76
11:45:01 PM     all      5.00      0.00      1.71      0.01      0.05     93.23
11:55:01 PM     all      5.02      0.00      1.72      0.01      0.06     93.19
11:59:01 PM     all      5.03      0.00      1.74      0.01      0.06     93.16
12:00:01 AM     all      4.91      0.00      1.68      0.01      0.08     93.33

IO

09:55:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
10:05:01 PM      8.88      0.15      8.72      1.21    422.38
10:15:01 PM      1.49      0.00      1.49      0.00     28.48
10:25:01 PM      1.54      0.00      1.54      0.03     29.61
10:35:01 PM      8.35      0.04      8.31      0.32    411.71
10:45:01 PM      1.58      0.00      1.58      0.00     30.04
10:55:01 PM      1.52      0.00      1.52      0.00     28.36
11:05:01 PM      8.32      0.01      8.31      0.08    410.30
11:15:01 PM      1.54      0.01      1.52      0.43     29.07
11:25:01 PM      1.47      0.00      1.47      0.00     28.39
11:35:01 PM      8.28      0.00      8.28      0.00    410.97
11:45:01 PM      1.49      0.00      1.49      0.00     28.35
11:55:01 PM      1.46      0.00      1.46      0.00     27.93
11:59:01 PM      1.35      0.00      1.35      0.00     26.83
12:00:01 AM      1.60      0.00      1.60      0.00     29.87

网络:

10:25:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:35:01 PM      eth1      7.07      4.77      5.24      2.42      0.00      0.00      0.00
10:35:01 PM      eth0      2.30      1.99      0.24      0.51      0.00      0.00      0.00
10:45:01 PM        lo      8.35      8.35      2.18      2.18      0.00      0.00      0.00
10:45:01 PM      eth1      3.69      3.45      0.65      2.22      0.00      0.00      0.00
10:45:01 PM      eth0      1.50      1.33      0.15      0.36      0.00      0.00      0.00
10:55:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:55:01 PM      eth1      3.66      3.40      0.64      2.19      0.00      0.00      0.00
10:55:01 PM      eth0      0.79      0.87      0.08      0.29      0.00      0.00      0.00
11:05:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:05:01 PM      eth1      7.29      4.73      5.25      2.41      0.00      0.00      0.00
11:05:01 PM      eth0      0.82      0.89      0.09      0.29      0.00      0.00      0.00
11:15:01 PM        lo      8.34      8.34      2.18      2.18      0.00      0.00      0.00
11:15:01 PM      eth1      3.67      3.30      0.64      2.19      0.00      0.00      0.00
11:15:01 PM      eth0      1.27      1.21      0.11      0.34      0.00      0.00      0.00
11:25:01 PM        lo      8.32      8.32      2.18      2.18      0.00      0.00      0.00
11:25:01 PM      eth1      3.43      3.35      0.63      2.20      0.00      0.00      0.00
11:25:01 PM      eth0      1.13      1.09      0.10      0.32      0.00      0.00      0.00
11:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:35:01 PM      eth1      7.16      4.68      5.25      2.40      0.00      0.00      0.00
11:35:01 PM      eth0      1.15      1.12      0.11      0.32      0.00      0.00      0.00
11:45:01 PM        lo      8.37      8.37      2.18      2.18      0.00      0.00      0.00
11:45:01 PM      eth1      3.71      3.51      0.65      2.20      0.00      0.00      0.00
11:45:01 PM      eth0      0.75      0.86      0.08      0.29      0.00      0.00      0.00
11:55:01 PM        lo      8.30      8.30      2.18      2.18      0.00      0.00      0.00
11:55:01 PM      eth1      3.65      3.37      0.64      2.20      0.00      0.00      0.00
11:55:01 PM      eth0      0.74      0.84      0.08      0.28      0.00      0.00      0.00

对于对cronjobs感到好奇的人。这是在服务器上设置的所有cronjobs的摘要(我选择了app01,但是在其他几台服务器上也都设置了相同的cronjobs)

$ ls -ltr /etc/cron*
-rw-r--r-- 1 root root  722 Apr  2  2012 /etc/crontab

/etc/cron.monthly:
total 0

/etc/cron.hourly:
total 0

/etc/cron.weekly:
total 8
-rwxr-xr-x 1 root root 730 Dec 31  2011 apt-xapian-index
-rwxr-xr-x 1 root root 907 Mar 31  2012 man-db

/etc/cron.daily:
total 68
-rwxr-xr-x 1 root root  2417 Jul  1  2011 popularity-contest
-rwxr-xr-x 1 root root   606 Aug 17  2011 mlocate
-rwxr-xr-x 1 root root   372 Oct  4  2011 logrotate
-rwxr-xr-x 1 root root   469 Dec 16  2011 sysstat
-rwxr-xr-x 1 root root   314 Mar 30  2012 aptitude
-rwxr-xr-x 1 root root   502 Mar 31  2012 bsdmainutils
-rwxr-xr-x 1 root root  1365 Mar 31  2012 man-db
-rwxr-xr-x 1 root root  2947 Apr  2  2012 standard
-rwxr-xr-x 1 root root   249 Apr  9  2012 passwd
-rwxr-xr-x 1 root root   219 Apr 10  2012 apport
-rwxr-xr-x 1 root root   256 Apr 12  2012 dpkg
-rwxr-xr-x 1 root root   214 Apr 20  2012 update-notifier-common
-rwxr-xr-x 1 root root 15399 Apr 20  2012 apt
-rwxr-xr-x 1 root root  1154 Jun  5  2012 ntp

/etc/cron.d:
total 4
-rw-r--r-- 1 root root 395 Jan  6 18:27 sysstat
$ sudo ls -ltr /var/spool/cron/crontabs 
total 0
$

如您所见,没有HOURLY cronjobs。仅每天/每周等

我收集了一堆统计信息(vmstat,mpstat,iostat)-但是我很难尝试,只是看不到任何线索表明任何VM组件行为异常...我开始倾向于在hypervisor上发现潜在问题。随时查看统计信息。要点从sar -q输出开始于“违规”时间,然后您可以看到vm,mp和iostats...。

基本上对我来说还是个谜。


您是否可以共享任何交互式数据以进行进一步调查(即,在反复出现的负载峰值期间,“ top”,“ htop”和“ iotop”显示什么)?另外,是否在相关时间内检查了应用程序日志,以查看它们是否表现出任何异常行为?此外,您是否有未配置在公共云基础架构上的具有类似配置的主机?如果是,它们是否表现出相似的行为?
esquireofoz

就应用程序日志而言-没有任何反应。它包含的唯一日志条目是每分钟进行一次的监视检查-基本上,监视系统命中主站点并报告结果代码-除了日志完全为空之外。您还可以看到上面有各种各样的主机-所有主机(redis,应用服务器,厨师服务器等)都在发生
milosgajdos 2013年

您是否尝试过使用psacct缩小范围?
2013年

您假设是有规律的,但显示的数据并未显示任何定期发生的峰值。.请更具体地说明其显示规律性的确切时间(也许是几天?在图片上没有规律性)。每隔一百万左右运行一次“ top -n 1”,并将其保存在文件中,这可能有助于查看在出现峰值的同时还有哪些其他进程正在竞争cpu。如果App1是面向互联网的应用程序,也许只是有人可以访问它并强制执行该行为?还要添加常规的“ netstat -an”日志记录(每分钟?)
Olivier Dulac

您看到所附的屏幕截图了吗?如果那不显示规律,我不知道是什么。现在,我增加了sar的采样时间,因此每5分钟采样一次。图片上的规律性非常明显-每两小时发生一次。这是一个完全没有流量的过渡环境-您肯定可以从上述sar输出的网络统计信息中看到。
milosgajdos

Answers:


3

有趣。

首先,可以增加sar记录的频率。代替10分钟,尝试每分钟记录一次。sysstat cronjob是可配置的。

接下来,尝试编写以下命令。

ps auxf > /tmp/ps.out
vmstat 1 50 > /tmp/vm.out
mpstat -P ALL 1 50 > /tmp/mp.out
iostat -xdk 1 50 > /tmp/io.out
cat /proc/meminfo > /tmp/meminfo.out

当负载平均值手动增加时或通过cron在每次迭代时收集该组数据。至少要有一个完整工作日的数据。

现在,我知道服务器处于空闲状态,但是仍然必须运行某些应用程序。这些是什么?

您是否可以运行某些性能分析工具,例如perf或oprofile。

是否更改了服务器硬件组件?甚至像固件升级或软件升级一样无害。

嘿,一个问题。您正在运行什么调度程序。我相信它是cfq,只要有机会您就可以将其更改为noop。放入elevator=noop内核命令行参数,然后重新引导系统,看看它是否有所改善。


我添加了有关调度程序的小修改。请查看结果。
Soham Chakraborty 2013年

1

Log Top进程

由于事件的发生非常有规律,因此请设置cron作业以监视该期间的顶级进程

#app01
20-59 0/2 * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

更改20-59*将每隔偶数小时记录一次整个小时。无论哪种情况,Cron作业每分钟都会运行一次。

您可能需要添加top.log文件来记录日志轮换,以便在忘记禁用它的情况下不会占用所有空间。

检查日志文件

在高负载期间搜索日志文件条目

以以下负荷输入为例

10:25:01 PM         0       125      4.10      3.59      2.23         0

grep ' 22:2' /var/log/*
grep ' 22:2' /var/log/apache2/*

这将显示的所有日志条目22:2x:xx。可能必须包括其他日志目录。

2013年1月6日,星期日21:00:07:xvda w_await秒杀

xvda图表-w_await峰值在2013年1月6日21:00:07 在此处输入图片说明


0

我绝对会检查一件事:

  • vSphere图形表示相同的模式,可能是同一主机上的另一台VM正在吞噬CPU(因此,由于可用于CPU的时间更少,因此需要花费更多时间处理恒定流量的相同数据量,因此VM上的负载增加了)您的VM)。

编辑:第一次没有得到它:)您正在Rackspace上运行,因此对虚拟机监控程序没有任何控制,但是可能值得询问机架空间,他们是否可以检查此模式是否在同一主机上的其他VM上通用。


1
我也对此感到怀疑-这不是Rackspace云第一次引起某种疯狂。我怀疑他们是否监视他们的任何管理程序服务器-我的意思是说VM行为异常,但是我想排除在万不得已之前的任何“内部”可能性-Rackspace支持。
milosgajdos

虚拟机监控程序的性能会影响VM的自视负载平均吗?这使我思考如何计算平均负载。这是否可能是绿色/省电功能会定期将工作转移到OS未知的更少内核的某种影响?还是基于环境输入来动态更改时钟速率呢?
trp

简单地说,如果调度队列中有100个任务,并且管理程序每1秒执行10个任务的效率为100%,则平均负载由调度算法计算得出,如果管理程序需要10秒才能执行100个任务效率仅为50%(可能是CPU过度配置),执行相同数量的任务将花费20秒,从而导致负载增加。完整说明:blog.scoutapp.com/articles/2009/07/31/…–
Martino Dino
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.