THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

В любой организации, где количество пользователей 1С 8.3 (или 8.2) от 10 и более, при больших объемах данных рекомендуется использовать клиент-серверный вариант работы. Такой вариант основан на использовании сторонней СУБД, например, MS SQL server. Естественно, клиент-серверный режим сложно представить без отдельно стоящего сервера. Но каждая компания уникальна, у каждой свои потребности, поэтому и к выбору сервера необходимо подходить с ответственностью. В этой статье мы постараемся дать ответ на вопрос, как выбрать сервер 1С — как программное обеспечение, так и железо. Выбор — очень важный пункт в развитии информационной системы компании.

Без программного обеспечения любой компьютер бесполезен. Особенно качественный софт важен в серверном оборудовании. Он должен отвечать самым современным параметрам безопасности и надежности. Клиентское приложение 1С мультиплатформенно и доступно практически во всех операционных системах, включая мобильные системы. Серверное же приложение поддерживает две платформы — Linux и Windows.

Существует пять вариантов СУБД, с которой работает платформа 1С:

Получите 267 видеоуроков по 1С бесплатно:

  • встроенная СУБД самой 1С 8.3, так называемый файловый режим . Самый простой вариант работы, не может похвастаться высокой безопасностью. Работает на ОС Windows и Linux. Ограничение на размер базы данных около 6-10 гигабайт;
  • MS SQL Server — лучшая СУБД для 1С, имеющаяся на рынке. По мнению многих экспертов SQL Server вообще лучший программный продукт фирмы Microsoft. Для работы требуется ОС семейства Windows;
  • IBM DB2 Universal Database — достаточно надежная и безопасная система управления СУБД. Особенность её в некоторых нюансах обработки информации и работы системных методов (например, чувствительность к регистру строковых данных). На качество работы существенно влияют навыки и знания администратора. Поддерживает Windows, Mac OS X, Linux;
  • Oracle Database — версионная СУБД, что даёт в некоторых случая повышение производительности. Поддерживает Windows, Mac OS X, Linux;
  • PostgreSQL — также версионная. Самое главное преимущество — бесплатный дистрибутив программы. На скорость работы сильно влияет квалификация администратора. Рекомендуется для небольшого количества пользователей. Работает на Windows, Mac OS X, Linux.

Выбор железа для 1С

В отличие от программ выбрать аппаратное обеспечение не так просто. Рассмотрим выбор серверных компонентов для разных количеств пользователей. Количество пользователей — понятие абстрактное, берутся средние для документооборота цифры. При подборе оборудования обязательно учитывайте объем документооборота.

До 10 пользователей

  • Процессор : Intel Core i3 или Intel Xeon E3-12xx.
  • Оперативная память : 4 гигабайта, в них включается 2 гб на операционную систему и 2 гигабайта под кеш СУБД.
  • Дисковая подсистема
  • Сетевые интерфейсы

Сервер от 10 до 40

  • Процессор : аналог Intel Xeon E3-12xx или AMD Opteron 4ххх.
  • Оперативная память : обычно достаточно 8-12 гигабайт.
  • Дисковая подсистема : в идеале желательна комбинация SSD + HDD. Но если нет возможности, можно обойтись и HDD.
  • Сетевые интерфейсы : обычно все серверные приложения установлены на одной машине.

от 40 до 70

  • Процессор
  • Оперативная память : 16 гигабайт, а лучше 32.
  • Дисковая подсистема : Достаточно традиционного массива из HDD SAS 15K rpm.
  • Сетевые интерфейсы : Если серверы на разных машинах, использовать сеть с пропускной способностью 10 Gb.

от 70 до 120

При таком количестве пользователей имеет смысл в распределении серверных приложений на отдельные серверные машины.

  • Процессор : Intel Xeon E5-26xx или AMD Opteron 62xx.
  • Оперативная память : от 32 гигабайт.
  • Дисковая подсистема : RAID 10 из надежных серверных SSD с обязательным аппаратным RAID-контроллером.
  • Сетевые интерфейсы : Желательно связать цепочку серверов в сеть с пропускной способностью 10 Gb. Индексные файлы рекомендуется вынести на отдельный SSD, таблица временных таблиц TempDB - на 1-2 (RAID 1).

от 120 пользователей

Отправить вопрос по решению По будням отвечаем
в течение часа

Как выбрать сервер для работы с 1С

Рассмотрим несколько основных примеров базовых конфигураций серверов для 1C, руководствуясь двумя основными критериями - количество пользователей и способ реализации самой программы: файловая 1С или 1С:сервер приложений + SQL.

