Цю сторінку перекладено машинним перекладом. Читайте англійський оригінал. English

Бібліотека IBSurgeon

Швидкий, лютий і дешевий: сервер із достатньою продуктивністю для бази даних малого бізнесу менш ніж за 1000 доларів США

(c) Alexey Kovyazin, IBSurgeon, 21 вересня 2017 (останнє оновлення - 29 вересня 2017)

Легко отримати потужний сервер, якщо ви готові витратити багато $$$: є провідні постачальники, як-от Dell, HP, та багато менш відомих апаратних компаній, вони із задоволенням продадуть вам потужну машину (зазвичай, з доставкою за 4-6 тижнів).

Однак гроші завжди є проблемою, особливо для малого бізнесу та стартапів, тому існує великий попит на «достатньо хороші» дешеві рішення. Ця стаття описує практичний підхід до побудови «достатньо хорошого» сервера баз даних із достатньою продуктивністю для малого бізнесу. Вона також містить розрахунки та посилання на конкретні продукти, які ми рекомендуємо.

Наша компанія (IBSurgeon) надає консультаційні послуги та послуги з обслуговування баз даних Firebird, і ми бачимо багато типів серверів (або, краще сказати, комп’ютерів, які використовуються як сервери). Великі клієнти використовують високопродуктивні конфігурації з SAN на основі SSD, 350+ ГБ оперативної пам’яті та подвійними топовими Xeon на борту, але клієнти малого та середнього бізнесу використовують менш потужні машини, оскільки їм не потрібна велика обчислювальна потужність і вони не мають багато грошей.

Ми помітили, що багато серверів насправді є звичайними робочими станціями, і, що найцікавіше, вони працюють досить стабільно роками. Є деякі справді екзотичні речі, як-от Windows XP на комп’ютері з 2 ГБ оперативної пам’яті (комп’ютер зібраний у 2002 році!), але більшість із них - це просто «достатньо хороші» самостійно зібрані апаратні рішення.

Звичайно, це питання статистики, і ніхто не рекомендуватиме використовувати робочу станцію як сервер, але питання полягає в тому: де баланс між стабільністю та витратами? Чи є хорошим підходом використання дешевого самостійно зібраного сервера з точки зору співвідношення ціни та якості? Що ми можемо отримати за 1000 доларів США? Які ризики пов’язані з недорогим обладнанням?

Кого може зацікавити сервер баз даних дешевший за 1000 доларів США?

Розглянемо таку ситуацію: офіс із 20-25 працівниками, люди працюють 7x5, розмір бази даних близько 50 ГБ. Це типова ситуація для компанії малого бізнесу, яка використовує якусь ERP або CRM, або специфічний застосунок (наприклад, систему автоматизації стоматологічного кабінету) для застосунків малого бізнесу на основі Firebird.

Уявімо, що компанія не завалена грошима і хоче заощадити якомога більше, не втрачаючи надійності, щоб досягти достатньо хорошої продуктивності. Відповідальна особа в компанії розуміє, що все обладнання рано чи пізно вийде з ладу, і хоче зменшити пов’язані ризики.

Який сервер їм потрібен для бази даних Firebird такого розміру та навантаження? Згідно з Firebird Hardware Guide, найкритичнішим ресурсом для бази даних є дисковий ввід/вивід, після нього - оперативна пам’ять, і вже потім - процесор (цікаво, що коли клієнти з малого та середнього бізнесу купують сервери у великих постачальників, вони часто обирають сервери з потужними процесорами та повільними дисками, ймовірно, через маркетингові матеріали, які перебільшують важливість процесора).

Диски

Швидкий ввід/вивід означає, що нам потрібні твердотільні накопичувачі (SSD), оскільки SSD є королем випадкових читань і записів. Звичайно, SSD не є панацеєю для баз даних, але він забезпечує справді високу продуктивність, і зараз це правильний вибір для баз даних.

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

Наприклад, Samsung 850 Pro 256 ГБ MZ-7KE256BW - SSD споживчого класу (на основі технології MLC), має TBW (загальний обсяг записаних байтів) 150 петабайт і DWPD (записів на диск на день) = 0,16. Або, простіше кажучи, ресурс можна пояснити як 40 ГБ записів щодня протягом 10 років.

