Какой сервер выбрать?

12
jaan777
На сайте с 02.05.2009
Offline
164
1917

Привет админам!

Подскажите пожалуйста по конфигурации сервера, какой выбрать под мои задачи?

Задачи такие. В скором времени планируется к запуску сервис, некий аналог coinigy.com и cryptowat.ch, но со своими уникальными особенностями. Сервис собирает данные с множества бирж, с массивом данных осуществляется множество достаточно сложных вычислений. В данный момент тестовая версия сервиса запущена на 4х ядерной впске. Сложные вычисления (несколько формул, в каждой до 20 условий и несколько вложенных циклов) пока что не делаем, но даже с текущими операциями средняя нагрузка на процессор уже ~60%. Размер таблиц БД, с которой проводятся вычисления составляет на текущий момент 10 ГБ, но вырастит еще где-то в 10-15 раз.

Собственно вопрос. Какой сервер мне нужен? Достаточно ли обычного топового однопроцессорного Xeon'а ? Или же сразу 2х процессорную систему брать, с расчетом на динамичное развитие, рост сложности и объемов вычислений? И также интересует дисковая подсистема для БД, лучше взять SSDшки или же достаточно обычных HDD ?

Благодарю за внимание -)

Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

Если вычисления, то вместо VPS следует выбирать dedicated, т.к. процессоры на VPS безбожно оверселлят. И еще некоторые за "майнинг" попрут, если вдруг вы оплаченными ресурсами на 100% воспользоваться захотите :)

Винт SSD конечно. Два винта.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Evas EvaSystems
На сайте с 31.05.2012
Offline
85
#2

Исходя из того, что уже сейчас у вас имеет место существенная нагрузка на процессор, я бы советовал всё же 2х процессорную систему с запасом на будущий рост.

Ну это, конечно, в идеале. На счёт дисков - SSD будет лучше всего, но их ресурсы всё же не безграничны и если у вас планируются частые записи больших

данных на них, то, наверное лучше воспользоваться SAS дисками, они не имеют таких ограничений по количеству циклов записи/перезаписи.

Конечно, они не такие быстрые как SSD, но быстрее, чем обычные HDD. Если всё же решитесь на SSD, то обязательно несколько дисков в 1 рейде

для надёжности, а также бекапы никто не отменял. Хотя такой рейд, наверное, в любом случае не будет лишним. Рейд, разумеется, только аппаратный.

Можно ещё подумать на счёт 10 рейда, но это уже, наверное, будет через чур в случае с SSD)

Ну и конечно - грамотная настройка сервера обязательна. Стандартные настройки в вашем случае критически скажутся на производительности.

Системный администратор Linux. Настройка, сопровождение и оптимизация серверов. Отзывы - searchengines.guru/ru/forum/1017473
jaan777
На сайте с 02.05.2009
Offline
164
#3
Оптимизайка:
Если вычисления, то вместо VPS следует выбирать dedicated, т.к. процессоры на VPS безбожно оверселлят. И еще некоторые за "майнинг" попрут, если вдруг вы оплаченными ресурсами на 100% воспользоваться захотите :)

Винт SSD конечно. Два винта.

Разработка на впске ведется, а так конечно вопрос насчет дедика касался, ибо двухпроцессорных впсок я не видал :)

Evas:

Ну и конечно - грамотная настройка сервера обязательна. Стандартные настройки в вашем случае критически скажутся на производительности.

А что на сервере настраивать нужно? php.ini, my.cnf ?

Evas EvaSystems
На сайте с 31.05.2012
Offline
85
#4

Если речь идёт о работе с базой, то mysql (my.cnf) обязательно и в первую очередь. Если же идёт речь о php и веб сервере, то и их тоже надо настроить, разумеется)

Плюс ко всему прочему ядро операционной системы имеет множество настраиваемых параметров, среди которых есть настройки как сетевого стека, так и работы с диском.

А вообще - думаю, стоит найти специалиста хорошего для данной работы во избежание ошибок, которые могут оказать противоположный

результат на производительность вашей системы. Некорректно подобранные значения этих параметров будут хуже, чем даже стандартные значения)

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5
jaan777:
php.ini, my.cnf ?

Вообще выбор php как языка для вычислений — странный.

jaan777
На сайте с 02.05.2009
Offline
164
#6
Оптимизайка:
Вообще выбор php как языка для вычислений — странный.