Сразу оговоримся — это деление весьма условно, так как и небольшое количество пользователей, имея большую базу данных, будут значительно нагружать и процессор, и дисковую подсистему. Но при этом сравнительно большое количество пользователей может пользоваться достаточно ограниченным набором функционала и работать с небольшой базой, да еще и работать не одновременно. Т.е. при выборе сервера необходимо проконсультироваться со специалистом и постараться донести до него «всю правду» о вашей работе.

    Небольшая компания (2-10 пользователей) , база до 1 Gb, 1С Предприятие — файловый режим, это есть не что иное, как классическая реализация файлового сервера.

    В качестве базового процессора можно выбрать одну из младших моделей Intel Xeon серии Е3-12XX.

    Расчет ОЗУ прост: не вдаваясь в подробности специфики работы системного и файлового КЭШа, просто обозначим — примерно 2 Gb под ОС и столько же для работы с файловой системой.

    Мы не рассматриваем случаи «псевдосерверов», т.е. когда под сервер для 1С, пусть и для работы 2 -3 пользователей, пытаются «приспособить» рабочую станцию приличной конфигурации. Не смотря на то, что у многих «сисадминов» есть «богатый» опыт использования обычных компьютеров в качестве сервера, мы такие варианты не обсуждаем и не рекомендуем такой выбор.

    Рука не поднимается ставить к Intel Xeon — процессору серверной серии всего 4Gb ОЗУ. Все-таки рекомендуем 8Gb (здесь как раз работает принцип больше — не меньше).

    Дисковая система. Современные диски, пусть даже и серверного исполнения, реализующие интерфейс передачи данных SATA, очень мало отличаются по цене в зависимости от объема диска. Поэтому «ловить блох», пытаясь уменьшить стоимость сервера за счет разницы в цене между дисками 500 Gb и 1 Tb не стоит. Кроме того, у всех производителей линейка SATA-дисков объемом 500 Gb уже исчезает из предложений. С другой стороны, никто не отменял известный постулат — скорость заполнения дискового пространства прямо пропорциональна его объему. Т.е. чем больше диск, тем больше информации на нем хранится, даже если изначально это было не нужно. Мы настаиваем на том, что дисков должно быть не менее 2-х, чтобы можно было организовать т.н. программное «зеркало» - минимальную защиту данных при выходе из строя одного из дисков.

    Итак, получаем базовую конфигурацию файлового сервера 1С для использования до 10 пользователей:

    • Процессор Intel Xeon E3 1220V3,
    • ОЗУ — 8 Gb,
    • HDD — 2 х 1 Tb SATA.
  1. Если работает 15-20 пользователей, то размер базы данных может достигать 4 ГБ. Как правило, в этом случае используют версию 1C: Предприятие 8.3 Сервер приложений или SQL-ную версию 1С.

    Отсюда требования к ОЗУ: те же 2ГБ под ОС, до 4ГБ под 1С:сервер приложений и столько же под MS SQL Server. Оптимальный вариант, когда база данных полностью кэшируется в ОЗУ. Получаем необходимый минимум размера оперативной памяти — 10ГБ. На практике часто бывают ситуации, когда версия 1С:Сервер приложений теряет отклик. Такое случается при недостатке ОЗУ, когда ОС вынуждена свопировать 1С на диск. Чтобы такого не происходило, всегда рекомендуем иметь запас оперативной памяти — итого 16ГБ.

    По поводу процессора, опять же четырехядерный процессор серии Intel Xeon E3 12XX вполне справится, выберем лишь тактовую частоту повыше. Тем более, что зависимость скорости работы 1С от тактовой частоты в версии 1С-8.3 компенсируется некой эффективной частотой — количеством ядер процессора, умноженной на тактовую частоту ядра.

    Дисковая подсистема немного усложняется. Опять же, не вдаваясь в подробности работы дисков с операциями чтения- записи (т.н. IOPS), отметим, что средняя скорость работы в том же «зеркале» вырастет примерно в два раза, если мы увеличим количество дисков в зеркале до четырех (т.н. RAID 10).

    Подитожив, получаем базовую конфигурацию сервера для работы 15-20 пользователей в системе 1С:Сервер приложений 8.3:

    • CPU — Intel Xeon E3 1240V3 3.4ГГц,
    • ОЗУ — 16ГБ,
    • Дисковая подсистема — зеркало из 4-х дисков 4х1ТБ.
  2. Для повышения производительности и надежности системы в целом, при количестве пользователей 1С:Предприятие больше 30 , как правило, используется терминальное решение. Суть этого решения состоит в том, что пользовательские приложения (в данном случае 1С), запускаются и работают на самом терминальном сервере, а пользователь видит лишь графическую картинку, которую сервер посылает на его компьютер (терминал). Помимо высокой производительности и возможностей масштабирования, мы имеем дополнительную надежность и защиту ваших данных, которая определяется конфигурацией терминального сервера.

    Здесь, как правило, уже используются дисковые массивы более высокого уровня защиты (RAID 6, 60, комбинации RAID — массивов, реализуемых на аппаратном, обычно выделенном RAID — контроллере).

    Выбор процессора для таких серверов определяется простыми расчетами — обычно на SQL отводят не менее одного физического ядра, минимум одно ядро под 1С:Сервер приложений, 2 под ОС. Остальные ядра отводятся на пользователей.

    Известно, что одно ядро процессора может эффективно обработать не более 8 пользователей. Из вышеуказанных критериев не сложно понять, что для эффективной работы более 30 пользователей, необходимо делать выбор в пользу 2-х процессорных серверов — хотя бы по совокупному количеству ядер.

    Типичная конфигурация терминального сервера + 1C:Сервер приложений приведена ниже:

    • Процессор: 2 x 4C/4T CPU | Intel Xeon E5-2609 V2,
    • Модули памяти: 4 x DDR3-ER 8Gb,
    • Накопители: 4 x HDD 1Tb, 4 x HDD 1Tb,
    • Контроллер: RAID.
  3. Для количества пользователей более 50, обычно разделяют роли терминального сервера (сервера приложений) и сервера базы данных.

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

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

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

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

