Назад | Перейти на главную страницу

Как правило, какой тип конфигурации сервера вы предлагаете для интерфейсного веб-сервера и сервера базы данных?

Вообще говоря, при настройке интерфейсного веб-сервера №1 (nginx / phusion для RoR) и сервера базы данных №2 (mysql) и сервера кэширования №3 (redis / memcached), какой тип сервера вы рекомендуете для каждого ?

Меня интересуют следующие факторы:

  1. ОЗУ
  2. Жесткий диск
  3. ЦП - одно / двух / четырехъядерный

Это будут либо выделенные серверы (голый металл), либо, возможно, облако (ec2), но на данный момент я просто ищу общие рекомендации.

Здесь недостаточно информации, чтобы ответить на ваш вопрос конкретным образом, поэтому я дам вам несколько общих сведений, которые могут помочь:

Для серверов баз данных вам нужен большой (и быстрый) дисковый монстр с большим объемом оперативной памяти, многоядерный / многопроцессорный. Предполагая, что будет много дисковой активности, вы захотите иметь возможность сосать большой части вашей базы данных в ОЗУ для быстрых запросов, и у вас будет одновременно выполняться множество параллельных запросов.
То, как вы это определите, зависит от множества факторов (размер набора данных, количество одновременных подключений, насколько оскорбительными будут запросы). Типичные конфигурации дисков включают очень быстрые диски SAS или SATA в конфигурациях RAID-1 (возможно, несколько шпинделей для разделения нагрузки на диск).
Exception: If your DB will be lightly loaded (now and in the foreseeable future) you can skimp and get a dinky database server. Beware of false economy though: Under-specing your DB server may require an extended outage in the future to migrate to better hardware, so it's almost always better to over-build a bit.

Размер веб-серверов должен быть пропорционален рабочей нагрузке. Для обслуживания нескольких статических страниц не требуется много ресурсов процессора или оперативной памяти. Выполнение большого количества причудливой работы с Ruby (манипулирование наборами данных на веб-сервере) может потребовать значительно больше ресурсов. Реальность, наверное, где-то посередине.
Единственная реальная константа для веб-серверов - это то, что вам нужно «достаточно диска для хранения статического контента и любого временного / кэшированного контента» и с сегодняшними огромными дисками, которые обычно легко получить.
Мои веб-серверы используют программный RAID на уровне ОС на относительно крошечных / медленных дисках SATA, обычно с 2-4 ГБ ОЗУ и одним двух- или четырехъядерным процессором (независимо от того, что у нашего поставщика есть в продаже на данный момент), но наша сеть приложение является легковесным и не подвергается риску перегрузки такой конфигурации.

Веб сервер:

  • ЦП соответственно. Маленькие 6-ядерные или многопроцессорные - в зависимости от того, что вам нужно. Маленькие диски - 2 быстрых или ISCSI lun, 2 раздела: ОС, журналы, спул электронной почты;) Нет контента - мои веб-серверы извлекают контент из центрального хранилища NAS.

  • База данных: коробка Supermicro. У них есть стоечные кейсы, вмещающие до 72 (!) Дисков в одном маленьком стоечном сервере, плюс симпатичная плата. Поставил хороший рейд-контроллер (Adaptec). Поместите в CPU и подготовьте для установки в RAM. В конце концов, IOPS сделает это или сломает. Диски: 4 диска как RAID 10 для ОС и TempDB, еще 2 зеркальных, SSD для журналов (задержка записи журнала критична для высокой скорости записи). Остальное для данных по мере необходимости. Группы от 8 до 16 дисков в RAID 6 или RAID 10 в зависимости от необходимости. С адаптером Adapted 6xxx может пригодиться пара SSD в качестве кеша для чтения. Однако это довольно высокий уровень.