Вся практика малого бизнеса построена на стратегии «делать больше, обходясь меньшим». Каким бы малым ни было предприятие, у него есть учетная система. Проходит время, с ростом числа сотрудников и объема данных работа в ней становится некомфортной: увеличивается время выполнения простых операций, привычные действия блокируют работу всего офиса. Обновление машинного парка сработает на компанию — если учтены вычислительные запросы используемых приложений, и против нее — если брать пример с того сказочного персонажа, заказавшего скорняку семь шапок из одной маленькой шкурки.
Когда с учетной системой работает 1-3 человека, а операций немного, сетевая инфраструктура компании проста: как правило, роль сервера выполняет ПК с разделяемым доступом. До поры до времени микро-бизнес мирится с недоступностью данных и приложений (если нет хозяина ПК с паролем), с незащищенностью информации, беспорядком в ее хранении.
Почему ПК плох в качестве сервера
Подмена серверов на процессорах Intel Xeon обычными ПК на Intel Core i5-i7 лишает их владельцев преимуществ, которые они могли бы получить за те же деньги.
При равной частоте процессоры Intel Core i7 и Intel Xeon E3 стоят одинаково. Но Intel Core i7 создан под однопользовательские приложения — вывод графики в играх и кодирование видеоданных, а Intel Xeon E3 оптимизирован на уровне внутреннего микрокода под обслуживание множества одновременных запросов пользователей, в том числе к различным устройствам ввода/вывода (диски, сеть) и поддерживает коррекцию ошибок оперативной памяти (ECC-память).
Бюджетные материнские платы для ПК не рассчитаны на круглосуточную эксплуатацию по ресурсу их компонентов. Есть ограничения по использованию дополнительных устройств — таких как RAID-контроллеры. На платах распаян один сетевой порт на дешевом чипе — потенциально узкое место при сетевых обменах. У серверных плат есть как минимум два сетевых порта на специализированных многопоточных чипах. Дорогие же материнские платы для ПК на качественных компонентах стоят как серверные, и даже дороже. |
Уже при 3-5 сотрудниках предприятию для продуктивной работы нужен выделенный сервер. В отличие от пользовательского ПК, сервер подлежит эксплуатации в режиме 24×7 (а не 8×5) в многозадачной многопользовательской среде, с доступом к данным и приложениям по сети, разграничением прав доступа и соответствующим уровнем надежности хранения (см врезку).
Под «сервером начального уровня» почти всегда понимается универсальное устройство, выполняющее функции сервера баз данных и файлового сервера, часто почтового сервера и сервера приложений, иногда контроллера домена, интернет-шлюза и т.д.
Якорное приложение
Доминирующей учетной системой малых предприятий (примерно 70% рынка) сегодня является «1С:Предприятие 8.2». Требования этой платформы задают необходимый уровень вычислительных ресурсов серверов — подобно тому, как продуктовый супермаркет выполняет якорную функцию торгово-развлекательного центра: он генерирует трафик, под него рассчитываются людские потоки, подъездные маршруты и парковки, к нему тяготеют смежные магазины и сервисные точки.
Попробуем оценить вычислительную нагрузку на серверы начального уровня под «1С:Предприятие 8.2», ограничившись диапазоном 5-25 пользователей — типичным для малого бизнеса. Обычно используются базовые конфигурации «Бухгалтерский учет» или «Управление Торговым Предприятием» — для регламентированного и оперативного учета, а также «Управление торговлей» — для оперативного и складского учета. Конфигурации «Зарплата и Управление Персоналом» и «Управление Торговым Предприятием» в сегменте «5-25» почти не встречаются.
«Семь… восемь…»
Платформа «1С:Предприятие 8.2» вышла на уровень систем ERP-класса, но потеряла былую легкость предшественницы «1С:Предприятие 7.7» по отношению к запрашиваемым аппаратным ресурсам. Против «семерки», с ее структурным кодом, «восьмерка» более объектно-ориентированная. Так, количество табличных ссылок на объект конфигурации в 8.2 выросло против 7.7 в 20-50 раз.
Платформа 8.2 ориентирована на работу с SQL-сервером. Ее стандартные конфигурации построены на использовании SQL-запросов, в том числе сложных и вложенных. В платформе 7.7 запросы большей частью применялись для построения отчетов. Если на «семерке» в файловом режиме можно было продуктивно работать, то его производительность в «восьмерке» стремительно падает с ростом объема базы данных: при увеличении количества пользователей резко растет количество блокировок таблиц, особенно при доступе к файлам базы данных по локальной сети.
Двухуровневая архитектура платформы «1С:Предприятие 7.7» (SQL-сервер или файлы на диске — Клиентское приложение 1С) поощряла использование терминального доступа к приложению (Remote Access), особенно на предприятиях с большим количеством пользователей или с объемными базами данных. При этом все данные хранятся и обрабатываются на сервере, а у пользователя на ПК только отображается картинка. Такая модель эксплуатации повышает сохранность базы данных, улучшает общую производительность и снижает зависимость от мощности конечных компьютеров пользователей.
В трехуровневой от рождения платформе «1С:Предприятие 8.2» (SQL-сервер — Сервер приложений 1С — Клиентское приложение 1С) терминальный доступ не критичен, разве что при работе в двухуровневом файловом режиме (Файл — Клиентское приложение 1С) пяти и более пользователей. |
Малые предприятия работают с файловой либо SQL-версией «1С». Переход от предыдущей платформы «1С:Предприятие 7.7» к актуальной «1С:Предприятие 8.2» существенно увеличил возможности системы в целом. Платой за совершенствование стала сложность взаимодействия с таблицами данных. Как следствие, работа в файловом режиме с ростом числа сотрудников и размера базы данных превращается в мучение, необходим переход на SQL-версию (см врезку). «1С» поддерживает в числе прочих бесплатные и условно-бесплатные SQL базы данных, которых, при их ограничениях (например, 1 процессор для IBM DB2), достаточно для небольшого предприятия.
В задаче проектирования сервера под «1С» для сегмента «5-25», исходим из того, что:
— 5 пользователей «1С» (1-2 активных) с базой до 500 МБ и небольшой нагрузкой обойдутся файловым режимом работы (сервер используется именно как файл-сервер);
— 5-10 пользователям (3-5 активных) базы данных объемом 0,5-1 ГБ скорее всего потребуется режим удалённого доступа к приложению Remote Access (сервер выполняет роль и файл-сервера, и сервера терминалов) и переход на SQL-версию;
— 10 и более сотрудникам с базой данных более 2 ГБ почти всегда требуется SQL-сервер и «1С:Предприятие 8.2. Сервер приложений»;
— При 15 сотрудниках к нагрузке SQL-сервера обычно добавляется поддержка удаленного рабочего стола пользователей (Remote Desktop) — наиболее продуктивного и оптимального по совокупным (включая поддержку) затратам режима работы, даже при необходимости покупать пользовательские лицензии для удаленного доступа (Remote Desktop CAL).
Определяемся с вычислительной мощностью сервера
Хороший сервер — сбалансированный сервер. Процессор и оперативная память, дисковые и сетевые устройства ввода/вывода — все эти подсистемы взаимосвязаны, их разумное сочетание лежит в основе эффективности. Внимание к балансу подсистем удерживает от крайностей. Так, предубеждение, будто производительность определяется исключительно вычислительной мощностью центрального процессора, многих толкает на использование геймерских ПК в качестве сервера или в избыточность по процессорам и памяти.
Малому числу пользователей «1С:Предприятие 8.2» для работы с небольшой базой данных 1-2 ГБ в файловом режиме будет достаточно классического файлового сервера на младших процессорах линейки Intel Xeon E3. Объем необходимой оперативной памяти (ОЗУ) считается совсем просто: 2 ГБ под операционную систему и 2 ГБ под кэширование файлов — итого 4 ГБ. При работе пользователей с файловой версией в режиме удаленного рабочего стола потребуются процессоры чуть мощнее — например, Intel Xeon E3-1240v2. Дополнительно к 4 ГБ надо зарезервировать по 150-200 МБ ОЗУ оперативной памяти на каждого пользователя «1С» (1-4 ГБ) — итого порядка 8 ГБ ОЗУ.
В SQL-версии с пользовательским приложением «1С» на клиентских рабочих станциях также хватит среднего процессора из линейки Intel Xeon E3. Дополнительно к 4 ГБ понадобится зарезервировать 1-2 ГБ ОЗУ для кэша SQL-сервера и 1-2 ГБ ОЗУ для Сервера приложений «1С» — то есть всего порядка 6-8 ГБ ОЗУ. В режиме удаленного стола для SQL-версии оптимально использовать линейку старших процессоров Intel Xeon E3 — например, 1270v2, и 8-12 ГБ ОЗУ (а то и 16 ГБ — благо оперативная память нынче недорога).
15-25 сотрудникам, работающим с SQL-сервером в режиме удаленного рабочего стола, хватит процессора из старших Intel Xeon E3 и 16 ГБ оперативной памяти (2 ГБ под ОС, 2 ГБ под кэширование, 2-4 ГБ для кэша SQL-сервера и 1-2 ГБ для Сервера приложений «1С», по 150-200 МБ на каждого пользователя «1С»). Если пользователи на сервере будут запускать Microsoft Word/Excel/Outlook, то на каждое приложение надо выделить еще порядка 100 МБ на брата. Нагруженному серверу терминалов 32 ГБ ОЗУ не помешают.
Таким образом, c точки зрения процессорной мощности, предприятию сегмента «5-25» для работы в «1С:Предприятие 8.2» достаточно сервера с одним процессором и 8-16-32 ГБ оперативной памяти.
В зоне особого внимания
IOPS, MB/s, latency
Количество операций ввода вывода в секунду IOPS (Input/Output operations Per Second) — частотная характеристика, оценка интенсивности обслуживания дисковой системой приходящих запросов. Это далеко не то же самое, что MB/s, мегабайты в секунду – объем прочитанных/записанных данных в единицу времени. Какой из критериев применять к оценке дисковой активности, зависит от типа приложения и характера обращения к данным. К ячейкам таблиц баз данных приложение обращается произвольным (random) образом — там важнее IOPS’ы. Резервное копирование - потоковая операция с последовательным (sequential) доступом к данным, требовательная к скорости MB/s.
Величина IOPS мало информативна без указания времени задержки отработки запроса (latency) и в отрыве от информации о структуре данных: процентного соотношения операций чтения и записи, размера блоков ввода-вывода, длины очереди запросов. Latency — как метрика затрат
времени приложением на выполнение одного запроса ввода-вывода – самая важная характеристика при работе с базами данных, где критично время отклика системы на запрос.
Дисковая подсистема, способная выдать 10000 IOPS со средним временем отклика 50 ms с точки зрения пользователя будет медленнее, чем система, выдающая “всего“ 1000 IOPS, но со средней задержкой 10 ms. |
Если центральный процессор сервера полностью загружен, это еще не повод для покупки двухпроцессорного сервера. Процессор может быть занят банальным ожиданием выполнения операций ввода-вывода. Чтобы в этом убедиться, достаточно проанализировать дисковую и сетевую активность — в каждой ОС есть свои средства мониторинга, которые позволяют это сделать. Разобравшись с очередями запросов к дискам/сетевым картам и изменив устройство подсистем, можно разгрузить CPU и решить проблему.
В оценке систем хранения есть свои устойчивые заблуждения. До сих пор многие отождествляют их производительность с пропускной способностью (в МБ/s), и даже не физического устройства — диска, а интерфейса к этому диску. Это все равно как выбирать автомобиль по значению максимальной скорости, выбитой на его спидометре. В реальной жизни куда больше практического смысла у такого качества автомобиля, как приемистость (способность ускоряться).
Базы данных чувствительны к длительности обслуживания запросов. Малые задержки, наряду с высокой надежностью хранения — два приоритета серверов баз данных. Способность базы данных к быстрому отклику зависит от физических возможностей устройств хранения обработать поток запросов (в IOPS) и от характера работы с данными (см врезку). Задержки отклика на запросы выливаются в простой сервера — ожидание пользователем ответной реакции учетной системы. В большинстве случаев корни простоя надо искать в дисковой системе, построенной без анализа свойств якорного приложения и его запросов. Процессор не виноват, что его ресурсы не востребованы и он фактически простаивает в ожидании рассасывания дисковых очередей — как невиновны светофоры в транспортных пробках неудобного для езды города.
Структура данных в «1С» — объектно-ориентированная, со множеством перекрестных связей между объектами. Ее дисковый трафик складывается из потоков обращений к таблицам баз данных (DB), их индексным файлам (index), временным таблицам (tempDB), файлам протоколов (логов) SQL и 1C, временным файлам пользовательских приложений «1С» (tmp). Для работы с таблицами и индексами баз данных чрезвычайно важно быстрое обслуживание большого количества операций чтения и записи (IOPS) произвольного (random) доступа. Очень скромная база данных объемом 200-400 МБ с 3-5 пользователями может генерировать пиковые нагрузки порядка 400-600 IOPS, база на 10-15 пользователей объёмом в 1-2 ГБ — порядка 800- 1500 IOPS, нагруженная база данных на 25 пользователей объемом 4-8 ГБ — порядка 1500-3000 IOPS.
Оптимизируем дисковую систему
«Штрафы» ввода-вывода, или почему RAID 5 плохой выбор в серверах баз данных
Для расчета реальной производительности дисковой подсистемы нужно учитывать затраты («штраф») на запись, которые несет дисковая группа в RAID. На одну операцию записи с хоста (фиксируемую на уровне ОС) приходится две операции ввода-вывода в RAID 10, четыре — в RAID 5 и шесть — в RAID 6.
Вычисляя предельно достижимое значение IOPS RAID-массива, надо делить сумму IOPS его дисков на «штраф» выбранного уровня RAID. RAID 5 экономно расходует дисковое пространство, но создает серьезную вычислительную нагрузку на RAID-контроллер и/или CPU. В терминах операций ввода-вывода, RAID 5 — пожиратель IOPS при записи, расходуя их вдвое больше чем RAID 1 и 10. |
Выбирая сервер начального уровня с якорной функцией сервера баз данных, первым делом надо отказаться от устаревших подходов к обустройству дисковой системы хранения.
В серверах баз данных используются RAID-массивы из нескольких дисков — для обеспечения производительности и надежности хранения. Уровни RAID различаются алгоритмами избыточности, полезной емкостью и количеством «потребляемых» операций ввода-вывода. Чудес не бывает — на избыточность в хранении данных расходуется либо емкость дисков, либо быстродействие массива на запись.
Во времена механических HDD было два способа борьбы за IOPS и малые задержки: переход на диски c большей скоростью вращения привода и увеличение количества дисков RAID-группы. Показатели RAID-массива в IOPS определяются физическими возможностями дисков, с учетом накладных расходов (см. врезку). Для баз данных число операций произвольного чтения и записи в единицу времени — важнейший параметр, поэтому в серверах баз предпочитают RAID 10. У RAID 10 из 4-х дисков скорость чтения равна скорости чтения с 4-х дисков, а скорость записи — скорости записи на 2 диска.
C появлением SSD «концепция поменялась». По задержкам обращения к данным вращающиеся накопители — не конкурент твердотельным: механический подвод головок HDD к позиции над рабочей поверхностью несравним по скорости с прямой адресацией к ячейке флэш-памяти у SSD. Серверные SSD на два порядка производительнее HDD по чтению и записи (см таблицу).
У серверных SSD есть свой контроллер, кэш-память, защита записи по питанию, встроенные процедуры оптимизации производительности и блок ускорения шифрования без потери быстродействия. Фактически, каждый SSD диск — это RAID-контроллер в миниатюре. При этом для SSD стали бесполезны такие интеллектуальные возможности дорогих RAID-контроллеров массивов HDD, как сортировка обращений к дискам для оптимизации траектории движения головок от одного блока данных к другому.
В типичных для баз данных малого бизнеса задачах два диска SSD в RAID 1 по времени отклика и показателю IOPS перекрывают 10-12 традиционных дисков SAS HDD 15K rpm в RAID 10. О перевесе SSD над SATA HDD 7200 rpm лучше скажут графики сравнения по числу IOPS и времени отклика.
В сервере начального уровня суммарный объем «горячих» данных (критичных к скорости обращения) невелик: сама база данных, ее индексы и временные таблицы — десятки гигабайт от силы. Сюда же можно проинсталлировать саму «1С» и разместить профили пользователей «1С» (но только «1С», а не всего MS Office с базами Outlook!). C их обслуживанием в рабочей среде «1С» прекрасно справится пара SSD серверных, и даже «околосерверных» серий. Стоить такие диски будут при небольшой емкости сопоставимо с дисками SAS HDD, служить будут долго (в особенности, если применить overprovisioning — оставить неразмеченной большую часть их емкости).
Более объемные данные: ОС, приложения, пользовательские папки, резервные копии, log-файлы и файловые архивы — не так критичны к скорости доступа («холодные» данные). Им с головой хватит производительности двух недорогих и емких SATA HDD 7200 rpm, объединенных в RAID 1.
Получается, серверу начального уровня больше четырех дисков и не нужно. Двух SSD в RAID 1 достаточно под «горячие» данные, на двух SATA HDD в RAID 1 комфортно разместятся приложения и объемные «холодные» данные. Упрощаются требования к RAID-контроллеру (если он объективно нужен): достаточно поддержки 4 дисков и уровней 1, 10. Оптимизировать сочетание SSD, HDD и RAID-контроллера помогает мониторинг дисковых операций на живой системе с реальными данными.
RAID 1, 10 — и нужен ли выделенный контроллер?
Круг контроллеров для обслуживания 4 дисков в RAID-массивах уровней 1 или 10 можно свести к трем кандидатам:
— контроллеру в составе базового набора логики материнской платы;
— выделенному SAS HBA (c функцией 1, 10) на шине PCIe;
— выделенному SAS RAID (1, 10) на шине PCIe.
В таблице сравниваются их типичные представители: Intel Matrix RAID — LSI 9211-4i — Adaptec 6405E:
По производительности больших отличий между ними нет, разве что Intel Matrix RAID больше загружает CPU. Различаются: устойчивость к внешним факторам (например, отключение питания), риски разрушения массива и сложность процедур восстановления данных.
Intel Matrix RAID использует базовую логику чипсета для ввода/вывода и расходует ресурсы центрального процессора и оперативной памяти на расчет контрольных сумм RAID5, кэширование чтения/записи, управление массивом. Он существенно зависит от драйверной поддержки: восстановление RAID-массива после сбоя начинается только после старта ОС и загрузки драйверов. При неотключенном кэшировании записи в оперативной памяти (по умолчанию оно включено) и сбое по питанию есть вероятность разрушения массива. Но ведь и достается контроллер бесплатно, в составе материнской платы.
LSI 9211-4i является аппаратным RAID-контроллером. Созданный как выделенный контроллер ввода/вывода с поддержкой протоколов SAS и SATA, он снабжен собственным процессором и реализацией RAID 1 и 10 на уровне прошивок. Поддерживает расширение массива (что в нашем случае не слишком актуально), имеет широкий список совместимости с операционными системами.
Гибридный RAID-массив
Собирается из дисков различной внутренней архитектуры — твердотельного SSD и классического HDD с механическими вращающимися дисками. Его преимущество — в высокой скорости чтения с SSD. Запись на SSD и HDD производится одновременно. Гибридные массивы поддерживаются всеми контроллерами Adaptec серий 2, 5, 6.
В минимальном сочетании 1 SSD/1 HDD гибридный массив эффективен в серверах фронтальных приложений с преобладанием чтения произвольного доступа. Для универсального сервера начального уровня может быть интересным такое решение: 1 SSD (например, 60GB) и 2 HDD (по 500GB) собираются в два массива. Один из них - гибридный (RAID 1 из SSD и 60GB первого HDD), второй — обычный (RAID1 из оставшейся емкости первого HDD и второго HDD). |
Adaptec 6405E — полноценный аппаратный RAID-контроллер со своим двухъядерным процессором и кэш-памятью. К его достоинствам можно отнести независимость представления RAID-массива от драйверов и операционных систем (он легко переносится на другой физический сервер), и поддержку гибридных массивов из смеси SSD/HDD (см врезку).
Не все SSD одинаково полезны или Где хранить «горячие» данные
Очень немногие SSD пригодны к использованию в серверах. Как правило, сам производитель определяет их область применения и не стоит экспериментировать на своем сервере с продуктами бытового назначения — для ноутбуков и ПК. Даже если для SSD заявлены привлекательные характеристики, следует помнить, что однопользовательские игровые приложения и серверные задачи оперируют разными типами данных, их критерии применимости SSD отличаются кардинально. Для сервера принципиально важны: большое значение IOPS, особенно по записи произвольного доступа, малое значение latency, наличие встроенных средств и процедур увеличения производительности, продолжительность жизни (количество гарантированных циклов перезаписи).
Сравнивая параметры различных линеек SSD одного производителя, можно судить об их применимости в серверах (см. таблицу).
По параметру Random Read IOPS более-менее сильны все SSD. Серверные SSD отличает высокое значение Random Write IOPS — причем, измеренное при заполнении 100% пространства диска (100% Span) — см врезку. Еще один критичный параметр — время отклика SSD на одиночный запрос Latency Read/ Write, µs. Разница между интеловскими серверной 3700-й и бытовой 520-й сериями — почти в 2 раза.
Параметры SSD и уловки маркетологов
Приписка 8 GB span в таблицах с характеристиками SSD означает, что приведена производительность при заполнении всего 8 GB из общего объема диска. Хитрость состоит в том, что с уменьшением резерва ячеек памяти производительность SSD падает. При 100% заполнении показатель Random Write IOPS может ухудшиться в 20-80 (!) раз.
Еще один маркетинговый прием — фокусировка на нерелевантных характеристиках. Известно, что контроллеры SandForce выполняют компрессию данных перед записью в ячейки памяти. SSD на них показывают выдающиеся результаты — но только при операциях с хорошо сжимаемыми данными. Потоковая запись — не самая типичная серверная операция, а при случайных запросах произвольного доступа к таблицам баз данных сжатие может дать обратный эффект в виде замедления.
Заявленная производительность Intel SSD 520 series 60 GB составляет 80 000 IOPS для «компрессируемых» и всего лишь 6 900 IOPS для несжимаемых данных. Производительность в серверном режиме со 100% заполнением просто не приводится. |
Жизненно важный фактор для SSD — это объем перезаписи, который способен выдержать диск при полноценной эксплуатации (умирая, SSD переходит в состояние Read Only). Здесь чудеса творит overprovisioning — выделение контроллеру SSD служебной области, недоступной пользователю. Свободный резерв памяти упрощает процесс неизбежного перемещения валидных данных при перезаписи содержимого ячеек (ускоряет запись) и предотвращает их преждевременный износ. Так, для SSD Intel 710 series 100 ГБ паспортный оборот данных при записи с полностью произвольной выборкой и 100% заполнении составляет 900 TB. У идентичного ему по контроллеру, схемотехнике и микросхемам флэш-памяти SSD Intel 320 series 160 ГБ этот же показатель равен всего 15 TB. Дело не только в особенностях прошивок и отборе микросхем памяти. Служебный резерв ячеек памяти у 320-й серии составляет 8% общего объема, а у 710-й серии — все 42%.
Зная назначение SSD, их реальные нагрузочные возможности и будущие условия эксплуатации, можно подобрать оптимальные по соотношению стоимость/производительность/ресурс накопители под свои задачи, а заодно принять меры для увеличения их производительности и продления срока службы. Ведь если производитель отводит под служебную область до половины объема SSD, то что может помешать конечному пользователю поступать так же, оставляя неразмеченной и 20, и 50, да хоть 80% емкости SSD? Только жадность и безграмотность.
Пусть HDD в сервере начального уровня хранят «холодные» данные
Задача обслуживания «горячих» данных в сервере начального уровня по силам 1-2 SSD. На долю HDD остается хранение «холодных» данных (ОС, приложения, папки пользователей, бэкапы и файловые архивы) — где не нужны подвиги по скорости отклика и IOPS’ам, зато на руку невысокая удельная цена хранения. Два SATA HDD в RAID 1 обеспечат приемлемый уровень производительности и надежности.
Диски большого объема стоят относительно недорого, но за емкостью лучше не гнаться — она серверу вряд ли потребуется (если только не хранить на нем посторонние данные). Массив большой емкости после сбоя может восстанавливаться часами. Скорость его работы в деградированном состоянии низка, а риск полной потери данных, напротив, велик. Чем меньше емкость дисков — тем быстрее реконструируется RAID.
В серверы ставят SATA HDD класса RAID Edition — такие как Seagate Constellation ES, Hitachi Ultrastar или WD RE. Их отличает долгий срок службы, специальные прошивки и встроенные технологии, снижающие риск развала массива, особенно в работе под аппаратными RAID-контроллерами — как Adaptec 6405E и LSI 9211-4i. При малой нагрузке в программно-аппаратный RAID можно собирать менее дорогие диски серий WD Red или Seagate Constellation СS.
Сетевые операции
В отличие от однопользовательского ПК, серверу, обслуживающему множественные запросы пользователей сети, нужны как минимум два сетевых порта Gigabit Ethernet — для обеспечения отказоустойчивости и балансировки нагрузки. Крайне желательна аппаратная поддержка TOE (TCP Offload Engine) — ускорения обработки сетевых пакетов стека протоколов TCP/IP. Встраиваемые в сетевые адаптеры наборы команд разгружают центральный процессор. При отсутствии поддержки TOE каждый пакет, проходящий через сетевую карту, будет требовать отдельного прерывания и обслуживания процессором. Как следствие, процессор будет загружен обработкой этого потока ввода/вывода.
Примером сетевого чипа, который перекладывает обработку трафика на центральный процессор, является Intel 82574L — его часто размещают на серверных материнских платах в дополнение к основному сетевому контроллеру, для управления сервером либо как резервный канал. Если это единственный сетевой контроллер в сервере, интенсивные сетевые операции потянут на себя вычислительные ресурсы.
Операционная система
Для компаний до 15 пользователей существует экономичный серверный продукт Microsoft — Windows Server 2012 в редакции Foundation. При стоимости чуть выше Windows Professional, это полноценная ревизия Windows Server, куда уже включены пользовательские лицензии (User CAL), на нем можно настроить сеть с аутентификацией и контролем доступа к ресурсам на уровне Active Directory (AD), а при покупке лицензий Remote Desktop CAL (RD CAL) работать пользователям на сервере в режиме удаленного рабочего стола.
Если пользователей больше, обычно используют Windows Server 2012 Standard, который позволяет разместить на одном сервере и общие функции сервера с AD, и SQL-сервер, и Сервер приложений «1С» 8.2, и само пользовательское приложение «1С:Предприятие 8.2». Правда, кроме самой ОС придётся покупать как минимум клиентские лицензии на каждого пользователя User CAL, а при использовании удаленного рабочего стола — еще и RD CAL.
Оба варианта ПО от Microsoft успешно справятся и с традиционными задачами файл-сервера, шлюза в Интернет и т.д.
Какой он, сервер начального уровня?
При соблюдении баланса подсистем серверу начального уровня под «1С Предприятие 8.2» многого не надо: достаточно одного процессора Intel Xeon E3 (а то и Core i3), 4-16 (редко — 32 ГБ) оперативной памяти ECC, 2-4 дисков SSD/HDD, двух сетевых портов Gigabit Ethernet, слота расширения под дополнительный контроллер (HBA или RAID).
Это посильные потребности. Такой сервер будет недорог, прост в исполнении и скромен по габаритам: 1U глубиной порядка 40 см — если предполагается его установка на площадке провайдера, или размером с ПК — при настольной компоновке. Когда сервер работает в обитаемом помещении, мало соответствия его производительности запросам приложений. Хочется, чтобы он был компактный и тихий. К сожалению, поставщики серверов не так часто задумываются об их подгонке под задачи пользователей, и уж тем более о зримых и слышимых эксплуатационных характеристиках.
Небольшой по размерам сервер можно собрать на плате Intel 1200KP-R на чипсете С206 (фото платы). Скромный формат mini-ITX не мешает ей оставаться полноценной серверной платформой: поддерживаются процессоры Intel Core i3 и Xeon E3 12×5, до 16ГБ оперативной памяти ECC, есть 4 бортовых порта SATA, слот расширения x16 PCIe, два сетевых порта Gigabit Ethernet (i82574L + i82579) с драйверами под все основные ОС. Если такую плату поставить в корпус Chenbro SR301 (фото), сервер получится меньше большинства ПК, но при этом богатым по оснастке (можно поставить 4 диска 3,5" горячей замены и 2 фиксированных диска 2,5") и практически бесшумным в работе. Все дело в необычной конструкции корпуса и способе монтажа материнской платы — она лежит горизонтально, на дне корпуса, теплый воздух отводится наружу без принудительного наддува.
Подбирая наполнение, таким сервером-кубиком можно спокойно обслужить все приложения 5 — 25 сотрудников в «1С Предприятие 8.2». Большего от сервера начального уровня и не требуется. Все равно с ростом предприятия и объемов операций задачи поменяются, а с ними — инструменты их решения.
Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365
До чого тут безпосередньо 1С? Тези цілком загальні.
1C тут как пример массового приложения, капризного к аппаратным ресурсам. Раньше такие материалы публиковал журнал "Наука и жизнь" в рубрике "Хозяйке на заметку". Хотите - считайте набором рекомендаций по выжиманию производительности из начальных серверов в тисках малого бюджета. Упаси боже, мы не претендуем на роль новых евангелистов. Просто видим по ежедневной практике, что именно в части 1С небольшим компаниям пудрят мозги советчики. Хочется эту пудру сдуть.
О, чим саме вводять в оману підприємців?
Когда не хотят вникать в суть запросов приложения, впадают в крайности - от "зачем переплачивать за сервер, если справится Core i7" - до "купите двухпроцессорник на старших ксеонах". Воюем с RAID-массивами на SATA-дисках (в них иопсам взяться просто неоткуда), воюем с RAID-массивами из дисков SAS 15K (деньги на ветер), рассказываем, что разлет параметров между сортами SSD куда больше, чем между HDD. По сути, центральная идея статьи - акцент на разделении данных по "температуре"(интенсивности обращения). 1С - пример приложения, где данные отчетливо раскладываются на "горячие-холодные". Уделив внимание вводу/выводу, можно творить чудеса. Не хотели засорять статью графиками производительности, но два из них не могли не привести - отличия по времени отклика и иопсам между SATA и SSD. Это к вопросу о корнях (не)эффективности.
Суть я зрозумів - гарна стаття. Я назви не зрозумів, ги.
Дякую за розлоге пояснення.
Действительно, отличная статья. Действительно, название сбивает с толку.
"У RAID 10 из 4-х дисков скорость чтения равна скорости чтения с 4-х дисков, а скорость записи — скорости записи на 2 диска"
Я стесняюсь спросить - в RAID1(zerkalo) скорость чтения также соответственно равна скорости двух дисков?
В RAID 1 число IOPS на чтение = 2 х IOPS одного диска или меньше (зависит от очереди запросов), IOPS на запись = IOPS одного диска.
Т.е. количество IOPS-ов и у "зеркала", и у страйпа будет "сем-восем" одинаковое?
Чтение с зеркала сильно зависит от структуры (очереди) запросов и удвоения может не дать. Чтение со страйпа всегда дает удвоение. Но раз мы говорим о серверах, RAID 0 в принципе вспоминать не следует.
"Intel Core i7 создан под однопользовательские приложения — вывод графики в играх и кодирование видеоданных, а Intel Xeon E3 оптимизирован на уровне внутреннего микрокода под обслуживание множества одновременных запросов пользователей"
а пацаны из Intel то и не в курсе... (разработчики этих Xeon-ов, маркетолухи - не в счет)
"Дисковая подсистема, способная выдать 10000 IOPS со средним временем отклика 50 ms с точки зрения пользователя будет медленнее, чем система, выдающая “всего“ 1000 IOPS, но со средней задержкой 10 ms"
ага, вот давайте решим задачу на сообразительность для 5-го класса:
на дисковой подсистеме способной "выдать 10000 IOPS со средним временем отклика 50 ms" загрузка данных из одной бизнес-системы в другую прошла с 1 до 3 часов утра
и уже к 9-00 все сотрудники за работой могли обсуждать - как же ж медленно прошла эта выгрузка/загрузка
а на дисковой подсистеме способной "выдать “всего“ 1000 IOPS, но со средней задержкой 10 ms" сотрудникам, пришедшим на работу к 9-00, пришлось ждать, плюя в потолок, 21-00
потому что только тогда завершилась загрузка данных и они смогли приступить к работе, обсуждая - как же быстро все прошло
вопрос - где в условии задачи ошибка?
думаю, даже филологам понятно, что дисковая, выдающая 10K iops при 50ms, при меньшей нагрузке, соответствующей 10ms - выдаст куда больше чем 1K iops
>Warrax
> "а пацаны из Intel то и не в курсе... (разработчики этих Xeon-ов"
Не переживайте, они как раз в курсе.
Другое дело, что маркетологам проще просто разделить 2 бренда Core i7 и Xeon, не вдаваясь в подробности.
Стоят оба процессора одинаково, по посадочному месту на MB - тоже совпадают. А вот количество шин PCIe - разное. И прошивки - тоже разные.
>Warrax
> "думаю, даже филологам понятно, что дисковая, выдающая 10K iops при 50ms, при меньшей нагрузке, соответствующей 10ms - выдаст куда больше чем 1K iops"
Остается только порадоваться за филологов (и теоретиков).
Потому как не всякая дисковая подсистема с производительностью в 10000 IOPS со средним временем отклика 50 ms даже при снижении нагрузки в 10 раз сможет снизить время отклика до хотя бы 25 ms.
Также хотелось бы обратить внимание Warrax не некоторую некорректность приведенного примера с многочасовой загрузкой данных по ночам.
Если внимательно читать материал, то в самом начале указаны выбранные ограничения - сервер под базы данных 1С:Предприятие 8.2 на 5-25 пользователей.
Как правило, у таких предприятий крайне редко встречаются еженощные обмены информацией в таких объемах, которые требуют многочасовых обменов.
По крайне мере я плохо себе представляю коллектив сотрудников в 25 человек, способный набить за день (или даже неделю) объем информации, который 1С будет выгружать или загружать аж несколько часов. С "живым" примером - с удовольствием ознакомлюсь.