Серверы для 1С на 5 пользователей >>>

Для подобной задачи будет достаточно самого бюджетного варианта оборудования. Основной параметр здесь - это надежность и бесперебойность работы сервера.

  • Количество процессоров - 1 (4 ядра)
  • Оперативная память - 4-8 Гб

Данной производительности сервера вполне достаточно, чтобы в 1С 8 могли работать 5 пользователей в терминальном режиме.

Серверы для 1С на 10 - 15 пользователей >>>

При отсутствии собственных серверных комнат ключевым моментом при приобретении сервера для 1С может стать форм-фактор и уровень создаваемого шума.

  • Количество процессоров - 1 (4 - 8 ядер)
  • Оперативная память - 8-16 Гб
  • Жесткие диски - 2 х SATA (RAID 1)

Мы рекомендуем использовать аппаратный RAID контроллер, а также SAS диски, обладающие вдвое большей производительностью, чем SATA. Мощности сервера достаточно даже для работы пользователей в терминальном режиме. Если вы не планируете использовать терминальный режим, то при установке SAS дисков и аппаратного RAID контроллера такой сервер сможет обслуживать до 25 пользователей 1С.

Использование SATA SSD дисков является отличной альтернативой SAS дискам: они высокопроизводительны и бесшумны, и не требуют использования RAID-контроллера. Однако не стоит забывать, что одна из ключевых функций контроллера - повышенная надежность хранения данных.

Серверы для 1С на 20 - 30 пользователей >>>

Для данной задачи сервер должен иметь высокую производительность дисковой подсистемы. Аппаратный RAID-контроллер и наличие кэш-буфера увеличит скорость доступа к данным.

  • Количество процессоров - 2 (от 4 ядер)
  • Оперативная память - от 16 Гб, при терминальном доступе - 64 Гб, плюс объём памяти равный размеру базы данных
  • Жесткие диски - 2 х SAS (RAID 1), предпочтительнее 4 х SAS (RAID 10) либо SATA SSD

Для организации терминального доступа в 1С 8 необходимо 500 Мб оперативной памяти на каждую сессию. Если планируется использовать в терминале еще и офисные приложения, то рекомендуется 1-2 Гб оперативной памяти для каждого пользователя.

Серверы для 1С на 30 - 50 пользователей >>>

Мы рекомендуем использовать, как минимум, два сервера: первый - для базы данных, второй - для терминалов. В этом случае сервер приложений размещается на одном из этих серверов. При большом занимаемом проценте процессорного времени сервера, имеет смысл задействовать выделенный сервер приложений. Если ваш проект предполагает использование выделенного сервера приложений, мы рекомендуем использовать недорогой однопроцессорный сервер, в котором достаточно будет установить 2 диска SAS или SATA SSD и 16 Гб ОЗУ.

