Загрузите среднюю странность в Linux Ubuntu

9

В последние несколько дней я пытался понять странность, которая происходит в нашей инфраструктуре, но я так и не смог понять это, поэтому обращаюсь к вам, ребята, за советом.

Я заметил в Graphite, скачки в load_avg, которые происходят со смертельной регулярностью примерно каждые 2 часа - это не совсем 2 часа, но это очень регулярно. Я прилагаю скриншот этого я взял из графита

Загрузить Averag - Нажмите, чтобы увеличить

Я застрял в расследовании этого - регулярность этого привела меня к мысли, что это какая-то работа cron или что-то в этом роде, но на этих серверах НЕТ никаких cronjobs - на самом деле это виртуальные машины, работающие в облаке Rackspace. То, что я ищу, - это какое-то указание на то, что может быть причиной этих проблем, и как расследовать это дальше.

Серверы довольно простаивают - это промежуточная среда, поэтому трафик почти не поступает / на них не должно быть нагрузки. Это все 4 виртуальных ядра виртуальных машин. Что я точно знаю, так это то, что мы собираем несколько образцов графита каждые 10 секунд, но если это является причиной нагрузки, то я ожидаю, что она будет постоянно высокой, а не каждые 2 часа волнами на разных серверах.

Любая помощь, как исследовать это, будет принята с благодарностью!


Вот некоторые данные от 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
$

Как вы можете видеть, ЧАСОВ нет. Только ежедневно / еженедельно и т. Д.

Я собрал кучу статистики (vmstat, mpstat, iostat) - как бы сильно я ни пытался, я просто не вижу никаких отведений, которые бы указывали на ненадлежащее поведение любого компонента VM ... Я начинаю склоняться к потенциальным проблемам в гипервизоре. Не стесняйтесь взглянуть на статистику . Суть начинается с вывода команды sar -q в «оскорбительное» время, а затем вы можете увидеть vm, mp и iostats ....

В принципе, для меня это все еще загадка ...

milosgajdos
источник
Есть ли у вас какие-либо интерактивные данные, которыми вы можете поделиться для дальнейшего изучения (например, что отображают «top», «htop» и «iotop» во время повторяющихся скачков нагрузки)? Кроме того, проверяли ли вы журналы своих приложений в течение рассматриваемого времени, чтобы увидеть, проявляют ли они какое-либо странное поведение? Кроме того, есть ли у вас хосты с аналогичными конфигурациями, не размещенные в инфраструктуре публичного облака, и если да, то демонстрируют ли они похожее поведение?
esquireofoz
С точки зрения журналов приложений - ничего не происходит. Единственные записи журнала, которые он содержит, - это проверки от мониторинга, которые происходят каждую минуту - в основном, система мониторинга обращается к основному сайту и сообщает код результата - кроме того, что журналы полностью пусты. Также, как вы можете видеть, существует множество хостов выше - это происходит на всех них (редис, сервер приложений, шеф-сервер и т. Д.)
milosgajdos
Вы пытались использовать psacct, чтобы сузить его?
HTTP500
Вы предполагаете регулярность, но данные, которые вы показываете, не показывают каких-либо регулярно возникающих всплесков .. пожалуйста, будьте более точны в отношении точного периода, в котором они демонстрируют регулярность (возможно, в течение нескольких дней? на рисунке, нет регулярности.) Вы могли бы запускайте "top -n 1" каждые 1 мин или около того и сохраняйте их в файле, и это может помочь увидеть, какие другие процессы конкурируют за процессор в то же время, когда происходит всплеск. Если приложение App1 - это приложение для работы в Интернете, может, просто кто-то получает к нему доступ и форсирует такое поведение? добавьте также регулярное ведение журнала «netstat -an» (каждую минуту?)
Оливье Дюлак
Вы видели прикрепленный скриншот? Если это не показывает регулярность, я не знаю, что делает. Сейчас я увеличил период выборки для sar, поэтому я пробую каждые 5 минут. Регулярность на картинке более чем очевидна - это происходит каждые два часа. Это промежуточная среда без трафика вообще - как вы наверняка можете увидеть из приведенных выше выводов sar для статистики сети.
Милосгайдос

Ответы:

3

Интересно.

Во-первых, вы можете увеличить частоту ведения журнала sar. Вместо 10 минут, попробуйте войти каждую минуту. Cronjob sysstat настраивается.

Затем попробуйте написать следующие команды.

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параметр командной строки ядра и перезагрузите систему и посмотрите, улучшит ли она ее.

Сохам Чакраборти
источник
Я добавил небольшое редактирование о планировщике. пожалуйста, посмотрите результат.
Сохам Чакраборти
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. Возможно, придется включить другие каталоги журналов.

Вс 6 января 21:00:07 2013: xvda w_await spike

xvda Chart - Пик w_await на Солнце 6 января 21:00:07 2013 введите описание изображения здесь

Джон Сиу
источник
0

Одно я бы обязательно проверил:

  • Графы vSphere для того же шаблона, возможно, другая виртуальная машина на том же хосте потребляет процессоры (таким образом, нагрузка на вашу виртуальную машину увеличивается, так как требуется больше времени для обработки того же объема данных с постоянным потоком из-за того, что для процессоров требуется меньше времени) ваша ВМ).

Редактировать: не получилось с первого раза :) Вы работаете в Rackspace, поэтому не можете управлять гипервизором, но стоит спросить у стойки, могут ли они проверить, распространен ли этот шаблон на других виртуальных машинах на том же хосте ,

Мартино Дино
источник
1
Я тоже с подозрением отношусь к этому - это будет не первый случай, когда облако Rackspace вызовет какое-то безумие. Я сомневаюсь, что они контролируют какой-либо из своих серверов гипервизора, хотя я имею в виду неправильное поведение виртуальных машин, однако я бы хотел исключить любые «внутренние» возможности, прежде чем перейти к последнему средству - поддержке Rackspace.
Милосгайдос
Повлияет ли производительность гипервизора на самоочевидную среднюю нагрузку виртуальной машины? Это заставляет меня задуматься о том, как рассчитывается среднее значение нагрузки. Может ли это быть каким-то эффектом зеленой / энергосберегающей функции, периодически перемещающей работу на меньшее количество ядер без ведома ОС? Или как насчет динамического изменения тактовой частоты в зависимости, например, от воздействия окружающей среды?
trp
Среднее значение загрузки рассчитывается по алгоритму планирования, иными словами, если у вас 100 задач в очереди обработки и гипервизор на 100% эффективен при выполнении 10 задач в 1 секунду, то вам нужно 10 секунд для выполнения 100 задач, если ваш гипервизор эффективен только на 50% (возможно, с чрезмерным выделением ресурсов процессора), для выполнения такого же количества задач потребуется 20 секунд, что приведет к увеличению нагрузки. Полное объяснение: blog.scoutapp.com/articles/2009/07/31/…
Мартино Дино