Використання ресурсів центрального процесора

Хоча система IOS не надає жодних статистичних відомостей про роботу планувальника, існує спосіб дізнатися як різні процеси розділяють ресурси центрального процесора. Використання команди show process cpu дозволяє зосередити увагу на використанні ресурсів центрального процесора.

Результати роботи команди show process cpu наведено на рис.5.8

Рис. 5.8. Результати роботи команди show process

Перша стрічка в виводі команди show process cpu показує загальне завантаження центрального процесора, усереднену по трьом інтервалам часу: 5 секунд, 1 хвилина, 5 хвилин. П’ятисекундна статистика використання процесора представлена двома числами, що розділені косою лінійкою. Число зліва представляє загальний процент використання ресурсів процесора (процент занятості). Праве число процент використання ресурсів процесора при обробці переривань. Одно та п’ятихвилинна статистика використання процесорного часу показує загальний процент занятості процесора, значення якого експоненціально зменшується для одно- і п’ятихвилинної статистики відповідно.

Після загальної статистики використання процесора тіж самі часові інтервали відображають завантаженість кожного процесу зокрема. Планувальник автоматично перераховує дані значення і зберігає їх в пам’яті на випадок виконання команди show process cpu.

З допомогою команди show process cpu доволі просто визначити найбільш активні в системі процеси і процент використання ними ресурсів центрального процесора. В наведеному вище прикладі середня завантаженість процесора за інтервал 5 секунд перед запуском команди складала 90%. Середня завантаженість при обробці переривань – 82%. Різниця 8% використовується планувальником. За інтервал 60 секунд завантаженість процесора складала 60%, а середня завантаженість за інтервал п’ять хвилин – 40%. З індивідуальної для кожного процеса інформації видно, що за останній п’ятисекундний інтервал 8% процесорних ресурсів було занято процесором in_input. Нульові значення показників завантаженості означають, що процес на мав можливості виконуватись на даному інтервальному проміжку, або значення завантаженості складало менше 0,01%.

З наведеного вище прикладу видно, що досить великий процент процесорних ресурсів припадає на обробку переривань. Нажаль, система не надає детальної інформації про обробку процесором переривань, як це зроблено для процесів. Однак можна зробити припущення відносно використання процесорних ресурсів. Операційна система IOS також виконує і іншу роботу, обробляючи переривання, однак більша частина часу все ж таки витрачається на комутацію пакетів. По цьому високе значення завантаженості процесора зазвичай означає, що в системі IOS доводиться займатися комутацією великої кількості мережевих пакетів.

Незадіяний процесорний час (10% в нашому прикладі) носить назву часу холостого ходу або простою. “Час простою”, однак, не зовсім точне визначення, оскільки процесор насправді ніколи не простоює: в ньому постійно виконуються якісь інструкції (машинні команди). В системі IOS час простою в дійсності означає, що ресурси процесора використовуються власне планувальником (а це дуже важливий процес в системі). Дуже важливо, щоб у операційної системи IOS було достатньо часу холостого ходу. При наближенні завантаженості процесора до 100% на потреби планувальника практично не лишиться ресурсів, що приводить до дуже серйозних наслідків. Оскільки планувальник відповідає за виконання всіх фонових критичних процесів, недостатня кількість процесорних ресурсів може привести до відмови системи.

Система IOS має так званий сторожовий таймер, яки попереджує тотальне завантаження центрального процесора. На жаль, операційна система IOS не завжди застосовує цей механізм захисту для переривань Хоч багато платформ і підтримують обмеження на використання ресурсів центрального процесора через так звані заглушки переривань, по замовченню дана функція відключена.

В любому випадку сторожові таймери і заглушки переривань – це всього на всього механізми безпеки. Коли система планується для високошвидкісної обробки пакетів (наприклад, якщо в систему вбудовано велику кількість мережевих інтерфейсів, підключених до завантажених каналів), раціональніше вибрати більш продуктивний процесор і налагодити систему на використання найбільш ефективного механізму комутації для запобігання перевантаження центрального процесора.


Сторожовий таймер

 

Для зменшення ризику перевантаженості процесора операційна система IOS встановлює сторожовий таймер для процесів, який дозволяє планувальнику періодично обмежувати виконання поточного процесу. Не потрібно плутати цей механізм з преємптивною багатозадачністю, оскільки він являється всього на всього тільки засобом захисту системи від перенавантаження і повного блокування при тотальному зайнятті процесом процесорних ресурсів. Якщо процес в системі стане підвішеним (наприклад, який виконується невиправдано довго), планувальник може зупинити його виконання.

Кожний раз, коли планувальник надає процесу можливість виконуватися, запускається сторожовий таймер для цього процесу. По закінченню проміжку часу (по замовченню 2 секунди), якщо процес все ще виконується, то керування передається назад планувальнику. Після першого спрацювання сторожового таймеру планувальник виводить попереджувальне повідомлення і продовжує виконання процесу:

 

%SNMP-3-CPUHOG: Processing GetNext of inEntry.17.6

%SYS-3-CPUNOG: Task ran for 2004 msec (49/46), Process = IP SNMP, PC = 6018EC2C

Traceback = 6018EC34 60288548 6017E9C8 6017E9B4

 

Якщо сторожовий таймер спрацьовує у другий раз, а процес все ще не призупиняється, планувальник насильно зупиняє виконання процесу.

 

Менеджер пам’яті

 

Менеджер пам’яті ядра несе відповідальність на макрорівні за керування всієї доступної пам’яті операційної системи IOS, включаючи і пам’ять, яка містить власне виконуваний код системи IOS. Менеджер пам’яті в дійсності не монолітний компонент і складається з трьох окремих модулів, кожний з яких відповідає за свої задачі, які перераховані нижче:

  • Менеджер областей пам’яті – виділяє і підтримує різноманітні області пам’яті для даної платформи.
  • Менеджер пулів пам’яті– керує створенням пулів пам’яті, виділенням і звільненням окремих блоків всередині пулів.
  • Менеджер фрагментів пам’яті – керує спеціально виділеними блоками пам’яті, які містять декілька фрагментів фіксованого розміру.







Дата добавления: 2016-05-05; просмотров: 668;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.