Самое важное для сервера баз данных - это дисковая подсистема и объём оперативной памяти.

  • Необходимо обеспечить полное кэширование базы данных в оперативной памяти сервера. Если на этом физическом сервере работает и сервер приложений 1С, то необходимо выделить память и ему - 2-4 Гб. Поскольку система 1С генерирует очень мощную нагрузку на запись, это не может быть компенсировано оперативной памятью.
  • Дисковая система, разумеется, должна быть выполнена на высокопроизводительных дисках SAS или SATA/SAS SSD, настоятельно рекомендуется использовать RAID 10. Необходим аппаратный RAID контроллер. Количество дисков зависит от интенсивности работы пользователей. Как правило, достаточно 6-8 дисков. Если компания динамично развивается, то лучше сразу выбирать сервер с большим числом дисковых отсеков.
  • Процессоры являются не самым главным параметром сервера базы данных: общее правило планирования мощности процессоров - их средняя загрузка не должна превышать 50% (определяется опытным путем).

Основные параметры для терминального сервера - объем оперативной памяти и процессорная мощность.

  • Необходимый объем оперативной памяти - около 500 Мб на каждую клиентскую сессию.
  • Сильной дисковой нагрузки на терминальных серверах зачастую нет, поэтому можно использовать «зеркало» из SATA дисков (RAID 1).
  • Процессорная нагрузка очень сильно зависит от интенсивности работы пользователей.

Нередко на терминальных серверах, помимо 1С, выполняются и другие приложения - обычно офисные пакеты, интернет. Это вызывает рост загрузки процессоров и, особенно, оперативной памяти. Что также надо учитывать.

ИБП для сервера 1С - в обязательном порядке

Необходимо подключать серверы с 1С к мощному источнику бесперебойного питания. ИБП должен обеспечивать не менее 30 минут автономной работы сервера. За это время все пользователи успеют сохранить документы и завершить свою работу в 1С, а системный администратор сможет спокойно выключить сервер без риска потери данных.

Рекомендации по выбору конфигураций серверов E1S ® для приложений 1C

Параметры сервера для 1С до 5 подключений до 10 подключений до 30 подключений до 50 подключений
Процессор Intel Xeon E3 Intel Xeon E3 / E5 2 х Intel Xeon E5 / Scalable 2 х Intel Xeon E5 / Scalable
Память 4-8 Гб 8-16 Гб от 32 Гб от 64 Гб
Дисковая система 2 х SATA (RAID1) 2 х SATA либо SSD (RAID1) от 4 х SAS либо SSD (RAID 10) от 8 х SAS либо SSD (RAID10)
Контроллер интегрированный рекомендуется аппаратный с защитой кэша аппаратный с защитой кэша аппаратный с защитой кэша
Количество серверов 1 1 1 2 в кластере + сервер приложений
Конфигураторы

1С:Предприятие 8 может оказаться ресурсоемким приложением даже при небольшом количестве пользователей. Выбирая сервер под 1С, любой владелец хотел бы избежать «родовых травм» - заложенных в него потенциально узких мест. С другой стороны, сегодня мало кто покупает серверы избыточной мощности, «на вырост». Хорошо если профиль нагрузки удается снять заранее - тогда и проектировать сервер под конкретную конфигурацию приложений компании проще.

Для определенности, рассмотрим платформу «1С:Предприятие 8.2» в ее популярных базовых конфигурациях «Бухгалтерский учет», «Торговля и склад», «Зарплата и Управление Персоналом», «Управление Торговым Предприятием» и, отчасти, «Управление Производственным Предприятием». Исходим из того, что для предприятий с 10 и более сотрудниками, работающими в 1С, используется «1С:Предприятие 8.2. Сервер приложений». Учтем вариант работы в режиме удаленного рабочего стола (Remote Desktop), с количеством одновременных пользователей базы данных до 100-150. Рекомендации будут применимы и для более «тяжелых» БД 1С, но «тяжелые случаи» всегда требуют индивидуального подхода.

Процессоры и оперативная память

Если компания совсем маленькая (2-7 пользователей в системе), база невелика (до 1GB), а «1С:Предприятие 8.2» работает в файловом режиме на пользовательском компьютере, то мы получаем классическую реализацию файл-сервера. С такой задачей по нагрузке на CPU справится даже Intel Core i3, тем более Intel Xeon E3-12xx. Объем необходимой оперативной памяти (RAM) считается совсем просто: 2GB под операционную систему и 2GB под системный файловый кеш.

Если в компании 5-25 пользователей 1С, размер базы данных до 4GB, то приложению «1С:Предприятие 8.2» должно хватить 4-х ядерного Intel Xeon E3-12xx либо AMD Opteron 4ххх. Кроме 2GB оперативной памяти под ОС, необходимо выделить 1-4GB под «1С:Предприятие 8.2. Сервер приложений» и еще столько же под MS SQL Server в качестве кеша - итого 8-12GB RAM. Для небольших БД желательно кешировать в оперативной памяти не менее 30% БД, а лучше все 100%.

