Я намагаюся зрозуміти деякі дані, отримані з SAR. У мене є три основні питання з цього приводу. Зрештою, я хотів би визначити, скільки процесорів простоювали на кожному інтервалі вибірки через кластер серверів.
- Багато процесорів відображаються не в кожному записі. Це очікується і що саме це означає? Це пов’язано з №2?
- Є невикористані рядки (CPU = U). У документації зазначається, що "U вказує на невикористану ємність для системи". Насправді я не можу знайти точне визначення поняття "Невикористана ємність для всієї системи" або взагалі будь-яке визначення. Я не впевнений, як інтерпретувати рядок, який говорить щось на кшталт "невикористана ємність була на 70% простою".
- Нарешті, я не впевнений у тому, як обчислюється
-
абоall
лінія. Я думаю, що це середнє значення для всіх процесорів, але коли я виконую математику для всіх процесорів, я отримую зовсім іншу відповідь, ніж те, що знаходиться на цій лінії. Хтось може сказати мені, що саме входить до цього розрахунку? При уважному розгляді цього пов'язаного питання щодо SAR виявляється, щоsystem-wide
відсоток простою - це сума добутку відсотка непрацюючого процесора та значення "physc". На жаль, у мене немаєphysc
або 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 1 1
а потім використовує awk, щоб вивести число процесора, а потім відсоток користувача, системи, IO-чакання та простою. Я додам більше інформації до вашої відповіді.
sar -P ALL
безпосередньо вихід , а не вихід цього сценарію? Це нестандартний сценарій, і ніхто не може сказати вам, що він робить, не бачачи його.
sar -P ALL
вихід.