Як максимально збільшити екземпляр продуктивності EC2


11

Відмова від відповідальності: Я - розробник на передньому кінці у сервері.

Привіт, народ. У мене є екземпляр сервера на EC2, c5d.9xlargeспецифікація якого:

  • Система: Ubuntu 18.04
  • vCPU: 36 ниток / ядер
  • Пам'ять: 72 Гб
  • Зберігання: 900 ГБ NVMe SSD
  • Виділена пропускна здатність EBS: 7000 Мбіт / с
  • Продуктивність мережі: 10 Гбіт / с

Сценарій: я використовую цей сервер для завантаження великих відео (4K, 1+ год) і обробляють їх за допомогою FFMPEG, але порівняно з моїм попереднім сервером UpCloud з 12 ядрами і 48 ГБ оперативної пам’яті, цей сервер EC2 займає в 1,5 рази більше часу для завантаження та обробки , що, на мою думку, не повинно бути так.

Запитання: Як я максимізую ефективність за те, за що я плачу?


Ви повинні подивитися на вартість AWS Elastic Transcoder, щоб переконатися, чи працює він краще для вас.
Тім

Дякую @Tim Я бачив це деякий час тому, але у мене фактично є ще кілька дзвінків на цьому сервері, тому я зрозумів, що я їх поєднаю.
Мартавіс П.

Відповіді:


19

У c5d.9xlargeкомплекті є 900 Гб пам’яті екземпляра (він же ефемерне сховище ) - ви використовуєте це для зберігання та обробки файлів? Хоча у вашому екземплярі є деяка виділена пропускна здатність EBS, зберігання на інстанції SSD все одно буде набагато швидше . Я пропоную вам використовувати це для всіх вихідних та тимчасових файлів, а результати зберігати лише в EBS.

Існує декілька застережень із зберіганням примірників, хоча:

  1. Ви повинні відформатувати та змонтувати його, перш ніж його можна буде використовувати. Детальну інформацію див. У цій відповіді: Автоматично монтуйте сховище екземплярів SSD на AWS EC2 в Ubuntu 16.04

  2. Вміст стирається при зупинці та повторному запуску екземпляра. Він переживає перезавантаження, але не зупиняється / запускається.


Оновлення: за замовчуванням SSD не змонтовано - вам доведеться виконувати кроки у зв'язаному відповіді, щоб скористатися ним. У стандартній конфігурації після завантаження ви будете використовувати EBS, який повільніше, ніж SSD.

Тоді вам доведеться переконатися, що ви його фактично використовуєте - встановіть каталог завантаження , робочий та тимчасовий каталог на цю точку монтування SSD.

Або ще краще - оскільки у вас є 72 ГБ оперативної пам’яті - створіть диск оперативної пам’яті та використовуйте його для тимчасових файлів. Це буде навіть швидше, ніж SSD (якщо файли підходять).

Перш за все ігноруйте швидкість завантаження та оптимізуйте обробку - завантажте файл у EBS та час його обробки, потім завантажте на SSD та час його, а потім на диск RAM та час обробки. Подивіться, наскільки вони відрізняються.

На швидкість завантаження впливатиме багато аспектів, включаючи відстань та затримку між вами та регіоном AWS, до якого ви завантажуєте. Чи використовуєте близький вам AWS регіон?

Знову продуктивність процесора - у вас 36 доступних процесорів, однак кожне ядро може бути повільніше, ніж ядра у попередній 12-ядерній машині. Це залежить від архітектури процесора та тактової частоти. Однак, якщо ви можете паралельно обробити відео на 36 потоків, вам слід краще зупинитися на цьому випадку. Якщо ви покладаєтесь на одну нитку, можливо, ви не отримаєте потрібну продуктивність.

Сподіваюся, що це допомагає :)


Так, жорсткий диск використовується для зберігання під час обробки файлів і тимчасових файлів, поки процес не закінчиться. Отримані файли надсилаються до S3. Я фактично не знаю, чи встановлений SSD. Я починаю розуміти, що AWS не використовує специфікації як налаштування за замовчуванням. Чи встановлення SSD прискорює завантаження? Слідкуйте за будь-якими ідеями, як я можу максимально збільшити дозволені характеристики CPU?
Мартавіс П.

@MartavisP. до відповіді додано кілька оновлень.
MLu

Ого, дякую тобі за інформацію! Я буду вивчати і застосовувати те, що ви написали.
Мартавіс П.

1
Чудова відповідь. Вам потрібно зробити орієнтир, щоб знайти вузьке місце, розподілити його на час завантаження, час обробки, використання процесора, використання EBS / мережі тощо. Це може бути таким же простим, як у вас більше затримок на цьому сервері, тому завантаження відбувається повільніше, яку можна обійти, завантаживши дані в паралельні потоки в EC2 / S3. Netflix має це відео на YouTube, яке може бути цікавим, але виконайте діагностичні дії, перш ніж зайнятися такою деталлю.
Тим

1

Чи є можливість шукати альтернативи? За ціну c5d.9xlarge, навіть якщо ви отримуєте значну знижку, на спеціальному ринку серверів у вас може бути кілька еквівалентних або кращих машин

Використання хмари для подібної проблеми з вертикальним масштабом - це рецепт переплати та, як ви вже бачили, низької продуктивності

Вибачте за невідповідь, але мені не вистачає респондентів для коментарів


Це була знижка для мене, перехід з UpCloud. Отже, що ти рекомендуєш?
Мартавіс П.

1
Здається, що той самий обчислювач у хмарі завжди приблизно в 4 рази ціна щомісячного орендованого сервера на якомусь випадковому веб-хостері. Потім є знижки для підприємств (~ 30%), і ви можете забронювати протягом 3 років (в 2 рази дешевше, але зараз набагато гірше, ніж у випадкового веб-хостера). А цей сервер, що орендується щомісяця, як правило, здається на 1/12 ціну від прямого придбання обладнання. Це я принаймні бачу. Тож у хмарі ви купуєте обладнання кожен 3 місяці, але не володієте ним.
usr

Так, це хороший момент, але ви повинні пам’ятати, що ви платите за технічне обслуговування та зручність, як і все в житті. Я вважаю за краще, щоб AWS був моїм механіком, ніж витрачати дні на спроби з'ясувати, як виправити відключення сервера. Це добре знання, але в кінцевому рахунку моя кар’єра стосується коду, тому хмара працює для мене.
Мартавіс П.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.