Оновлення: ми отримали пропозицію, що Samsung PM863a ($181,59) або SM863a ($249) є надійнішими, ніж 850 Pro, але все ще доступними - по суті, за додаткові $60 ми можемо отримати кращу стабільність і певний захист від стрибків напруги.

Чи це багато чи ні? У нас є тестовий сервер із SSD споживчого класу, де ми запускаємо тести навантаження, щоб імітувати інтенсивну роботу 100 з’єднань із базою даних 60 ГБ. Щодня запускаються 3 таких тести по 3 години кожен - це означає, що ці тести імітують 9-годинний робочий день. Тести вже тривають 2 роки, і залишковий ресурс (згідно з прошивкою) становить 54%.

Звичайно, ~50% ресурсу означає, що диск слід замінити протягом наступного року… Чи це так погано? Кожні кілька років швидкість SSD зростає, а ціни падають: SSD у прикладі має 6 Гб/с і коштує $137, через 2-3 роки будуть диски 12G за ту саму ціну.

Ціна на Amazon від 124 доларів США

SSD корпоративного класу побудовані на основі іншої технології (SLC) і можуть виконувати приблизно в 30 разів більше операцій, ніж SSD споживчого класу того самого розміру. Також вони коштують приблизно в 3 рази дорожче, ніж SSD споживчого класу. Питання: чи справді нам потрібно в 30 разів більше циклів вводу/виводу для сервера малого бізнесу за потрійну ціну?

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

Ризики, пов’язані з SSD

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

Щоб зменшити ймовірність раптового збою обладнання, необхідно використовувати 2 SSD для бази даних, об’єднані в RAID1. RAID1 не означає, що нам потрібен окремий RAID-контролер, буде достатньо використати RAID-можливості сучасних чіпсетів материнських плат - по суті, це простий RAID-контролер без кешу.

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

Якщо не буде кешу, якою буде продуктивність? Сучасні SSD, як-от Samsung у прикладі, мають вбудований кеш і дуже розумні контролери - тому вони достатньо швидкі без виділених RAID-контролерів.

Звичайно, необхідно перевіряти стан дисків; зазвичай прошивка надає достатньо хорошу оцінку терміну служби дисків.

Резервні копії

Звичайно, нам потрібні диски для резервних копій. Найкращим вибором буде пара SATA-дисків по 2 ТБ кожен - наприклад, Seagate SkyHawk 2TB Surveillance Hard Drive, зі швидкістю 5900 об/хв.

Ціна на Amazon - $74,99

Нам потрібні 2 жорсткі диски, оскільки диски для резервних копій також мають бути в RAID1, щоб забезпечити захист від раптового збою обладнання. Ці диски для резервних копій можуть бути досить повільними, їхня основна мета - зберігати резервні копії та забезпечувати адекватну швидкість послідовного читання/запису. Диски зі швидкістю 5900 об/хв повільніші, ніж 7200 об/хв, але відомо, що вони надійніші. Ця конкретна серія дисків (Seagate SkyHawk) розроблена для лінійних записів: це саме те, що нам потрібно для резервних копій.

Ризики для дисків резервних копій

Ризик такий самий, як і для SSD, і ми захищаємося від нього так само: RAID1 і моніторинг. Імовірність того, що обидва диски в RAID1 вийдуть з ладу одночасно, має бути дуже малою.

Системний диск

Чи потрібен нам окремий диск для операційної системи? У найдешевшій конфігурації - ні, буде достатньо тримати ОС і базу даних на одному диску. Це трохи прискорить зношування SSD, але не настільки - у нашому сценарії він точно має протриматися 3 роки.

Процесор

Для сервера бази даних Firebird краще обрати процесор із багатьма ядрами та якомога нижчою частотою. Так, ви прочитали правильно - немає потреби у високочастотних процесорах для сервера бази даних. Firebird (якщо він налаштований правильно) використовує всі ядра для нормальної роботи, але не завантажує їх на 100%.