Финансирование проекта на полу-любительском уровне, команда - все хорошие знакомые в оффлайне. Кодим только на php. К тому же, основной php разраб - мастер экстра класса. А отдавать код сторонним специалистам нехочется, тк в сервисе используются некоторые уникальные фичи, которых в паблике никто не предлагает. Собственно ради их реализации и была начата разработка. Надеюсь, наши решения помогут немножко подвинуть с рынка таких монстров, как коиниги и криптоватч.

И кстати, php 7 намного более производительный, чем 5 версия. Не уступает питону и почти не уступает RoR. Особенно заметен рост производительности Php 7 при работе с большими массивами данных, как в нашем случае. Конечно, на Elixir'е было бы намного круче реализовать веб-приложения, но где спецов найти и сколько будет стоить разработка на эликсире? :)

Запущу сервис, если он будет пользоваться популярностью, тогда подумаю о форке сервиса на другом языке программирования -)

D
На сайте с 18.12.2015
Offline
142
#7
jaan777:
И кстати, php 7 намного более производительный, чем 5 версия. Не уступает питону и почти не уступает RoR. Особенно заметен рост производительности Php 7 при работе с большими массивами данных, как в нашем случае. Конечно, на Elixir'е в сочетании с Phoenix'ом, было бы намного круче реализовать веб-приложения, но где спецов найти и сколько будет стоить разработка на эликсире?

Ну вы бы ему это не рассказывали, я сколько сижу на форуме, а он тут один из самых толковых людей по тех. части.

Прямо вижу чью-то речь передали. Но не свою.

Вы первых, PHP7 - язык, RoR - фреймворк. Сравнили теплое с мягким. Во-вторых, PHP не может почти не уступать Ruby, так как он однозначно быстрее Ruby. Вы собираетесь Real-Time рассчеты делать на PHP? Сомнительная затея. Под числодробилки берут язык cо статической типизацией, можно даже без GC. Ну а про уникальные фичи - достаточно лихо. Настолько уникальные, что вас, PHP-шников, никто не сможет повторить? Или вы их после релиза никому не покажете? На такие случаи есть NDA.

Почитайте про горизонтальное масштабирование, когда усвоите и адаптируете под горизонтальное масштабирование, тогда запускайтесь на самой простой VPS, при нагрузках добавляйте в кластер сервера. Так будет и дешевле и быстрее работать, и главное - возможность масштабироваться. Сейчас если вы даже возьмете супер-производительный сервер, при росте трафика единственное, что вам останется — выдирать волосы из головы, потому что быстро распаралеллить PHP по инстансам практически невозможно, придется переписывать на лету, а когда трафик идет на сайт, это не такая простая задача. Оптимизация — это то, что нужно делать превентивно, потому что когда припечет, будет уже поздно. Тем более, что у вас все крутится вокруг финансов.

Мой вердикт такой: если вы прям уж такие крутые перцы - ищите облако, там проще и быстрее можно добавить ресурсов, ну а если немного взглянуть правде в глаза - решайте проблемы по мере поступления. Чтобы кого-то с рынка подвинуть, нужно туда сначала войти.

To finish first, you must first finish.

Разработка и поддержка высоконагруженных проектов.
jaan777
На сайте с 02.05.2009
Offline
164
#8
danforth:
Ну вы бы ему это не рассказывали, я сколько сижу на форуме, а он тут один из самых толковых людей по тех. части.
Прямо вижу чью-то речь передали. Но не свою.
Вы первых, PHP7 - язык, RoR - фреймворк. Сравнили теплое с мягким. Во-вторых, PHP не может почти не уступать Ruby, так как он однозначно быстрее Ruby. Вы собираетесь Real-Time рассчеты делать на PHP? Сомнительная затея. Под числодробилки берут язык cо статической типизацией, можно даже без GC. Ну а про уникальные фичи - достаточно лихо. Настолько уникальные, что вас, PHP-шников, никто не сможет повторить? Или вы их после релиза никому не покажете? На такие случаи есть NDA.

Почитайте про горизонтальное масштабирование, когда усвоите и адаптируете под горизонтальное масштабирование, тогда запускайтесь на самой простой VPS, при нагрузках добавляйте в кластер сервера. Так будет и дешевле и быстрее работать, и главное - возможность масштабироваться. Сейчас если вы даже возьмете супер-производительный сервер, при росте трафика единственное, что вам останется — выдирать волосы из головы, потому что быстро распаралеллить PHP по инстансам практически невозможно, придется переписывать на лету, а когда трафик идет на сайт, это не такая простая задача. Оптимизация — это то, что нужно делать превентивно, потому что когда припечет, будет уже поздно. Тем более, что у вас все крутится вокруг финансов.

