Сервер — сердце информационной системы предприятия. Основная его задача – безостановочно и максимально быстро предоставлять необходимые сервисы всем подключенным пользователям. Но, в полном соответствии с законом Мура, требования к любой информационной системе каждые два года приблизительно удваиваются. Далеко не для всех организаций экономически целесообразно проводить замену всей информационной инфраструктуры, но, с другой стороны, игнорировать требование времени тоже неразумно. Самый рациональный выход – модернизация оборудования.
Практически невозможно дать какие-то универсальные рекомендации по модернизации серверных систем. На этот процесс влияет большое количество факторов, например специфика задач, на которые будет ориентирован сервер, технические возможности модернизации, финансовые возможности и прочие. В этом обзоре мы опишем лишь основные параметры серверов , которые, с одной стороны, часто оказываются «узкими местами», негативно влияющими на производительность, а с другой – могут быть скорректированы без излишних финансовых и трудовых затрат.
В целом, любой проект по модернизации информационных систем состоит из трех основных этапов:
Определение имеющейся на данный момент технической и программной базы с максимально возможной точностью. Информационное пространство предприятия – сложная, состоящая из многих элементов система и практически каждый ее элемент может в какой-то момент оказаться тем «бутылочным горлышком», которое существенно понизит производительность системы в целом. Естественно, для получения корректных результатов наши специалисты должны владеть полной информацией о том, как и из каких элементов составлена информационная среда в данный момент.
Разработка концепции. Нет и не может быть некой универсальной системы, подходящей для решения всего спектра возможных задач. Соответственно, для обеспечения оптимальной работы системы хранения и обработки информации, она должны быть оптимизирована именно для тех процессов, которые будут типичными для нее в повседневной работе. На этом этапе определяются критичные для системы параметры.
Разработка проекта. На этом этапе наши специалисты делают заключение о том, как именно можно модернизировать имеющуюся систему.
Как правило, применительно к выполняемым задачам, производительность сервера можно значительно повысить путем замены или модификации следующих компонентов: процессора, оперативной памяти, дисковой системы и оптимизацией программного обеспечения.
Про программное обеспечение нужно сказать особо. Вполне естественно, что оборудование, которое работало в организации верой и правдой в течение нескольких лет в один прекрасный момент оказывается очевидно неспособным выполнять все возложенные на него функции. Например – в некой организации существует почтовый сервер под управлением Microsoft Exchange. По прошествии некоторого времени он перестал справляться с загрузкой. Что в таких случаях обычно делают? – выделяют из, как правило, ограниченного бюджета немалые средства и приобретают новое оборудование, оправдываясь тем, что за прогресс надо платить. Конечно, такой подход весьма эффективен и технические специалисты именно его и предпочтут, но он далеко не единственный. В такой ситуации вполне можно рассмотреть, например, переход на другую, менее ресурсоемкую, операционную систему, например Linux. Преимущества такого подхода:
Цена: Если стоимость качественного сервера составляет порядка 5-7 тыс. $, то стоимость дистрибутив Linux с поддержкой меньше в разы.
Производительность: За счет высокого уровня оптимизации требования к «железу» у Linux существенно ниже, чем у Windows.
Такой подход вполне оправдан для небольших и средних организаций с незначительным ростом требований к вычислительной мощности оборудования для таких задач как почтовые- и DHCP- сервера, контроллеры доменов, СКД, FTP и прочие аналогичные задачи.
Процессор
У процессора существуют две основных характеристики – частота и объем кэш-памяти. Надо сказать, что заблуждение о том, что процессор с большей частотой является более производительным, не побеждено до сих пор. Если для настольных систем это можно с большими оговорками назвать близким к истине, то для серверных систем такой подход неверен в корне.
Частота процессора – это, грубо говоря, количество операций, которые он способен выполнить за секунду. Чем выше частота процессора, тем, естественно, лучше. Зависимость, впрочем, нелинейная, то есть при увеличении частоты на 20% при неизменности прочих параметров производительность возрастет примерно на 10%.
Но при работе с плотными массивами информации (например, базами данных) гораздо большее значение имеет объем кэш-памяти второго-третьего уровней. Назначение кэш-памяти можно описать следующим образом – это посредник между оперативной памятью (работающей значительно быстрее механических дисковых приводов, но не порядок медленнее процессора) и процессором. Соответственно, чем больше объем кэша, тем меньше тактов пропускает процессор в ожидании нужных данных из оперативной памяти. Преимущества процессоров с большими объемами кэш-памяти наиболее заметны при их использовании в многопроцессорных системах (при использовании двухпроцессорной конфигурации прирост производительности от удвоения кэш-памяти составляет 2-4%, при четырехпроцессорной – 4-8% и т.д.), а так же при повышении объема оперативной памяти.
Конечно, для самого существенного повышения процессорной мощности желательна установка дополнительных процессоров. Если же по каким-то причинам (техническим или финансовым) это неосуществимо, рекомендуется замена имеющихся процессоров на имеющие больший объем кэш-памяти. Пороговым значением нагрузки процессоров, при превышении которого необходима модернизация, является потоковая загрузка в 75%.
Оперативная память
Еще один параметр, критичный в большей степени для работы серверов баз данных. Оперативная память используется для кэширования запросов к дисковой системе. Основные параметры – объем и пропускная способность, причем эти параметры в некоторой степени компенсируются один другим.
Оптимальный объем памяти вычисляется всегда отдельно для конкретной систему и конкретных задач, но, как показала практика, можно порекомендовать установку не менее чем 256Мб для нужд операционной системы, по 64 Мб для каждого активно работающего с сервером пользователя, плюс приблизительно 50% от объема активно используемых баз. В целом, для обеспечения приемлемой скорости работы, объем свободной оперативной памяти при стандартной загрузке сервера должен составлять не менее 10-15%
Пример из жизни: есть некий отдел, состоящий из 15 человек и с рабочей базой объемом 10Гб. В этом случае минимально необходимый объем оперативной памяти составит: 256Мб (операционная система) + 960Мб (64*15 пользователей)+ 5120Мб (50% объема базы данных) = 6336Мб, то есть примерно 6 Гб оперативной памяти для нормальной работы. С учетом дальнейшего роста базы можно порекомендовать установку 7-8 Гб.
На рынке сегодня доступны модули объемом 256, 512, 1 Гб, 2 Гб и 4 Гб. Естественно, не на каждую платформу можно установить четырехгигабайтные модули. Возможности модернизации определяются конкретной моделью сервера. К тому же, определенные ограничения накладываются производителями серверов . Как правило, брендовые сервера поддерживают более – менее строго определенный набор модулей памяти от ограниченного количества производителей. Соответственно, прежде чем покупать недешевую серверную память, целесообразно либо проверить по документации сервера какие именно модули от каких производителей он поддерживает. Если такой возможности нет, нужно обратиться к организации, у которой сервер был куплен.
Модули памяти отличаются не только объемом, но и пропускной способностью. Этот параметр определяет то, какое именно количество данных способна передать память за секунду. Стандартные значения – 266 mHz(pc2100), 333 mHz (pc2700) и 400 (pc3200). Частота памяти, как и частота процессоров - чем выше, тем лучше. Переход с DDR1 на DDR2 в рамках модернизации рассматривать, пожалуй, не имеет смысла, поскольку при этом придется менять фактически всю платформу.
Часто возникает вопрос: что такое ECC – память для серверов и чем она отличается от обычной? Дело в том, что никакая техника не работает идеально, в том числе и оперативная память. Чем выше скорость работы, тем больше вероятность возникновения ошибок при передаче данных и, соответственно, перебоев в работе. Если для обычных десктопов это нельзя назвать актуальной проблемой, то для серверов такие ошибки могут означать не только уменьшение производительности, но и, вполне вероятно, перебои в работе. По этой причине на сервера рекомендуется устанавливать специальную ECC (Error Correction Code)– память. Если не вдаваться в технические подробности, то ECC – память это память с автоматической теневой коррекцией случайных ошибок. Она стоит существенно дороже обычной и работает несколько (примерно на 5%) медленнее, но обеспечивает высокий уровень защиты от случайных сбоев. Она настоятельно рекомендуется к установку на сервера и те рабочие станции, для которых надежность является критичным параметром.
Дисковая система
Основной параметр серверов, занятых на приеме – передаче больших объемов данных (например, медиа - контент). Мощность процессора играет здесь менее существенную роль, но стоит обратить внимание на производительность дисковой системы. Можно порекомендовать замену дисков 10к rpm на диски 15к rpm (производительность увеличивается примерно на 20-25% за счет более быстрого поиска информации на диске) и переконфигурирование RAID – массива.
Кроме того, при увеличении объема дисковой системы для увеличения производительности желательно использовать несколько небольших по объему дисков, нежели один - два больших. Что касается интерфейса дисков, то для серверов баз данных желательно использование дисков SCSI или Fibre Channel (меньшее время поиска информации), а для файлообменных серверов – SATA (больший объем, ниже цена).
Чтобы определить, что дисковая система перестала справляться с нагрузками,
можно просто промониторить очередь к дискам при стандартной загрузке. Если полученное число больше 1 – система нуждается в модернизации.
Характеристики сетевого подключения
Даже самые качественный сервер бесполезен, если пользователи не могут до него «достучаться» из-за загруженности сети. В любом случае сервер должен быть подключен к коммутатору по отдельному каналу, со скоростью передачи данных не менее 100Мб/сек. Если сервер обслуживает более 40-50 пользователей – крайне желателен гигабитный канал. Если же и его недостаточно, можно порекомендовать установку дополнительного сетевого хост – адаптера и подключение сервера в сеть через дополнительный коммутатор.
Если все это уже сделано, а производительности все равно недостаточно, то можно задуматься о переходе на новую архитектуру хранения – SAN ( Storage Area Network) – сеть хранения данных. В отличие от обычного подхода, когда сервера интегрированы в общую сеть хранения (схема NAS – Network Attached Storage) устройства SAN объединены фактически в отдельную сеть при помощи высокоскоростного интерфейса Fibre Channel. Если скорость стандартной Ethernet – сети на витой паре не превышает 1 Гбит/сек, то пропускная способность Fibre Channel последнего поколения составляет до 4 Гбит/сек. Нельзя сказать, что решения SAN относятся к категории дешевых, но они значительно превосходят Ethernet по надежности и производительности.