Є винятки: деякі операції обслуговування (резервне копіювання та відновлення), які виграють від високошвидкісного процесора, і погано написані SQL-запити з неправильним використанням індексів - вони споживають 100% ядра, але це явна ознака того, що потрібна оптимізація продуктивності бази даних. Загалом, неможливо компенсувати повільні запити високопродуктивними процесорами: навіть якщо процесор у 3 рази швидший, повільний запит все одно буде повільним.

З іншого боку, наявність кількох ядер може компенсувати існування таких ресурсомістких запитів: за кількості користувачів до 25 і з 8 ядрами ймовірність того, що всі ядра одночасно будуть зайняті повільними запитами, не така вже й велика.

І оскільки ми шукаємо дешеве рішення, ми обмежені настільними процесорами - і, на жаль, чіпами AMD. По суті, якби Intel міг запропонувати настільний процесор із 8 ядрами за ту саму ціну або трохи вищу, ніж AMD FX-8320E, ми могли б використати і Intel, але наразі я не бачу такого варіанту.

Цей чіп AMD не такий сучасний і не такий швидкий, але він має 8 ядер і є дешевим, тому це оптимальний вибір для нашого швидкого та недорогого сервера.

Ціна на Amazon: USD$108

Ризики, пов’язані з настільним процесором

Який потенційний ризик пов’язаний із процесором? Для низькочастотних (тобто не розігнаних) чіпів із належним кулером ризику майже немає. Коли ви востаннє чули про вихід із ладу настільного процесора - у 2003 році? Звісно, серверні процесори набагато швидші, але ми шукаємо достатньо хороше рішення.

Варто моніторити навантаження на процесор і температуру, щоб запобігти випадковим перезавантаженням.

Оперативна пам’ять

Необхідний обсяг оперативної пам’яті залежить від розміру бази даних і кількості користувачів. У нашому сценарії розмір бази даних становить 50 ГБ, а максимальна кількість користувачів - 30.

Максимальний обсяг, який може споживати Firebird, - це розмір бази даних (у цьому випадку вона повністю кешуватиметься в оперативній пам’яті) плюс 200-300 МБ на користувача (у випадку Firebird 2.5 SuperClassic). Отже, ідеальний максимальний обсяг оперативної пам’яті - 64 ГБ, але оскільки ми хочемо заощадити і маємо швидкий SSD, можемо використати лише 16 ГБ.

Деякі користувачі в такому сценарії чудово працюють навіть із 8 ГБ, але 8 ГБ - це досить тісно: у цьому випадку на тому самому сервері не можна запускати жодних інших застосунків. 16 ГБ - це рекомендований мінімальний оптимум.

Ціна на Amazon: USD$59.99 x 2 = $120

Ризики, пов’язані з оперативною пам’яттю

Оперативна пам’ять більш вразлива до збоїв, ніж процесори, але менш вразлива, ніж диски. Оперативна пам’ять корпоративного класу має спеціальні механізми для зменшення ймовірності помилок, наприклад перевірку парності. Як ми можемо оцінити та зменшити ризик збоїв пам’яті?

По-перше, існують методи перевірки мікросхем пам’яті, і якщо такі тести успішно пройдено, мікросхеми пам’яті працюватимуть багато років. По-друге, коли оперативна пам’ять виходить із ладу, це зазвичай дуже помітно: комп’ютер або показує синій екран смерті, або виникає kernel panic, або часті перезавантаження: усі ці симптоми потребують перевірки та, у разі поганих результатів, заміни оперативної пам’яті.

Материнська плата

Материнська плата - важлива частина будь-якого комп’ютера. На щастя, сучасні материнські плати для настільних комп’ютерів дуже надійні, особливо ті, що вийшли 4-5 років тому, - вони мають усі необхідні оновлення та стабільні. І - так, вони дешеві.

Нам потрібна материнська плата з підтримкою RAID, вбудованим відеочіпом і достатньою кількістю роз’ємів SATA. Щось на кшталт цієї:

ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATX Motherboard

Ціна на Amazon: USD$74,99

Вона має дуже позитивні відгуки та легко налаштовується на RAID1.

Корпус для настільного комп’ютера

