Я пытаюсь понять некоторые данные, которые были извлечены из SAR. У меня есть три основных вопроса по этому поводу. В конечном счете, я хотел бы определить, сколько процессоров простаивают в каждом интервале выборки на кластере серверов.
- Многие из процессоров не отображаются в каждой записи. Это ожидается и что именно это означает? Это связано с № 2?
- Есть неиспользуемые линии (CPU = U). В документации сказано: «U указывает на неиспользуемую емкость всей системы». Я не могу найти точное определение «неиспользуемой емкости всей системы» или вообще никакого определения. Я не уверен, как интерпретировать строку, которая говорит что-то вроде «неиспользованная емкость была на 70% простаивала».
- Наконец, я не уверен, как рассчитывается строка
-
илиall
. Я думаю, что это среднее значение для всех процессоров, но когда я делаю математику для всех процессоров, я получаю совершенно иной ответ, чем то, что находится в этой строке. Может кто-нибудь сказать мне точно, что входит в этот расчет? Если внимательно присмотреться к этому связанному вопросу о SAR, то выясняется, чтоsystem-wide
процент простоя представляет собой сумму произведений процента простоя каждого ЦП и значения «Physc». К сожалению, у меня нет значенияphysc
or entc% (при условии, что оно есть), поэтому я не могу проверить это своими собственными данными. Если это правильно, значит ли это, что мне нужныphysc
значения, чтобы по-настоящему понять процент простоя?
Вот несколько примеров того, что я вижу. Это все из одного дня.
CPU | Idle CPU | Idle CPU | Idle
---------- ---------- ----------
0 | 8 0 | 15 0 | 17
1 | 25 1 | 94 1 | 32
2 | 79 2 | 100 2 | 97
3 | 62 3 | 99 3 | 71
4 | 5 4 | 13 4 | 5
5 | 7 5 | 13 5 | 23
6 | 6 6 | 99 6 | 71
7 | 7 7 | 44 7 | 98
8 | 11 8 | 12 8 | 48
9 | 17 12 | 0 12 | 38
10 | 33 16 | 12 16 | 37
11 | 64 20 | 3 20 | 42
12 | 6 U | 95 U | 97
13 | 6 - | 15 - | 85
14 | 6
15 | 6
16 | 12
17 | 15
18 | 62
19 | 69
20 | 7
21 | 7
22 | 6
23 | 7
U | 80
- | 15
case 1: avg(24): 22
case 2: avg(12): 42
case 3: avg(12): 48
Эти данные создаются скриптом, который запускается: sar -P ALL 1 1
затем запускается команда awk. Я плохо разбираюсь в awk, но это важные части:
Фильтр: /System|AIX|^$|%/ {next}
Разбираем: {k=0;if(NR==7) k=1} {sub("^-", "all", $1); cpu=$(1+k); user=$(2+k); sys=$(3+k); io=$(4+k); idle=$(5+k)}
Это кажется правильным, основываясь на том, что я мало понимаю о awk и что я вижу из примеров вывода.
Если я предполагаю, что все пропущенные значения равны нулю для случая 2, среднее значение равно 21, что кажется несколько соответствующим случаю 1. Однако, если я сделаю это предположение для случая 3, я получу 24%, что полностью расходится с 85% процентное значение, данное sar для общего простоя процессора.
Вот график снимков за полный день (каждые 30 секунд):
Когда очень мало «общесистемного» времени простоя, корреляция между средним временем простоя процессора и «общесистемным» временем простоя почти идеальна. Но по мере того, как увеличивается время простоя системы, корреляция становится намного слабее. Работая в предположении, что это детерминированные машины, это говорит мне о том, что имеющиеся у меня данные не дают полной картины. Но насколько я забочусь?
Я не совсем понимаю, почему некоторые процессоры не сообщаются в каждой точке, но те, которые отсутствуют, распределяются неравномерно, как видно из приведенных выше примеров. Также, прочитав эту книгу , я понял , что это должны быть логические процессоры, и что без physc
цифр я думаю, что я мало что могу сделать с этими значениями. Я пытался использовать U
значение в различных уравнениях, но я не нашел ничего разумного. Мне даже не ясно, что общий процент простоя может быть принят за чистую монету.
ПРИМЕЧАНИЕ : что-то не так с получением этих данных от sar - полностью верный ответ для # 1, если это так, он всегда должен возвращаться.
sar -P ALL
вывод.sar -P ALL 1 1
а затем использует awk для определения номера процессора, а затем проценты пользователя, системы, IO-wait и idle. Я добавлю больше информации к вашему ответу.sar -P ALL
напрямую, а не вывод этого скрипта? Это нестандартный сценарий, и никто не может сказать вам, что он делает, не видя его.Ответы:
Предоставленный вами вывод выглядит иначе, чем стандартный
sar -P ALL
илиsar -u
выходной. Я не уверен, что вы отформатировали его вручную или запускаете через другой инструмент, но я думаю, что там достаточно информации, чтобы понять это.Вот важная информация, полученная из справочной страницы для
sar
Поскольку вы работаете в кластере, кажется вполне безопасным предположить, что вы используете SMP-машины.
Обратите внимание, что в примерах 2 и 3 только 12 из 24 ядер сообщают статистику. Если вы предполагаете, что эти ядра отключены, как упомянуто на странице руководства, тогда статистика имеет смысл.
Давайте обновим ваши данные следующим образом, чтобы указать отключенное ядро с
-
Затем мы можем использовать следующее, чтобы вычислить средние значения (я написал это краткое предложение, я уверен, что можно написать что-то лучшее).
Обратите внимание, что число ядер в примерах 2 и 3 равно 12, и средние значения соответствуют тому, что вы видите в выходных данных вашего примера.
Похоже, что в какой-то момент между вашим первым и вторым делом половина ядер вашего процессора была отключена.
Краткое резюме по вашим вопросам:
U
В средней линии, отличается отU
в том , что человек странице.U
Упоминается в справочной странице должны отображаться в колонке процессор ID.sar
выхода и нет достаточной информации для определения того, чтоU
илиall
на средней линии см. Первый номер, по-видимому, является незанятым% на активных ядрах.источник
U
Иall
значения поступают из сар в виде линий. Я разбил их в своем ответе, так как они принципиально отличаются от значений процессора, насколько я понимаю.