Известен (хотя и не особо афишируется) факт: «1С:Предприятие 8.2. Сервер приложений» очень не любит, когда операционная система выгружает его в swap-файл на жесткий диск, и склонно при этом иногда терять отклик. Поэтому на сервере, где запущен «Cервер приложений», всегда должен быть запас свободного пространства в оперативной памяти - тем более она сегодня недорога.

В компаниях побольше пользователи 1С обычно работают через удаленный доступ к приложению (Remote Desktop) - то есть в терминальном режиме. Как правило, при10-100 пользователях 1С с базой данных от 1GB и выше, «1С:Предприятие 8.2. Сервер приложений» и пользовательское приложение «1С:Предприятие 8.2» запускается на одном и том же сервере.

Для определения необходимых процессорных ресурсов исходят из того, что одно физическое ядро может эффективно обрабатывать не более 8 пользовательских потоков - это связано с внутренней архитектурой процессоров. Как показывает практика, под задачи 1С + Remote Desktop не стоит брать серверные процессоры младших линеек с низкими частотами расчетных ядер и урезанной архитектурой. Если пользователей немного (до 15-20), хватит одного процессора из высокочастотных Intel Xeon E3-12xx. При этом минимум одно его физическое ядро (2 потока) уйдет под нужды SQL Server, еще одно (2 потока) - под «1С:Предприятие 8.2. Сервер приложений», а оставшиеся 2 физических ядра (4 потока) - под ОС и терминальных пользователей. При количестве пользователей 1С более 20 или при объемах БД более 4GB пора переходить к 2-х процессорным системам на Intel Xeon E5-26xx или AMD Opteron 62xx.

Расчет нужного объема оперативной памяти относительно прост: 2GB надо отдать ОС, 2GB и больше - MS SQL Server в качестве кеша (не менее 30% БД) , 1-4GB - под «1С:Предприятие 8.2. Сервер приложений», остальной памяти сервера должно хватать под терминальные сессии. Один терминальный пользователь, в зависимости от конфигурации, потребляет в приложениях «Бухгалтерский учет», «Торговля и склад» - 100-120MB, «Зарплата и Управление Персоналом», «Управление Торговым Предприятием» - 120-160MB, «Управление Производственным Предприятием» - 180-240MB. Если пользователь запускает дополнительно на сервере MS Word, MS Excel, MS Outlook, то на каждое приложение надо выделить еще порядка 100MB. Как правило, минимум для сервера терминалов - 12GB RAM.

К примеру, для сервера 1С со всем пакетом ПО, 50 терминальными пользователями в конфигурации «Управление Торговым Предприятием», и базой данных в 8GB оптимальной будет вычислительная мощность двух процессоров Intel Xeon E5-2650 (8 ядер, 16 потоков, 2.0 GHz). Оперативной памяти понадобится минимум 2 (ОС) + 4(SQL) + 4(1C-сервер) + 8 (160 «УТП» * 50 пользователей) = 18GB, а лучше 24-32GB(6-8 каналов DIMM по 4GB).

Дисковая подсистема

Большинство жалоб на медленную работу серверов 1С:Предприятие 8 связано с непониманием, какие на них выполняются типы операций ввода-вывода, над какими данными и с какой интенсивностью. Зачастую, именно дисковая подсистема является ключом к обеспечению достаточной производительности сервера в целом - ведь для нагруженных БД самой большой проблемой является блокировка таблиц при одновременной работе с ними множества пользователей или при массовых загрузках/выгрузках/проводках. Мониторингу и оптимизации дисковой подсистемы сервера .

У 1С есть 5 потоков данных для дисковой подсистемы, с которыми она работает:

  • таблицы баз данных;
  • индексные файлы;
  • временные файлы tempDB;
  • log-файл SQL;
  • log-файл пользовательских приложений 1С.

Структура данных в 1С - объектно-ориентированная, со множеством объектов и связей между ними. Для работы с таблицами данных чрезвычайно важно количество операций чтения и записи, которые способна проделать дисковая подсистема за промежуток времени (Input Output Operation per Second, IOPS). При этом ее способность выдать высокую потоковую скорость передачи данных (в MBp/s) куда менее важна. Очень скромная база объемом 200-300MB с 3-5 пользователями может генерировать в пиках до 400-600 IOPS. База на 10-15 пользователей и объёмом в 400-800MB способна выдать 1500-2500 IOPS, 40-50 пользователей БД 2-4GB порождают5000-7500 IOPS, а базы под 80-100 пользователей легко достигают 12000-18000 IOPS.