Нам потрібен корпус, щоб зібрати всі компоненти комп’ютера разом, із достатнім блоком живлення. Щось на кшталт цього: $76,82 http://amzn.to/2ydeYs1

ДБЖ

Єдина річ, яка не є частиною сервера, але має бути в кожному комп’ютері з важливими даними всередині, - це джерело безперебійного живлення (ДБЖ).

ДБЖ захищає комп’ютер від перебоїв і коливань електроживлення. За нашим досвідом, стрибок напруги або аномальна втрата живлення комп’ютера є основною причиною пошкодження баз даних.

Щось на кшталт CyberPower CP1200AVR за $117.97 має бути достатньо хорошим.

Підсумок

У результаті ми маємо загальну ціну всіх компонентів комп’ютера та ДБЖ = USD 855,27 - це навіть менше ніж USD1000, однак, перш ніж ці компоненти стануть робочим комп’ютером, їх потрібно зібрати, оснастити ОС і протестувати.

Компонент Ціна К-сть Разом
SSD Samsung 850 Pro 256 Gb MZ-7KE256BW $124,24 2 248,48
Seagate SkyHawk 2TB Surveillance Hard Drive 74,99 2 149,98
CPU AMD FX-8320E $86,02 1 86,02
RAM Corsair Vengeance 8GB $61,99 2 123,98
Motherboard ASUS M5A78L-M Plus $57 1 57
Корпус для настільного комп’ютера $69,99 1 69,99
CyberPower CP1200AVR $119.82 1 119,82
Разом 855,27

Збірка сервера

Щоб зібрати всі ці частини в робочий сервер і встановити туди операційну систему (ми б рекомендували якийсь варіант Linux, наприклад CentOS7+ або Ubuntu Server 16+), усі ці компоненти потрібно зібрати/правильно під’єднати.

Це не складно, просто потрібні викрутка, трохи терпіння та час, щоб уважно прочитати інструкції та подивитися кілька відео на YouTube. 10 років тому майже кожен розробник міг зібрати комп’ютер із цих частин, сьогодні все інакше, але все одно не складно.

Що, якщо ви не хочете збирати сервер?

Є коротший шлях - можна купити комп’ютер із подібною конфігурацією, який майже відповідає нашим потребам, і під’єднати туди додаткові компоненти (наприклад, диски).

Я б рекомендував звернути увагу на цей комп’ютер - спочатку розроблений як ігровий ПК, він має 8-ядерний процесор і 16 ГБ оперативної пам’яті та коштує лише USD$709.

Його потрібно буде оснастити (відкрити корпус і під’єднати) парою SSD-дисків (+$248,48), ще одним резервним диском (+$74,99) і, звісно, ДБЖ (+119.82). Разом буде USD 1153 - це більше за мету в $1000, здебільшого через відеокарту та гарний корпус. Вам також потрібно буде налаштувати RAID1 (у BIOS) і, звісно, встановити серверну ОС замість попередньо встановленої Windows 10 Home.

Цей підхід можна використати, щоб перетворити потужний настільний комп’ютер на сервер - просто додати туди резервні SSD і резервні диски.

У минулому багато малих і середніх підприємств і стартапів використовували такі самостійно зібрані сервери, тепер існує тенденція до використання хмарних віртуальних машин.

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

Звісно, створення та обслуговування власного сервера потребує певних навичок (не таких високих, як може здаватися), тому багато компаній хочуть позбутися всіх апаратних серверів (і, можливо, звільнити системного адміністратора, відповідального за сервери).

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

Більше статей про продуктивність бази даних Firebird:

  1. Посібник із апаратного забезпечення Firebird
  2. Налаштування бази даних Firebird обсягом 1.7 ТБ
  3. Послуга з оптимізації продуктивності Firebird
  4. 45 способів прискорити базу даних Firebird
  5. Колекція оптимізованих файлів конфігурації Firebird

Зв’яжіться з нами

Не соромтеся ставити будь-які запитання: [email protected].

Подяка

Велика подяка людям, які надіслали пропозиції та покращення для цієї статті:

  • Vlad Khorsun
  • Dmitri Kuzmenko
  • Pavel Zotov
  • Sergey Nikitin
  • Emil Mustea