Як описати вимоги щодо продуктивності VMware для нашого додатку до адміністратора VMware?


23

Часто установка нашого на місці, стійкого до debian програми, працює у віртуальній машині - як правило, у VMware ESXi. У загальному випадку ми не маємо видимості або впливу на їхнє середовище віртуалізації і не маємо доступу до, наприклад, клієнта VMware vCenter або його еквівалента. Я зосереджуюсь на VMware тут, тому що це на сьогоднішній день є найпоширенішим, що ми бачимо.

Ми хотіли б:

  • Повідомте адміністратора VMware клієнта: Ви можете запускати наше додаток, наприклад, у середовищі VMware ESX, якщо воно відповідає критеріям продуктивності X, Y та Z.
  • Бути в змозі визначити, чи насправді критерії X, Y і Z постійно виконуються (наприклад, прямо зараз ), навіть у запущеній системі (ми не можемо зупинити наш додаток і запустити орієнтири, а початковий орієнтир не буде достатнім, оскільки продуктивність у віртуальні середовища змінюються з часом).
  • Будьте впевнені, що якщо будуть виконані критерії X, Y і Z, ми матимемо адекватні віртуальні ресурси HW, щоб запустити нашу програму із задовільною продуктивністю.

Тепер що таке X, Y і Z?

Ми неодноразово бачили, що, коли виникають проблеми з продуктивністю, проблема не в нашому застосуванні, а в середовищі віртуалізації. Наприклад, інша віртуальна машина використовує багато процесора, пам'яті або SAN, на яких фактично зберігаються диски, отримує велике використання чимось, крім нашого додатку. Наразі у нас немає способу довести чи спростувати це.

Теоретично також можливо, що іноді наше застосування повільне ... ;-)

Як можна визначити першопричину наших проблем із продуктивністю: віртуальне середовище чи наш додаток?

Зазвичай існують 3 зони для проблем з продуктивністю CPU, Memory та DISK I / O.

ЦП

Наприклад, VMware адміністратор може вказати резервування та ліміт, виражені в МГц, але, наприклад, 512 МГц на одному хості ESX точно такий же, як 512 МГц на іншому хості ESX, можливо, у зовсім іншому кластері ESX?

І як можна виміряти, чи дійсно ми це отримуємо? Поки наша програма працює, ми можемо побачити, що ми на 212% використовуємо процесор на 4 процесорах. Це тому, що наш додаток робить багато чи тому, що інший VM на тому ж хості виконує інтенсивне завдання процесора та використовує весь процесор?

Пам'ять (Повітряна куля?)

Якщо ми запитуємо, наприклад, 16 Гб оперативної пам’яті, що часто налаштовується, але через повітряну кулю ми фактично отримуємо лише 4 ГБ, і це дивно, наша програма працює погано.

