Когда мы запустили в 2013 году Discourse, наши требования к серверу были высокими:
- 1 ГБ ОЗУ
- быстрый двухядерный ЦП
- быстрый твердотельный накопитель от 20 ГБ
Я имею в виду не дешёвый общий cpanel-сервер, а выделенный виртуальный частный сервер с такими характеристиками.
Нам этого было достаточно, потому что в течение следующего десятилетия Интернета мы писали на Ruby. Я сразу предсказывал, что цена аренды
Облако стало дешевле и быстрее. И это не очень удивляет, ведь со временем цена железа снижается до нуля. Но это всё-таки облако, то есть оно не совсем дёшево. В конце концов, это чей-то компьютер, за привилегию аренды которого вы платите.
Но постойте… а что если вы сможете засунуть «в облако» свой компьютер?
Разве это решение не будет обладать преимуществом обоих подходов? Надёжность подключения плюс низкая ежемесячная оплата за чрезвычайно быстрое оборудование? Если это кажется вам безумием, то стоит изменить своё мнение — пользователи Mac занимаются этим уже несколько лет.
Думаю, понятно, почему пользователи Mac в этой области находятся на переднем крае технологий, ведь Apple почти не делает серверного оборудования, в то время как мир PC всегда был стандартом де-факто для серверного железа.
Учитывая распространённость и уровень развития поставщиков облачных услуг, идея колокации настоящих серверов сегодня выглядит немного спорной. Также мы экспериментировали с колокациией mini-pc в разных конфигурациях
Изначально я писал о компьютерах-«скутерах», добавленных в нашу инфраструктуру Discourse в 2016 году, плюс о моём собственном эксперименте с колокацией, запущенном параллельно. После трёхлетних экспериментов я пришёл к выводу, что эти небольшие коробочки довольно надёжны, но с одной оговоркой, которую я объясню в комментариях. Я по-прежнему остаюсь несомненным фанатом колокации mini-PC. Мне она так сильно нравится, что я собрал новую версию 2019 года:
2017 — $670 | 2019 — $820 |
i7-7500u 2.7-3.5 Ghz, 2c / 4t |
i7-8750h 2.2-4.1 Ghz, 6c / 12t |
16GB DDR3 RAM | 32GB DDR4 RAM |
500GB SATA SSD | 500GB NVMe SSD |
Компьютер-«скутер» этого года имеет утроенное количество ядер, удвоенную память и в три раза более быстрый накопитель. Это, как говорят дети в Интернете… absolute unit.
Кроме того, он имеет довольно элегантную двустороннюю внутреннюю схему. В нём есть слот для «олдскульного» 2,5-дюймового накопителя, плюс встроенный wi-fi, но на моих фотографиях вы их не увидите, потому что я физически убрал их.
Я проверил жизнеспособность коробочки с помощью моего рекомендуемого теста стабильности и работы под нагрузкой, и все они прошли его с честью, хотя в процессе пришлось заменить один набор глючных планок ОЗУ. Бенчмарки показывают правду по сравнению со средним дроплетом Digital Ocean:
Производительность на ядро
sysbench cpu --cpu-max-prime=20000 run
Дроплет DO | 2,988 |
Mini-PC 2017 года | 4,800 |
Mini-PC 2019 года | 5,671 |
Многоядерная производительность
sysbench cpu --cpu-max-prime=40000 --num-threads=8 run
Дроплет DO | 2,200 |
Mini-PC 2017 года | 5,588 |
Mini-PC 2019 года | 14,604 |
Скорость дисков
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
hdparm -Tt /dev/sda
Дроплет DO | 701 / 8818 / 471 MB/sec |
Mini-PC 2017 года | 444 / 12564 / 505 MB/sec |
Mini-PC 2019 года | 1200 / 17919 / 3115 MB/sec |
Пересборка Discourse
time ./launcher rebuild app
Дроплет DO | 6:59 |
Mini-PC 2017 года | 3:41 |
Mini-PC 2019 года | 3:24 |
Может стать проблемой энергопотребление, потому что версия 2017 года имела гораздо меньший отвод тепловой мощности (TDP) — 15 Вт, по сравнению с 45 Вт текущей версии. Утроение количества ядер не проходит бесследно! Поэтому я протестировал всё самостоятельно комбинацией из i7z
, stress
, и моего личного ваттметра.
(login в режиме простоя) | 800 Mhz | 10 Вт |
stress --cpu 1 |
4.1 GHz | 30 Вт |
stress --cpu 2 |
4.1 GHz | 42 Вт |
stress --cpu 3 |
4.0 GHz | 53 Вт |
stress --cpu 4 |
3.9 GHz | 65 Вт |
stress --cpu 5 |
3.7 GHz | 65 Вт |
stress --cpu 6 |
3.5 GHz | 65 Вт |
stress --cpu 12 |
3.3 Ghz | 65 Вт |
Я ожидал бы увидеть примерно 10-20 Вт при выполнении типичных задач с низкой нагрузкой, не особо занимающих ЦП. Заметьте, что запуск текущих версий mprime
повышает энергопотребление до 75 Вт, а общая тактовая частота снижается 3,1 ГГц… и надо сказать, что я научился очень опасаться расширений AVX2.
(О шуме беспокоиться не стоит. Эта система активного охлаждения очевидно слишком мощна для нагрузки в 65 Вт, потому что едва раскручивается даже при полной нагрузке на ядра. Она была чрезвычайно тихой.)
Поэтому я очень доволен покупкой этой машины за 820 долларов — она очень быстра и довольно надёжна. Но как насчёт затрат на колокацию? Мой провайдер колокации — это EndOffice, находящийся в пригороде Бостона, предоставляющий очень доступные цены на колокацию Mini-PC: 29 долларов/месяц.
Лично я поставил в колокацию три Mini-PC ради избыточности и на всякий случай; за колокацию нескольких машин предоставляется скидка. Все они установлены в стойку и находятся в работе. Разумеется, перед установкой я пометил их.
Давайте всё проанализируем и сравним затраты на колокацию Mini-PC и на облако. Учитывая плато в увеличении скоростей ЦП, я считаю, что реалистичной оценкой будет пять лет полезной работы этих ящиков, но давайте будем консервативными и возьмём для надёжности трёхлетний период эксплуатации.
- Miini-PC за 880 долларов с 32 ГБ ОЗУ, 6 ЦП, SSD 500 ГБ
- 120 долларов — налоги/доставка/прочее
- 29 × 12 × 3 = 1 044 доллара
То есть 2 044 доллара за три года
- 32 ГБ ОЗУ, 8 виртуальных ЦП, SSD 640 ГБ
- 160 долларов/месяц
- 160 × 12 × 3 = 5 760 долларов
Сравнение неточное, потому что мы получаем лишних 140 ГБ дискового пространства и 2 дополнительных ЦП, но по сравнению с нашими выделенными, изолированными ЦП эти процессоры и медленнее, и частично поглощаются коллективной арендой (multi-tenancy). (Мне стало любопытно, поэтому для короткого теста я создал новый инстанс DO за 160 долларов/месяц. sysbench
показывает результаты в 4086 и 11760 соответственно, что значительно меньше показанных выше результатов Mini-PC 2019 года.) Как видите, за облачный сервер мы платим почти в три раза больше.
Я не утверждаю, что решение подходит всем. Если вам просто нужно быстро создать один-два сервера для тестирования и экспериментов, но совершенно не хочется тратиться на сборку и колокацию mini-pcs, то нет никаких сомнений в том, что серверы в облаке обеспечивают беспрецедентную гибкость и избыточность. Но если вам нужны выделенные вычислительные ресурсы на протяжении нескольких лет, то сборка своего небольшого личного облака с машинами, которые принадлежат вам, не составляет только треть затрат… но и просто удобна.
Если вы хотите тоже поучаствовать в таком проекте, то можете купить на Amazon такой же Partaker B18, что и у меня, за 490 долларов, или заказать за 460 долларов напрямую из Китая через AliExpress. Добавьте память и накопитель по вкусу, соберите машину, а затем выберите любого провайдера колокации на свой вкус.
Автор: PatientZero