Разумеется, средняя нагрузка на дисковую подсистему может составлять и 10-15%от пиковой. Только в реальности важна именно производительность в период пиковых нагрузок: автоматических загрузок данных из других систем, обмена данных распределённой системы или перепроведения периода.

Современные диски в операциях чтения и записи со случайным доступом (Random Read/Write) в одиночку справляются с такими нагрузками:

Intel 910 400 GB

2400 – 8600 IOPS

Хорошо видно, что:

  • узким местом и для HDD, и для SSD является запись;
  • традиционные HDD - не конкуренты SSD по скорости чтения в IOPS даже теоретически, разница превышает два порядка;
  • даже не самый современный десктопный SSD в 3-40 раз (в зависимости от конфигурирования) превосходит по скорости записи в IOPS любой HDD, серверный SSD - в 12-40 раз быстрее HDD;
  • максимальную производительность в IOPS дают PCIe SSD класса Intel 910 или LSI WarpDrive.

Одиночные диски в серверах БД не используются, только RAID-массивы. Для дальнейшего расчета реальной производительности дисковой подсистемы нужно учесть затраты («штраф») на запись в IOPS, которые несет дисковая группа в RAID:

Если собрать 6 дисков в RAID 10, то на каждую запись в 1 IOPS данных будет потрачено 2 IOPS физических дисков, а если в RAID 6 - то 6 IOPS дисков. Таким образом, при расчете нагрузочных возможностей дисковой группы на запись нужно вначале сложить IOPS всех дисков RAID-группы, а затем разделить их на «штраф».

Пример 1: 2 HDD SATA 7200 в RAID 1 обеспечат на запись: (100 IOPS *2) / 2 = 100 IOPS.

Пример 2: 4 SATA 7200 в RAID 5 обеспечат на запись: (100 IOPS *4) / 4 = 100 IOPS.

Пример 3: 4 SATA 7200 в RAID 10 обеспечат на запись: (100 IOPS *4) / 2 = 200 IOPS.

Примеры 2 и 3 наглядно демонстрируют, почему для хранения баз данных, у которых типовое распределение чтение/запись составляет 68/32, предпочтителен RAID 10.

Из данных трех таблиц понятно, по какой причине производительности типового «джентльменского набора» 2 HDD SATA 7200 в RAID 1 серверу недостаточно: при пиковых нагрузках растет очередь обращений к диску, пользователи ожидают ответа системы, иногда по многу часов.

Как увеличить производительность дисковой подсистемы на запись? Наращивают количество дисков в RAID-группе, переходят к дискам с большей скоростью вращения, выбирают уровень RAID c меньшим штрафом на запись. Хорошо помогает кеширование RAID-контроллером с включенным режимом отложенной записи Write back. Данные пишутся не напрямую на диски (как в режиме Write Through), а в кеш контроллера, и только затем, в пакетном режиме и упорядоченном виде - на диски. В зависимости от специфики задачи, производительность записи удается поднять на 30-100%.

Под слабо нагруженные или относительно небольшие БД (до 20GB) подойдет недорогой способ «добычи IOPS» - гибридный RAID из SSD/HDD . Большего и не нужно филиальной БД на 3-15 пользователей в распределённой структуре вроде сети кафе или СТО.

Для объемных (200GB и более) БД с длинным историческим шлейфом данных, либо для обслуживания нескольких объемных БД эффективным может оказаться SSD-кеширование (технологии LSI CacheCade 2.0 или Adaptec MaxCache 3.0). По опыту эксплуатации таких систем, именно в задачах 1С с их помощью можно относительно недорого и без существенных изменений в инфраструктуре хранения ускорить дисковые операции на 20-50%.

Чемпионом по быстродействию в IOPS предсказуемо являются RAID-массивы на серверных SSD - как традиционные, с использованием SAS RAID-контроллера, так и PCIe SSD. Мешают их популярности два ограничителя: технологический (производительность RAID- контроллеров или необходимость радикально ломать структуру хранения) и цена реализации.