Можна запитати інструменти VMware про поточну повітряну кулю, але ми виявили, що вона часто лежить (або принаймні неточна). Ми бачили приклади, коли ОС вважає, що є 16 ГБ оперативної пам’яті, сума пам’яті постійної пам’яті (RSS) усіх процесів становить 4 Гб оперативної пам’яті, але є лише 2 ГБ оперативної пам’яті, навіть коли інструменти VMware говорять нам, що є 0 балотування: - (

Крім того, просто додавання RSS разом не є дійсним, тому що тут можна легко поділити оперативну пам’ять, наприклад, пам'ять під час копіювання, тому 512 МБ + 512 МБ не обов'язково означає 1 ГБ, але може означати щось менше. Таким чином, не можна просто відняти RSS від усіх процесів, щоб визначити, наскільки оперативна пам'ять повинна бути вільною і тим самим надійно виявити повітряну кулю. Можна виявити деякі випадки повітряної кулі, але є й інші випадки, коли повітряна куля діє, але не виявляється цим методом.

Дисковий ввід / вивід

Я думаю, ми могли б з часом графікувати кількість читання та запису диска, кількість прочитаних та записаних байтів, а також IO очікування%. Але це дасть нам точну картину дискового вводу / виводу? Я гадаю, що якщо в іншому віртуальному комп'ютері працює весь майнер біткойн, який використовує весь процесор, наш IO-час очікування збільшиться, навіть якщо базовий SAN дає точно таку ж ефективність, просто тому, що наші ресурси процесора знижуються, а значить, IO чекають ( який вимірюється у% ) йде вгору.

Отже, підсумовуючи, якою мовою ми можемо скористатись для опису, наприклад, адміністратора VMware, яка продуктивність нам потрібна у портативному та вимірюваному вигляді?


Які фактичні вимоги вашої заявки? Те, що ви описали до цього часу, для мене недостатньо, щоб точно оцінити потреби в ресурсах в моєму середовищі, і я добре обізнаний у VMware. Вашій цільовій аудиторії буде ще складніше. На практиці я закінчую ігнорування вимог постачальників та вимірювання / розмір VM на основі історичних показників та спостережень за допомогою vRealize Operations Manager.
ewwhite

1
@ewwhite: Я жодним чином не є експертом з обладнання. Але дозвольте бути конкретним і скажу, що він працює на Core i7-5820K з 8 Гб оперативної пам’яті. Магнітні диски приблизно 2015 рік прекрасний, SSD - кращий (я можу бути більш конкретним тут, якщо потрібно). Нам потрібно 80 Гб вільного місця на диску.
Петро В. Морч

2
Як адміністратор, я б сказав: "скільки ядер потрібно виділити, яка фактична вимога оперативної пам'яті, яка вимога зберігання з точки зору ВООЗ та пропускної здатності, яка швидкість зростання сховища, чи я в порядку з тонким забезпеченням тощо? "
ewwhite

Що вимагає ваша програма з точки зору ефективності? У вас є орієнтири для вашої заявки? Сказання "It runs fine with x, y, and z"недостатньо точне. Ви повинні мати можливість точно сказати своїм клієнтам, що вимагає ваша заявка. Якщо вони дадуть вам ці ресурси, і програма працює погано, питання не в цьому "What do we need from a resource perspective?", але"Why is it performing poorly even though the proper resources have been allocated?"
joeqwerty

1
@ewwhite: "Розв’язано"? Ні. У мене все ще немає 25-словного закріплення, яке я можу дати адміністратору VMware, а потім зможу перевірити і знати, що ми отримаємо передбачувані показники роботи, тому що, як ви знаєте, "це залежить". Але я прийняв вашу відповідь, тому що зараз думаю, що така точна і вимірювана вимога неможлива, і ваша інформація йде довгим шляхом до розмови на належній мові. В майбутньому я рекомендую перейти до маршруту "Якщо ви хочете, щоб ми усунули неполадки, нам буде потрібно принаймні переглянути доступ до вашого vCenter".
Пітер В. Морч

Відповіді:


23
  • Серйозно, більшість адміністраторів VMware не дуже в цьому: Погане розуміння управління ресурсами, часто відсутні знання Linux (це допомагає) та відсутність пропускної здатності в часі. Мені здається, що більшості внутрішніх адміністраторів важко підтримувати глибокі знання з віртуалізації.

  • На щастя, є книга, яку ви можете прочитати !

  • Більшість середовищ VMware не дуже великі: поганий дизайн кластерів, неправильне планування ресурсів , нестандартне зберігання (наприклад, Synology NAS), неправильно налаштований HA, відсутність моніторингу чи виправлення.

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

Усі ці речі будуть працювати проти вас.

Ви повинні визначити реальні вимоги вашого рішення. Уміння точно заявити, що для вашого пристрою потрібні: 2 vCPU, 8 ГБ оперативної пам’яті та 500 IOP-накопичувачів, це дозволить пройти довгий шлях комусь, як я.

Інший підхід - дотримуватися здорового або ідеального середовища та екстраполювати показники звідти.

Ви описали проблеми з певними розгортаннями. Які були проблеми та вузькі місця?


Приклад ВМ потрібного розміру:

Сервер Exchange для організації з 300 користувачів.

  • Ми маємо 6 тижнів теплових карт навантаження / напруги залежно від часу.
  • 6 vCPU тримає нас над напруженою зоною з буферним приміщенням для шипів.
  • 32 ГБ оперативної пам’яті тримає нас вище значення напруги, але не є необґрунтованою сумою вище, ніж дійсно потрібно.

введіть тут опис зображення

  • Я міг би отримати кілька ГБ оперативної пам’яті та vCPU, але все в цьому, це ефективний VM.
  • Було б розумно отримати такий тип моніторингу вашої програми в ідеальних умовах.

введіть тут опис зображення


Приклади моніторингу ресурсів VM.

Хороший результат: - VM має розмір правильного розміру. - CPU надмірно переданий у кластері, але ми не стикаємося з суперечкою.

введіть тут опис зображення

Bad-ish:

  • VM ніколи не отримає всю оперативну пам’ять, на яку налаштовано.
  • VM вже замінює оперативну пам’ять.
  • Процесор є надмірно налаштованим.

введіть тут опис зображення


2
Дякую, ewwhite за вашу відповідь. На думку аргументу, скажімо, що для одного клієнта він чудово працює з: 2 vCPU, 8 Гб оперативної пам’яті та 500 IOP-накопичувачами (з вашої відповіді). На іншому веб-сайті клієнта ми просимо те ж саме і отримуємо це, за словами адміністратора VMware. Однак 2vCPU поділяються з 17 іншими голодними процесорами VM, а 8 Гб оперативної пам’яті також надуто. Я не дуже добре розумію диски VM, тому скажемо, що ми насправді це отримуємо. Наш додаток чудово працює в першому з цих двох середовищ ESXi, і в іншому жахливо. Як я можу виміряти різницю між ВМ?
Петро В. Морч

1
Ви можете відстежувати " викрадення процесора " вгорі у своєму VM, щоб побачити, чи CPU був надто сильно перезаписаний. Для повітряної кулі / заміни оперативної пам’яті важко сказати всередині VM, за винятком поганих показників. Ви можете попросити переглянути vCenter та ресурси для VM. Див. Приклади вище.
ewwhite

1
Я загляну в CPU Steal. Іноді ми закінчуємо тим, що адміністратор VMware вказує пальцями на наше додаток, а ми вказуємо пальцями на повільне середовище VMware. Однак у нас, найчастіше, навіть немає доступу до vSphere, і тоді важко усунути неполадки, коли він працює чудово в інших установках. Я думаю, що одним із підходів може бути: "Якщо ви хочете, щоб ми вирішили проблеми, нам знадобиться принаймні переглянути доступ до вашого vCenter"
Peter V. Mørch

3
Більшість адміністраторів VMware навіть не знають, як читати ці речі. Я витрачаю багато часу на прибирання після них. Тож як постачальнику важко попросити доступ або зрозуміти їх налаштування. Але я думаю, що було б найкраще закріпити свої вимоги, а потім застосувати. Хоча я зазвичай не рекомендую встановлювати застереження, але якщо ваша програма є критичною, це може мати сенс. Або принаймні, встановивши "пріоритет акцій". Що робить додаток?
ewwhite

1
Ви думали, чи поширювати це як пристрій VMware з невеликою, середньою та великою рекомендованою конфігурацією?
ewwhite
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.