Мой вердикт такой: если вы прям уж такие крутые перцы - ищите облако, там проще и быстрее можно добавить ресурсов, ну а если немного взглянуть правде в глаза - решайте проблемы по мере поступления. Чтобы кого-то с рынка подвинуть, нужно туда сначала войти.
To finish first, you must first finish.

Благодарю за коммент :)

Да вы правы, я не кодер и не особо разбираюсь в отличиях между языками программирования. Собственно, разработка ведется исходя из имеющихся ресурсов и php 7 на данный момент это самое производительное, что можем использовать.

Конечно, любые фичи копируются. Вопрос не в их копировании, а в том, что они являются уникальными, позволят на старте раскрутиться с минимальными затратами на маркетинг. А возможно окажутся настолько полезными, что сервис в паблик и не выйдет вовсе, тк такая корова нужна самому -))

Что касается оптимизации. К этому вопросу подходим очень серьезно. Код вылизан, первые версии кода, без каких либо расчетов, грузили впску на 100+%, сейчас объем работающих функций и вычислений в десятки раз больше и средняя нагрузка на проц той же впски 50-60%, причем в основном проц грузит БД. В скором времени устраним и это узкое место, путем миграции на более производительную XtraDB.

При росте трафика 99% нагрузки будет создавать сторонний скрипт - chartsIQ (аналог google charts). Эти чарты используют крупные биржи, так что думаю там все оптимизировано, как нужно. Мои же скрипты выдают юзерам лишь результаты вычислений. Неважно сколько трафика, 10 уников или 100.000, нагрузка на мои скрипты от этого не увеличится.

ЗЫ: Да кстати, разработка ведется на php + node.js

edogs software
На сайте с 15.12.2005
Offline
727
#9
danforth:
быстро распаралеллить PHP по инстансам практически невозможно, придется переписывать на лету

Как и в любом другом языке вида "запустился-умер" - не хватает одного сервера - поставил второй, половину запросов (вычислений) туда отправляешь, половину сюда - всего делов. Не хватает двух - поставил 10.

Вы вот БД попробуйте так распаралеллить.

У ТС судя по

jaan777:
Размер таблиц БД, с которой проводятся вычисления составляет на текущий момент 10 ГБ, но вырастит еще где-то в 10-15 раз.

в БД вполне может вопрос упереться.

jaan777:
Собственно вопрос. Какой сервер мне нужен? Достаточно ли обычного топового однопроцессорного Xeon'а ? Или же сразу 2х процессорную систему брать, с расчетом на динамичное развитие, рост сложности и объемов вычислений? И также интересует дисковая подсистема для БД, лучше взять SSDшки или же достаточно обычных HDD ?

Для БД только ssd. При Вашем типе нагрузки, да еще объемах под 100-150гб - это просто обязательно.

Для БД в идеале взять отдельный сервак, не пожалев для него памяти. Каким бы быстрым не был ssd - оперативка быстрее, а на отдельном сервере даже при 150Гб объема базы в оперативу даже 64гб можно впихнуть многое.

Веб-морду и прочее - лучше ставить на отдельном сервере, т.к. во-первых с нагрузкой будет более понятно (благо отдельно от БД, которая тоже будет грузить), а во-вторых проще будет масштабировать (не хватает мощностей для вычислений- поставили еще один сервер, база-то вынесена отдельно и общая).

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход.
jaan777
На сайте с 02.05.2009
Offline
164
#10
edogs:

Для БД в идеале взять отдельный сервак, не пожалев для него памяти. Каким бы быстрым не был ssd - оперативка быстрее, а на отдельном сервере даже при 150Гб объема базы в оперативу даже 64гб можно впихнуть многое.

Веб-морду и прочее - лучше ставить на отдельном сервере, т.к. во-первых с нагрузкой будет более понятно (благо отдельно от БД, которая тоже будет грузить), а во-вторых проще будет масштабировать (не хватает мощностей для вычислений- поставили еще один сервер, база-то вынесена отдельно и общая).

присматриваюсь к этому серваку - https://ru.hetzner.com/hosting/produkte_rootserver/dx291 с 256 ГБ памяти, думаю должно хватить на первое время

Скорее всего БД будет на отдельном сервере, но возможно на старте обойдусь одним серваком.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий