Інформаційні послуги комп’ютерних мереж та перспективи їх розвитку, Продуктивність КС
Продуктивність комп'ютерної мережі – це її властивість, що визначає час на передачу та обробку інформації у мережі. Продуктивність мережі залежить від швидкодії всіх її компонентів, що у передачі та обробці інформації. Питання продуктивності відіграють важливу роль у КС. Процеси взаємодії багатьох компонентів мережі відрізняються складністю та різноманіттям, що може призвести до непередбачуваних наслідків, що супроводжуються зниженням продуктивності КС.
Глобальні питання продуктивності мережі загалом вирішуються на транспортному рівні моделі OSI.
До ключових питань продуктивності мережі належать такі:
- встановлення причин зниження продуктивності мережі (виявлення «вузьких місць» у мережі);
- методи та засоби вимірювання продуктивності;
- проектування мережі, яка відповідає вимогам щодо продуктивності;
- Забезпечення швидкої обробки інформаційних модулів, тобто. одиниць інформації, якими здійснюється обмін на транспортному рівні;
- розробка протоколів управління обміном даними для перспективних високопродуктивних мереж.
Розглянемо коротко суть цих питань.
Виявлення вузьких місць. Вузькими називаються місця, що обмежують пропускну здатність або продуктивність усієї мережі. Пропускна здатність усієї мережі визначається пропускною здатністю найменш швидкодіючого компонента.
Найбільш характерними причинами зниження продуктивності мережі є такі.
1. Тимчасова відсутність вільних ресурсів. Наприклад, перезавантаження маршрутизатора, викликане великим вхідним трафіком, що перевищує можливості маршрутизатора. Затор, що утворюється, призводить до зниження продуктивності мережі.
2.Структурний дисбаланс ресурсів. Наприклад, приєднання малопотужного комп'ютера до гігабітної лінії зв'язку. У цьому випадку комп'ютер не справляється з обробкою пакетів, що загрожує втратою деяких пакетів, які рано чи пізно будуть передані повторно. Це призводить до неефективного використання пропускної спроможності лінії зв'язку та зниження загальної продуктивності мережі.
3. Синхронне навантаження окремих ланок мережі. Наприклад, якщо пакет передається широкомовним способом, в якому є неправильний параметр (номер порту призначення), одержувачі можуть надіслати відправнику повідомлення про помилку. В результаті утворюється «широкомовний шторм», який може надовго зупинити нормальну роботу мережі.
4. Неправильне системне налаштування. Наприклад, комп'ютер має потужний центральний процесор і більшу оперативну пам'ять, але під буфер виділено недостатньо пам'яті. У цьому випадку буфер буде переповнюватися і частина пакетів, що надходять, загубиться.
5. Неправильне встановлення значень таймерів очікувань. При надсиланні інформаційного модуля зазвичай включається таймер у разі втрати цього модуля. Вибір занадто короткого інтервалу очікування підтвердження призводить до зайвих повторних передач модулів, а надто великого – до збільшення затримки у разі втрати модуля. В обох випадках це негативно впливає на продуктивність мережі.
Вимірювання продуктивності мережі. Вимірювання слід проводити різними способами та у багатьох місцях. Один з найбільш поширених способів вимірювання полягає в тому, що таймер включається під час початку будь-якої активності та вимір триває до закінчення цієї активності. Наприклад, ключовим виміром є вимір інтервалу часу, необхідного для отримання відправником підтвердження у відповідьна надсилання інформаційного модуля.
Не слід обмежуватися єдиним виміром якогось параметра, наприклад часу на передачу одного інформаційного модуля. Вимірювання необхідно повторити багаторазово, а потім обчислити середнє значення. Більш того, всю послідовність вимірювань слід повторити в різний час доби та в різні дні тижня, щоб помітити вплив різної завантаженості мережі на параметри, що вимірюються.
Результати деяких вимірювань (наприклад, часу читання віддаленого файлу) залежать від конфігурації мережі, операційної системи клієнта та сервера, апаратного інтерфейсу мережевих карт, їх драйверів та інших факторів. Такі виміри будуть придатні лише даної сукупності чинників.
Інструментальні засоби вимірювання продуктивності мережі розглядаються нижче.
Проектування продуктивних мереж. За допомогою вимірювання та налаштування можна покращити продуктивність вже спроектованої мережі, але лише до певного рівня. Для подальшого підвищення продуктивності необхідна переробка проекту. Існує кілька емпіричних правил щодо проектування продуктивних мереж, заснованих на досвіді роботи з багатьма мережами. Найбільш суттєві з них полягають у наступному.
1. Продуктивність хоста важливіша за пропускну здатність каналу. Численні експерименти показали, що майже у всіх мережах тимчасові витрати на роботу операційної системи хоста та протоколу становлять основний час затримки мережевої операції. При роботі з гігабітною лінією зв'язку основне завдання полягає у забезпеченні досить швидкої передачі бітів з буфера хоста (комп'ютера користувача) до лінії, а також у тому, щоб на приймальній стороні обробка інформації здійснювалася з тією швидкістю, з якоювона приходить. Можна стверджувати, що подвоєння продуктивності процесора комп'ютера користувача може призвести до майже подвоєння пропускної спроможності каналу зв'язку. Однак подвоєння пропускної спроможності каналу часто не дає жодного ефекту, оскільки вузьким світом зазвичай є хости.
2. Для зменшення програмних накладних витрат необхідно зменшити кількість пакетів у фіксованому обсязі інформації, що передається.
Обробка кожного інформаційного модуля (наприклад, пакета) передбачає певні накладні витрати (тобто витрати часу) на обробку його заголовка та обробку кожного байта даних, що передаються. Побайтові витрати часу процесора на обробку залежить від розміру модуля (пакета). Однак сумарні витрати часу на обробку заголовків пакетів істотно залежать від кількості пакетів у фіксованому обсязі інформації, що передається. Це буде тим менше, що більше розміри пакета (вибір раціональної довжини пакета- це окрема проблема, вирішення якої пов'язані з рядів чинників, зокрема з накладними витратами обробку заголовків). Наприклад, при використанні 128-байтових пакетів витрати на обробку заголовків будуть у 32 рази більшими, ніж для пакетів розміром 4 Кбайт.
Вирішення питання розмір пакета пов'язані з необхідністю як обліку накладних витрат на обробку заголовків (тобто. програмних накладних витрат), а й обліку накладних витрат нижніх рівнів. Прибуття кожного пакету викликає переривання, що супроводжується порушенням роботи процесорного конвеєра, зниженням ефективності функціонування кеш-пам'яті, необхідністю збереження значної кількості регістрів процесора. Отже, зменшення числа пакетів, що посилаються, дає відповідне зниження числа переривань і накладних.видатків.
4. Скорочення часу затримки лінії зв'язку важливіше підвищення її пропускної спроможності. Більш висока пропускна здатність може бути забезпечена використанням більш якісного середовища, що передає, або прокладкою додаткового кабелю. Але від цього часу затримки не стане менше. Для її зниження потрібно покращення програмного забезпечення протоколів, операційної системи або мережного інтерфейсу.
5. Краще уникати перевантаження в мережі, ніж боротися з перевантаженням, що вже виникло. У разі перевантаження утворюється затор, пакети губляться, пропускна спроможність лінії зв'язку витрачається марно, збільшуються витрати тощо. Процес відновлення після навантаження пов'язаний із втратою часу. Більш ефективною стратегією є запобігання перевантаженню.
6. Необхідно мінімізувати кількість тайм-аутів. Кожне спрацьовування таймера зазвичай супроводжується повторенням будь-якої дії. Але це повторення справді має бути необхідним. Період очікування слід встановлювати із невеликим запасом. Таймер, який спрацьовує надто пізно, збільшує затримку у разі втрати пакета. Передчасно спрацьовує таймер витрачає час процесора, пропускну здатність лінії зв'язку і збільшує навантаження на маршрутизатори.
Забезпечення швидкої обробки інформаційних модулів. На шляху підвищення продуктивності мереж основною перешкодою є програмне забезпечення протоколів. Деякі способи подолання цієї перешкоди розглянуті у спеціальній літературі, де звернено увагу на способи скорочення витрат часу на обробку заголовків пакетів та на обробку кожного байта в пакеті. Розглядаються також дві інші області, у яких можливі основні покращення продуктивності мережі, - цеуправління буферами та управління таймерами.
Розробка протоколів для високопродуктивних (гігабітних) мереж. Гігабітні мережі з'явилися на початку 90-х років XX століття. Спроби застосувати до них старі протоколи натрапили на низку проблем. Найважливіші їх наступні.
Отже, припущення розробників протоколів, що час циклу простору порядкових номерів значно перевищує максимальне життя пакетів, виявилося неприйнятним для гігабітних мереж.
2. Швидше зростання швидкості передачі, ніж швидкості обробки даних. Ця обставина змушує розробників протоколів управління обміном даними та обробки даних шукати прийнятні рішення.
3. У довгих лініях гігабітних головним обмежуючим фактором є не пропускна здатність, а затримка. Цим гігабітні лінії принципово відрізняються від мегабітних. У гігабітних лініях час на передачу фіксованого обсягу інформації зі зростанням швидкості передачі зменшується, але лише до певної межі. При подальшому збільшенні швидкості передачі час на передачу майже не змінюється, головним фактором, що обмежує, стає затримка. Така залежність демонструє обмеження старих мережевих протоколів. Наприклад, протоколи з очікуванням на підтвердження, такі як віддалений виклик процедури, мають вроджене обмеження на продуктивність.
4. Поява нових гігабітних мультимедійних програм, для яких сталість часу передачі пакета так само важлива, як і середнє значення часу затримки. Постійна швидкість доставки, навіть якщо вона низька, часто краща за високу, але непостійну. Ця проблема пов'язана вже не з протоколами чи технологіями.
Деякі методи вирішення зазначених проблем розглядаються нижче.
Головний принцип, яким повинні керуватися розробники гігабітних мереж, формулюється так: при проектуванні таких мереж слід прагнути збільшувати швидкість обробки пакетів, а не пропускну здатність ліній зв'язку. У гігабітних мережах немає сенсу економити пропускну спроможність, оскільки її більш ніж достатньо. При розробці протоколів необхідно мінімізувати час обробки.
Спроби прискорити роботу мереж за рахунок створення швидких мережевих інтерфейсів на апаратному рівні зазвичай не призводять до позитивних результатів, оскільки такий інтерфейс є додатковим співпроцесором зі своєю програмою. Якщо його зробити швидким, то він буде дуже дорогим, якщо повільним, то центральний процесор чекатиме, поки співпроцесор закінчить свою роботу. Більше того, для взаємодії двох процесорів загального призначення будуть потрібні ретельно продумані протоколи, що забезпечують їхню коректну синхронізацію. Як правило, найкращим рішенням є створення простих протоколів, реалізацію яких покласти на центральний процесор.
Питання зворотний зв'язок у високошвидкісних протоколах має значення. Переважно відмовитися від зворотного зв'язку, оскільки на оповіщення відправника про отримання повідомлення йде занадто багато часу. Крім того, прагнення підвищити продуктивність гігабітних мереж змушує розробників вибирати схему роботи мережі, орієнтовану на попереднє з'єднання пунктів, що взаємодіють.
У гігабітних мережах дуже важливий формат пакету. У заголовку має бути якнайменше полів, а самі поля мають бути досить великими, щоб нести в собі якнайбільше необхідної службової інформації. Все це дозволить скоротити час обробки заголовків.
Контрольні суми заголовка та даних кращепідраховувати окремо. Це дає можливість визначати контрольні суми швидше і, крім того, дозволяє переконатися в правильності заголовка, перш ніж копіювати дані в простір одержувача. Контрольну суму даних краще перевіряти під час копіювання даних.
Розмір поля даних у пакеті має бути досить великим. Це зменшує загальну суму заголовків у потоці даних, що передаються (тобто знижує накладні витрати на їх обробку) і, крім того, забезпечує можливість ефективної роботи мережі навіть за наявності великих затримок.
У гігабітних мережах лінії зв'язку, зазвичай, є високоякісними, помилки у яких виникають дуже рідко. Тому розробник цих мереж має в першу чергу мінімізувати час обробки нормального режиму роботи, коли помилки відсутні. Мінімізація часу обробки при наявності помилок на лінії зв'язку повинна бути на другому місці.