Отдельно следует сказать о хранении индексных файлов и TempDB. Индексные файлы обновляются очень редко (обычно 1 раз в сутки), зато читаются очень и очень часто (IOPS). Таким данным просто необходимо храниться на SSD, c их показателями по чтению! TempDB, используемые для хранения временных данных, как правило, невелики по объему (1-4-12GB), зато очень требовательны к скорости записи. Индексные и временные файлы объединяет то, что их потеря не приводит к потере реальных данных. А значит, они могут размещаться на отдельном (еще лучше - на двух отдельных томах) SSD. Хотя бы и на бортовом контроллере SATA материнской платы. С точки зрения надежности и быстродействия, под TempDB желательно отдать зеркало (RAID1) из SSD, можно на бортовом контроллере, но с обязательным выключением всех кешей на запись. С этой ролью справятся и десктопные SSD - вроде Intel 520-серии, где аппаратная компрессия данных при записи в TempDB будет как раз уместной. Вынос этих задач с общей системы хранения на выделенную скоростную подсистему положительно сказывается на производительности системы в целом, особенно в моменты пиковых нагрузок.

В случаях, когда есть возможность обеспечить максимально быструю реакцию администраторов при сбоях, и когда имеются сложные расчетные задачи (складская или транспортная логистика, производство в УПП, объемные обмены в УРБД), TempDB выносят на RAMDrive. Такое решение позволяет выиграть иногда до 4-12% общей производительности системы. Некоторое неудобство возникает только в случае рестарта сервера: если автоматически RAMDrive не запустится, потребуется вмешательство администратора для ручного старта - иначе станет вся система.

Еще один важный компонент - log-файлы. Они имеют неприятную для любой дисковой подсистемы особенность - генерировать почти постоянный поток мелких обращений на запись. Это незаметно при средних нагрузках, но сильно ухудшает быстродействие сервера 1С при пиковых нагрузках. Разумно выносить log-файл (в особенности, log-файл SQL) на отдельный физический том, к которому нет высоких требований по IOPS, и на который будет идти практически линейная запись. Для спокойствия можно создать зеркало из недорогих и объемных SATA/NL SAS (для Full log), либо недорогих десктопных SSD все той же Intel 520-й серии (Simple log, или Full log, с ежедневным его Backup и очисткой).

В целом можно сказать, что приход SSD в серверы открыл новые возможности увеличения производительности массовых серверов - за счет многоуровневого хранения данных и разумного конфигурирования дискового ввода/вывода.

Дисковая подсистема «идеального сервера под 1С» выглядит так:

1. Таблицы базы данных размещены на RAID 10 (или RAID 1 для малых БД) из надежных серверных SSD с обязательным аппаратным RAID-контроллером. При высоких требованиях по IOPS можно рассмотреть вариант PCIe SSD. Для БД большого объема эффективно SSD-кеширование массивов HDD. Если используемая конфигурация 1С и структура данных не слишком требовательны к IOPS, а количество пользователей невелико - хватит традиционного массива из HDD SAS 15K rpm.

2. Индексные файлы вынесены на быстрый и недорогой одиночный SSD, TempDB - на 1-2 (RAID 1) SSD или RAMDrive.

3. Под log-файлы SQL (а желательно и 1С) отведен выделенный том (одиночный физический диск или RAID-1) на SATA/NL SAS HDD или недорогих SSD, либо логический диск на RAID-массиве, на котором расположена операционная система сервера и пользовательские файлы/папки.

4. Операционная система и пользовательские данные хранятся на RAID 1 из HDD или SSD.

Если IT-инфраструктура виртуализирована, крайне желательно, чтобы SQL Server был установлен не как виртуальная машина, а непосредственно на физический сервер, на «голое железо». Цена вопроса - от 15 до 35% производительности дисковой подсистемы (в зависимости от оборудования, драйверов, средств виртуализации и способов подключения тома). В виртуализированной среде SQL-сервера подключение томов с таблицами БД, индексными файлами и TempDB к VM обязательно в монопольном режиме по Direct Access.

Сетевые интерфейсы

При построении систем 1С:Предприятие 8 для малых и средних предприятий (до 100-150 активных пользователей одновременно) следует минимизировать потери на сетевых операциях через интерфейс Ethernet. В идеале - обслуживать и SQL Server, и «1С:Предприятие 8 Сервер приложений х64», и пользовательские сессии 1С в Remote Desktop одним физическим сервером. Спорная с точки зрения обеспечения отказоустойчивости, такая рекомендация позволяет выжать максимум из оборудования и ПО, а за счет применения виртуализации дает определенный уровень безопасности и «повторяемость среды» на другом оборудовании.

