База знаний
Технологии

Некоторые аспекты выбора серверов

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

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

В общем случае жизненный цикл любой технической системы состоит из нескольких основных этапов: разработка, внедрение, эксплуатация, модернизация в процессе эксплуатации и списание (снятие с эксплуатации). И в процессе выбора необходимо оценивать основные параметры, факторы, критерии, характеризующие свойства сервера на всех этапах его жизненного цикла. Критериев с различным уровнем обобщения существует огромное множество. Чаще всего рассматривают следующие:

  • функциональная эффективность F;
  • эксплуатационная эффективность M;
  • стоимость владения C.
Функциональная эффективность

Сервер приобретается для решения конкретных задач, поэтому выбору сервера предшествуют работы, связанные с выбором прикладного ПО. Первый этап оценки функциональной эффективности варианта сервера, с нашей точки зрения, состоит во всестороннем анализе свойств приложения и его взаимодействия с вычислительной средой (аппаратными средствами сервера, ПО и т.д.). Что необходимо знать о прикладном ПО? Вероятно, требуемая информация может включать:

  • перечень операционных систем и их версий, для которых разработано данное ПО;
  • перечень аппаратных платформ, на которых тестировалось ПО;
  • перечень аппаратных платформ, для которых поставщик гарантирует нормальное функционирование ПО;
  • разрядность вычислительной среды;
  • возможность распараллеливания;
  • сведения о том, как влияет увеличение числа процессоров на функциональные свойства приложения;
  • сведения о том, как влияет размер кэша процессора на функциональные свойства приложения;
  • значение минимальной тактовой частоты процессора конкретного типа;
  • сведения о том, как влияет изменение тактовой частоты процессора конкретного типа на функциональность приложения;
  • минимальный размер оперативной памяти;
  • сведения о том, как влияет изменение размера ОЗУ на функциональные свойства приложения;
  • минимальные требования к устройствам долговременного хранения данных;
  • сведения о том, как влияют изменения параметров устройств долговременного хранения данных организации на функциональные свойства приложения;
  • требуемые устройства ввода-вывода;
  • сведения о том, как влияют изменения параметров каналов ввода-вывода на функциональные свойства приложения.

Чем больше вы знаете о свойствах прикладного ПО и о влиянии параметров аппаратной платформы (включая и общесистемное ПО) на функциональные свойства приложения, тем меньше ошибок вы допустите при выборе сервера. Например, известно, что на практике недостижим прирост производительности сервера в N раз при увеличении в N раз количества однотипных процессоров. Известный гуру в области ИТ Джин Амдал предложил схему для описания эффективности распараллеливания на многопроцессорном сервере:

Биллинг

где E – показатель, характеризующий прирост производительности сервера, N – количество процессоров, C – коэффициент, характеризующий долю нераспараллеливаемых команд в коде

Биллинг

Анализ этой зависимости позволяет сделать два основных вывода. Во-первых, при достаточно большой доле нераспараллеливаемых команд в коде программ (допустим, C = 0,2) рост производительности при определенном количестве процессоров прекращается (в нашем случае N=20). И во-вторых, наиболее эффективный способом повышения производительности вычислительной системы – не увеличение количества процессоров, а алгоритмическое совершенствование приложения.

С другой стороны, цена сервера зависит от максимального количества процессоров, которые можно установить в него. В 1999 г. автор рекомендовал одной уважаемой компании остановить выбор на двухпроцессорном CISC-сервере стоимостью около 12 тысяч долл., основываясь на том, что основное приложение обладает низкой распараллеливаемостью. Компания купила четырехпроцессорный CISC-сервер с двумя установленными процессорами, заплатив за него 27 тысяч долл. В 2001 г. возникла необходимость повысить производительность вычислений. Компания приобрела еще два процессора к ранее купленному серверу, заплатив за модернизацию около 7 тысяч долларов. Эффект был ошеломляющим для руководства компании: производительность не только не увеличилась вдвое, но упала примерно на 10%. В результате ошибочного выбора непроизводительные расходы на сервер составили сотни процентов от цены.

На втором этапе необходимо поставить в соответствие требованиям характеристики сервера. Чаще всего рассматриваются следующие характеристики.

ПРОЦЕССОР – его тип процессора, размер кэша, тактовая частота, максимальное числа процессоров.

ОЗУ – тип модулей памяти, максимальная емкость.

ДОЛГОВРЕМЕННЫЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА – тип дисков, тип интерфейсов, минимальная и максимальная емкость.

ИНТЕРФЕЙСЫ – типы поддерживаемых интерфейсов, максимальное количество.

ЭЛЕКТРОПИТАНИЕ – напряжение, ток, частота, потребляемая мощность.

УРОВЕНЬ ШУМА – максимальный уровень шума, создаваемого всеми элементами сервера.

ТЕПЛОВЫДЕЛЕНИЕ – максимальный уровень тепловыделения для всех элементов сервера.

УСЛОВИЯ ОКРУЖАЮЩЕЙ СРЕДЫ ДЛЯ НОРМАЛЬНОГО ФУНКЦИОНИРОВАНИЯ – диапазон температур и влажности.

Это лишь беглое перечисление технических параметров, которыми характеризуется сервер. Кроме частных параметров, сервер характеризуется обобщенными критериями, такими, как производительность на стандартных тестах, надежность, доступность, масштабируемость, ремонтопригодность, уровень технического совершенства и т.п. В результате анализа конкретных условий, для которых заказчик приобретает сервер, вырабатывается определенный перечень обобщенных и частных критериев F, которые и учитываются при анализе вариантов.