Налаштування Fledge
Багато факторів впливатимуть на продуктивність системи Fledge
- Продуктивність центрального процесора, пам’яті та пам’яті основного обладнання
- Продуктивність каналу зв'язку з датчиками
- Комунікації до північних систем
- Вибір системи зберігання
- Зовнішні запити через загальнодоступний REST API
Багато з них знаходяться поза контролем самого Fledge, однак можна налаштувати спосіб використання певних активів Fledge для досягнення кращої продуктивності в межах обмежень середовища розгортання.
Розширена конфігурація Південного Сервіса
Кожен з південних сервісів у Fledge має набір розширених параметрів конфігурації. Дос туп до них здійснюється шляхом редагування конфігурації самого південного сервіса. З’явиться екран із набором панелей із вкладками, виберіть вкладку з позначкою Advanced Configuration, щоб переглянути та змінити параметри розширеної конфігурації.

Maximum Reading Latency (mS) - Це максимальний період часу, протягом якого південний сервіс буферизуватиме зчитування перед тим, як надсилати його на рівень зберігання. Значення виражається в мілісекундах і фактично визначає максимальний час очікування, перш ніж ви зможете переглянути дані, отримані цим південним сервісом.
Maximum buffered Readings - Це максимальна кількість зчитувань, які сервіс півдня буде буферизувати перед спробою надіслати ці зчитування далі до сервіса зберігання. Це та налаштування вище працюють разом, щоб визначити стратегію буферизації південного сервіса.
Throttle - Якщо ввімкнено, це дозволяє регулювати швидкість читання південним сервісом. Сервіс намагатиметься опитувати зі швидкістю, визначеною Reading Rate, однак, якщо це неможливо, оскільки показання пересилаються з південного сервіса з нижчою швидкістю, швидкість читання буде зменшено, щоб запобігти буферизацію в південному сервісі від перевантаження.
Reading Rate - Швидкість опитування для цього південного сервіса. Цей параметр діє, лише якщо ваш південний плагін опитується, асинхронні південні сервіси не використовують цей параметр. Одиниці вимірювання визначаються налаштуванням пункту Reading Rate Per.
Asset Tracker Update - Це визначає, як часто засіб відстеження активів очищає кеш інформації відстеження активів на рівень зберігання. Це значення, виражене в мілісекундах. Засіб відстеження активів лише записує оновлення, тому, якщо у вас є фіксований набір активів, що надходять у трубопровід, засіб відстеження активів записуватиме будь-які дані лише під час першого перегляду кожного активу, а потім не виконуватиме подальших записів. Якщо у вас є мінливість у ваших активах або структурі активів, засіб відстеження активів буде більш активним, і стане кориснішим налаштувати цей параметр.
Reading Rate Per - Це визначає одиниці, які використовуватимуться у значенні Reading Rate. Він дозволяє вибрати за секунду, хвилину чи годину.
Poll Type - Це визначає механізм, який використовується для керування запитами на опитування, які надсилатимуться до плагіна. Наразі доступні три варіанти: інтервальне опитування, опитування за фіксованим часом і опитування за запитом.
- Interval опитування надсилає запит на опитування з фіксованою швидкістю, яка визначається параметрами Reading Rate і Reading Rate Per, описаними вище. Перший запит на опитування буде видано після запуску плагіна та не буде синхронізовано з будь-яким часом чи іншими подіями в системі.
- Fixed Times опитування надсилає запити на опитування у фіксований час, який визначається набором годин, хвилин і секунд. Цей час визначено в місцевому часовому поясі машини, на якій запущено екземпляр Fledge.
- On Demand опитування не виконуватиме жодного регулярного опитування, натомість воно чекатиме на надсилання контрольної операції до сервіса. Ця операція наз ивається poll і не приймає аргументів. Це дозволяє ініціювати опитування механізмами керування зі сповіщень, розкладів, північних сервісів або запитів API.
Hours - Це визначає години, коли буде зроблено запит на опитування. Години виражаються за допомогою 24-годинного годинника, із запитами на опитування, лише коли поточна година збігається з однією з годин у списку годин, розділених комами. Якщо поле Години залишити незаповненим, опитування буде видано протягом кожної години дня.
Minutes -Це визначає хвилини дня, коли надходять запити на опитування. Запити на опитування виконуються лише тоді, коли поточна хвилина збігається з однією з хвилин у списку хвилин, розділених комами. Якщо поле Хвилини залишити порожнім, запити на опитування надсилатимуться протягом будь-якої хвилини протягом години.
Seconds - Це визначає секунди, коли будуть зроблені запити на опитування. Секунди — це список секунд, розділених комами, запити на опитування виконуються, коли поточна секунда відповідає одній із секунд у списку. Якщо вибрано опитування Fixed Times, то поле Seconds не має бути порожнім.
Minimum Log Level - Цей параметр конфігурації можна використовувати для встановлення журналів, які відображатимуться для цього сервіса. Він визначає рівень журналювання, який надсилається до системного журналу, і може бути встановлено на помилка, попередження, інформація чи налагодження (error, warning, info чи debug). Журнали вибраного рівня та вищого рівня надсилатимуться до системного журналу. Ви можете отримати доступ до вмісту цих журналів, вибравши значок журналу в нижньому лівому куті цього екрана.
Statistics Collection - Цей параметр конфігурації можна використовувати для контролю того, наскільки докладною є статистика, зібрана південним сервісом. Є три варіанти, які можна вибрати
Параметр per asset & per
serviceзбиратиме одну статистику для кожного отриманого об’єкта та загальну статистику для всього сервіса. Опція perserviceлише збирає загальну статистику прийому послуги, а опція per asset збирає статистику лише для кожного активу, а не для всього сервіса. За замовчуванням статистика збирається на основі активів і послуг. Це не найкращий параметр, якщо велика кількість окремих активів приймається одним південним сервісом. Використання параметрів «за активом» або «за активом і послугою» має бути обмежено південним сервісом, яка збирає відносно невелику кількість окремих активів. Збір великої кількості статистичних даних для 1000 або більше різних активів призведе до значного збільшення продуктивності та може перевантажити менш добре забезпечені екземпляри Fledge. Якщо велика кількість активів поглинається одним південним сервісом, це значення має бути встановлено на perservice.Примітка
Налаштування Statistics Collection не видалить жодну наявну статистику, вона залишиться та буде відображена в історії статистики. Це впливає лише на нові зібрані значення. Рекомендується встановлювати це перед першим запуском сервіса, якщо потрібно, щоб не було записаних статистичних значень для активів або сервіса.
Примітка
Якщо використовується параметр per
service, то на сторінці інтерфейсу користувача, на якій відображаються південні сервіси, не відображатимуться назви активів і їх кількість для кожного з активів, отриманих цим сервісом.
- Performance Counters - Цей параметр дозволяє збирати лічильники продуктивності, які можна використовувати для налаштування південного сервіса.
Лічильники продуктивності
Кілька лічильників продуктивності можна зібрати в південному сервісі, щоб допомогти охарактеризувати продуктивність послуги. Це призначено для надання вхідних даних для налаштування сервіса, і збір цих лічильників не слід залишати ввімкненим під час використання сервіса в робочих умовах.
Лічильники продуктивності збираються в сервісі, а звіт записується раз на хвилину на рівень зберігання для подальшого отримання. Записані значення є
- Мінімальне значення лічильника, що спостерігається протягом поточної хвилини
- Максимальне значення лічильника, що спостерігається протягом поточної хвилини
- Середнє значення лічильника, що спостерігається протягом поточної хвилини
- Кількість зразків лічильника, зібраних протягом поточної хвилини
У поточному випуску лічильники продуктивності можна отримати лише шляхом прямого доступу до бази даних конфігурації та статистики, вони зберігаються в таблиці monitors. Або через REST API. Майбутні випуски включатимуть інструменти для отримання та аналізу цих лічильників продуктивності.
Щоб отримати доступ до лічильників продуктивності через REST API,
використовуйте точку входу /fledge/monitors, щоб отримати всі
лічильники, або /fledge/monitor/{service name}, щоб отримати лічильники
для одного сервіса.
Коли збір увімкнено, для ввімкненого південного сервіса збиратимуться такі лічильники.
| Лічильник | Опис | Причини та заходи щодо усунення |
|---|---|---|
| queueLength | Загальна кількість зчитувань, поставлених у чергу в південному сервісі для надсилання до сервіса зберігання. | Великі черги в південному сервісі означатимуть, що сервіс займатиме більше, ніж зазвичай, але само по собі це не буде проблемою. Однак якщо розмір черги безперервно зростає, зрештою відбудеться збій розподілу пам’яті в південному сервісі. Якщо ввімкнути обмеження швидкості прийому даних, кількість даних, які додаються до черги, може бути достатньою для вирішення проблеми, однак дані збиратимуться зі зниженою швидкістю. Іншим рішенням може бути швидший плагін зберігання, можливо, використання механізму зберігання в пам’яті. Якщо ваш екземпляр має багато південних сервісів, можливо, варто розглянути можливість розділити південні сервіси між кількома екземплярами. |
| ingestCount | Кількість зчитувань, отриманих під час кожної взаємодії плагіна. | Лічильник відображає кількість зчитувань, які повертаються для кожного виклику до точки входу опитування плагіна South або асинхронного виклику плагіна South. Як правило, це число має бути помірно низьким, якщо дуже великі номери повертаються під час одного виклику, це призведе до накопичення дуже великих черг у південному сервісі, а продуктивність системи буде знижена через великий пакет даних, який, можливо, перевантажить інші рівні чергуються з періодами бездіяльності. В ідеалі піки повинні бути усунені, а швидкість залишатися «рівною», щоб найкраще використовувати систему. Подумайте над тим, щоб змінити конфігурацію плагіна півдня так, щоб він повертав менше даних, але частіше. |
| readLatency | Найдовший час, який зчитування перебувало в черзі між поверненням південного модуля та відправленням на рівень зберігання. | Цей лічильник описує, як довго (у мілісекундах) найстаріше зчитування чекає у внутрішній черзі обслуговування півдня перед тим, як буде надіслано на рівень зберігання. Це має бути менше або дорівнювати визначеній максимальній затримці, воно може бути трохи більше, щоб урахувати час керування чергою, але не повинно бути значно вищим. Якщо він значно вищий протягом тривалого часу, це означатиме, що сервіс зберігання не в змозі впоратися з покладеним на неї навантаженням. Можливо, налаштування рівня зберігання, зміна плагіна з вищою продуктивністю або плагіна, який краще підходить для вашого робочого навантаження, може вирішити проблему. Крім того, розгляньте можливість зменшення навантаження, розділивши південні сервіси між кількома примірниками Fledge. |
| flow controlled | Кількість разів, коли швидкість читання була знижена через надмірні черги, що накопичуються в південному сервісі. | Це тісно пов’язане з лічильником queuLength і має майже такий же набір дій, які слід виконувати, якщо послуга часто керується потоком. Зменшення швидкості прийому або додавання фільтрації в трубопровід для зменшення обсягу даних, що передаються далі до сервіса зберігання, може полегшити проблему. Загалом, якщо можна виконати обробку, яка скорочує дані з високою пропускною здатністю до даних з нижчою пропускною здатністю, які все ще можуть характеризувати вміст із високою пропускною здатністю, то це слід робити якомога ближче до джерела даних, щоб зменшити загальне навантаження на систему. |
| throttled rate | Швидкість, з якою дані надходять у результаті регулювання керування потоком. | Цей лічильник більше призначений для отримання інформації про те, яка може бути розумна швидкість прийому, яку система може підтримувати з поточною конфігурацією. Це корисно, оскільки дає гарне уявлення про те, наскільки далека поточна конфігурація системи від бажаної продуктивності. |
| storedReadings | Зчитування успішно надіслано на рівень зберігання. | Цей лічильник показує пропускну здатність, доступну від сервіса до механізму зберігання. Це має бути принаймні таким же високим, як швидкість прийому, якщо дані не збираються накопичуватися в буферах у сховищі. Зміна розширених налаштувань максимальної затримки та максимальних буферизованих зчитувань на південному сервері може вплинути на цю пропускну здатність. |
| resendQueued | Кількість зчитувань у черзі для повторного надсилання. Зауважте, що зчитування можуть бути поставлені в чергу для повторного надсилання кілька разів, якщо повторне надсилання також не вдалося. | Це хороший показник умов перевантаження в системі зберігання даних. Постійно високі значення цього лічильника вказують на необхідність покращення продуктивності рівня зберігання. |
| removedReadings | Кількість зчитувань, які було видалено після занадто багатьох спроб зберегти їх на рівні зберігання. | Зазвичай це значення має бути нульовим або близьким до нуля. Будь-які значні значення тут є вказівкою на критичну помилку або з даними південного плагіна, які створюються, або з роботою рівня зберігання. |
Опитування з фіксованим часом
Опитування з фіксованим часом можна використовувати кількома способами для контролю надходження запитів на опитування, серед можливих скриптів:
- Опитування в фіксований час протягом хвилини або години.
- Опитування лише в певні періоди доби.
Щоб проводити опитування у фіксований звичайний час, просто встановіть час, коли потрібно опитування. Наприклад, щоб опитувати кожні 15 секунд через 0 секунд після хвилини, 15, 30 і 45 секунд після години, просто введіть у поле Seconds значення 0, 15, 30, 45 і залиште хвилини та години порожніми.
Якщо ви бажаєте здійснювати опитування щогодини та кожні 15 хвилин після цього, установіть для поля Хвилини значення 0, 15, 30 і 45, а для поля Секунди встановіть значення 0. Налаштування Секунди на інше одне значення, наприкл ад 30, просто змінить час опитування на 0 хвилин і 30 секунд, 15 хвилин і 30 секунд і т. д. Якщо задано кілька значень секунд, буде проведено кілька опитувань. Наприклад, якщо для параметра Хвилини встановлено значення 0, 15, 30, 45, а для параметра Секунди встановлено значення 0, 30. Опитування відбуватиметься о 0 хвилинах і 0 секундах, 0 хвилинах і 30 секундах, 15 хвилинах і 0 секундах, 15 хвилин тридцять секунд.
Поле Годин, якщо його не залишити порожнім, працюватиме так само, як хвилини вище.
Інше використання цієї функції полягає в опитуванні лише в певний час доби. Як приклад, якщо ми хочемо проводити опитування кожні 15 хвилин між 8:00 і 17:00, ми можемо встановити для поля Годин значення 8,9,10,11,12,13,14,15,16 і * Хвилини* мають значення 0, 15, 30, 45. Поле секунд можна залишити 0.
Примітка Останнє опитування дня буде о 16:45 у вказаній вище конфігурації.
Незважаючи на те, що інтервали між опитуваннями, показані у наведених вище прикладах, усі однакові, немає жодних вимог, щоб це було так.
Налаштування використання буфера
Налаштування південного сервіса дозволяє контролювати спосіб використання буферизації в південному сервісі. Встановлення низького значення затримки призводить до частих викликів для надсилання даних до сервіса зберігання, а отже означає, що дані стають доступнішими швидше. Однак надсилання невеликої кількості даних під час кожного виклику до системи зберігання не призводить до найоптимальнішого використання комунікацій або самого механізму зберігання. Встановлення вищого значення затримки призводить до надсилання більшої кількості даних за транзакцію із системою зберігання та підвищення ефективності системи. Ціною цього є потреба в більшому обсязі пам’яті в південному сервісі.
Встановлення значення Maximum buffers Readings дозволяє користувачеві обмежити обсяг пам’яті, який використовується для буферизації в південному сервісі, оскільки коли це значення досягнуто, незалежно від віку даних і налаштування параметра затримки, дані будуть надіслані до сервіса зберігання. Встановлення цього значення на менше значення дозволяє точніше контролювати обсяг пам’яті за рахунок менш ефективного використання сервіса зв’язку та зберігання.
Налаштування між продуктивністю, затримкою та використанням пам’яті завжди є балансуванням. Бувають ситуації, коли вимоги до продуктивності означають, що знадобиться висока затримка, щоб максимально ефективно використовувати зв’язок між мікросервісами та транснаціональною продуктивністю. механізму зберігання. Так само ресурси пам'яті, доступні для буферизації, можуть обмежувати продуктивність, яку можна отримати.