Зачем исключать Ethernet из цепочки SQL-сервер -> Сервер приложений 1С:Предприятие 8 -> пользовательская сессия 1С:Предприятие 8? Сетевой интерфейс Ethernet, с его упаковкой данных в относительно небольшие блоки для передачи, всегда будет создавать дополнительные задержки: и при упаковке/распаковке трафика, и при самой передаче (высокая латентность). В 1С:Предприятие 8 довольно большие массивы данных передаются для обработки и отображения по всей цепочке, в некоторых ситуациях - в обе стороны. При прямой же передаче данных от одного процесса другому в рамках оперативной памяти сервера (на одном сервере без виртуализации), или же через виртуальный сетевой интерфейс (в рамках все того же одного физического сервера, при хороших серверных сетевых адаптерах с переносом блоков RAM между VM) задержки намного ниже. Современные двухпроцессорные серверы с большой оперативной памятью и дисковой подсистемой на SSD позволяют комфортно обслужить БД 1С на 100-150 активных пользователей.

Если для нагруженных БД использование нескольких физических хостов неизбежно, желательно связать все серверы по 10Gb Ethernet. Или, как минимум, 2-4агрегированными соединениями 1Gb Ethernet с аппаратным ускорением TCP/IP (TCP/IP Offloader) и аппаратной поддержкой виртуализации.

Больше всего от потерь производительности на портах Ethernet страдают бюджетные решения. Не секрет, что сетевые адаптеры 1Gb, распаиваемые на большинстве серверных материнских плат, не предназначены для обслуживания интенсивного сетевого трафика. Даже если на плате есть 2 или 3 порта GbE, они, как правило, реализованы на десктопных чипах. Достаточные для управления, они порождают дополнительные накладные расходы по обслуживанию сетевых обменов, особенно в виртуализированной среде. Весь процесс передачи данных через такой чип обеспечивается за счет ресурсов процессора, оперативной памяти и нагрузки на внутренние шины. Никакого ускорения передачи IP-трафика такие чипы не дают, каждый принимаемый и передаваемый Ethernet-пакет требует отдельного прерывания на процессор. В виртуализированой среде потери производительности сетевого интерфейса могут достигать 25-30%. Самое неприятное, что перегрузки именно сетевого интерфейса средствами мониторинга можно и не заметить. За него отдувается центральный процессор, а если не работает, то простаивает в ожидании ответа от сетевой карты. Порты на десктопных чипах желательно исключить из потока данных в виртуализированных средах, оставив их под задачи управления сервером. Под интенсивный сетевой трафик стоит добавить дискретную сетевую карту на серверном чипсете.

Отказоустойчивость или допустимое время простоя?

Обсуждение производительности серверов почти всегда сопровождается спорами об их надежности. Обеспечение отказоустойчивости всегда требует дополнительных затрат, в особенности при поддержке непрерывных производственных процессов. Не принижая роли и места 1С, можно сказать, что большая частью ее пользователей дилемму «производительность/надежность» решает в разных плоскостях: за первую борются оптимизацией аппаратных решений, за вторую - организацией процессов и процедурами. Когда приложения умеренно критические, основное внимание в поддержании работоспособности уделяют не средствам индивидуальной защиты серверов, а минимизации простоя инфраструктуры в целом.

Разумеется, для предприятий с относительно большим количеством одновременно подключенных пользователей (25-150) и размещением всех приложений на одном сервере обязательно применение источников бесперебойного энергоснабжения, избыточных блоков питания самих серверов, корзин горячей замены дисков и RAID-массивов с горячим резервированием. Но никакие аппаратные средства не заменят планового резервирования самих данных. Имея ежедневный (точнее, еженощный) backup и оперативный файл с Full SQL log, можно полностью восстановить БД 1С за относительно короткий промежуток.

Допустимое время простоя центральной системы 1С для малых и средних предприятий - 1-2 аварии в месяц, продолжительностью 1-4 часа. На самом деле, это огромный запас времени - если к восстановлению быть готовыми заранее. Необходимым условием быстрого рестарта является наличие образов всех виртуальных и физических серверов в виде VM на отдельном хранилище/томе - для восстановления самой инфраструктурной части на резервном сервере. Обязателен ежедневный backup (а также еженедельный и по закрытию периода) на другое физическое устройство и Full SQL log для случаев, когда потеря данных «с начала рабочего дня» критична и трудно восстановима вручную. При наличии подменного оборудования можно уложиться в 1-2 часа для восстановления работоспособности в целом, пусть и с меньшей производительностью. Ну а там, где требуется непрерывность работы 24×7, первоочередными задачами будут выбор соответствующей архитектуры, оборудования с минимальным количеством точек отказа и полноценных технологий кластеризации. Но это уже совсем другая история.

Оригинал статьи: http://ko.com.ua/proektirovanie_servera_pod_1s_66779

С разрешения редактора журнала "Компьютерное обозрение"

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама