Для начала предлагаю выделить несколько сценариев работы:

1.) Работа с файловой базой через общий ресурс (веб-сервер)

2.) Работа с файловой базой в терминале

3.) Работа с серверной (MSSQL) базой

Работа с файловой базой через общий ресурс (веб-сервер)


Здесь всё довольно таки просто. Если это обычные формы и 1-3 пользователя. То на "сервер" (машина, на которой будет лежать база выбираем:

  • быстые винты - обращаем внимание на скорость вращения шпинделя (берем 7200rpm). Например, не берем у WD серию green, берем black или red. У Seagate можно посмотреть серию Constellation.
  • Процессор - не столь важны ядра, как их частота. 1С довольно таки плохо использует многоядерность(вообще никак), поэтому выгоды от 8ми ядерного процессора вы не получите, 2ух-ядерный процессор с бОльшей частотой уделает его. Например, core i3 4360 - на текущий момент это максимальная частота у intel (4ghz в turbo режиме).
  • Оперативная память - роли она тут не сыграет. Учитывая как современные приложения пожирают память, поставьте 8гб
  • сеть - ну собственно, от 1гбит сети особо вы не выиграете, но тем не менее, если растянута 8ми жильная витая пара (можете посмотреть в коннекторах), то имеет смысл поставить гигабитный коммутатор, заодно будет быстрее файлообмен.
    И последний штрих в этом сценарии - не нужно размещать базу где-то на отдельной машине - длительные операции будут выполняться намного быстрее локально, чем по сети. Поставьте эту машину на рабочее место, откуда планируется, например,закрывать месяц или производить обновления ИБ.

Другой момент, если база на управляемых формах. Вот тут уже если всё сдалать как описано выше, получатся тормоза. Но тем не менее выход есть:

  • SSD накопитель* вместо обычного винта нас спасёт. Возьмите накопитель на 120гб, благо даже с учетом роста курса стоят они приемлемо. Рекомендую обратить внимание на intel 520/530 series, kingston v300. А лучше просто почитайте обзоры на свежие модели, т.к. этот рынок довольно быстро развивается и на рынок выходят новинки
    *Примечание: Если будете объединять диски в RAID с зеркалированием, например,RAID1. В этом случае есть такой момент: большинству SSD дискам требуется trim для очистки мусора(в основном, касается довольно старых моделей), в режиме raid команда может не поддерживаться и накопитель по мере работы будет деградировать в скорости. Чтобы избежать этой проблемы можно воспользоваться минимум двумя способами: в идеале, приобрести SSD enterprise уровня, например, intel DC3500. Если это покажется дорого можно использовать связку: мат.плата с чипсетом
  • Процессор - аналогично с предыдущим пунктом. Чем больше частота тем лучше.
  • Оперативная память - большойроли она тут не сыграет. Учитывая как современные приложения пожирают память, поставьте 8гб

Если с базой будет работать локально 1 пользователь то этого достаточно для его комфортной работы, но скорость сетевой работы через общий ресурс будет всё так же медленной. Но и здесь есть выход - работа через web сервер. На просторах интернета вы сможете найти большое количество статей, где описывается как организовать работу с 1С подобным образом, не буду останавливаться в данной статье на этом. Единственное, поделюсь с Вами своими наблюдениями: предпочтительнее настроить работу у пользователей не через web-браузер, а через тонкий клиент (когда добавляем в список ИБ новую базу, на странице размещения ИБ есть пункт "на web сервере"). Это, по моим наблюдениям, быстрее чем через браузер. Кроме того при работе через браузер встречаются ошибки в интерфейсе (съехавшая ТЧ и т.п.), которых нет при работе через тонкий клиент.

Собственно, воспользовавшись данным рецептом (ssd,процессор с большой частотой,web-сервер,тонкий клиент). Можно развеять миф "если число пользователей больше 1 (по некоторой версии больше 0:)) - нужна серверная база*.

*Хотя, конечно, с оговоркой что это не УПП или база размером > ~4гб, а количество пользователей не превышает 4 (это максимальные размер базы и количество пользователей, которые видел я, возможно кто-то встречал случаи, когда через web-сервер с файловой базой работало больше человек? Напишите в комментариях)

Работа с файловой базой в терминале

Перейдем к следующему варианту. У нас есть терминальный сервер и есть файловая база. Здесь всё аналогично сценарию 1 за исключением процессора:

  • SSD накопитель вместо обычного винта.*
    *Примечание: обязательно соберите в диски в RAID с зеркалированием, например,RAID1. В этом случае есть такой момент: большинству SSD дискам требуется trim для очистки мусора(в основном, касается довольно старых моделей), в режиме raid команда может не поддерживаться и накопитель по мере работы будет деградировать в скорости. Чтобы избежать этой проблемы можно воспользоваться минимум двумя способами: в идеале, приобрести SSD enterprise уровня, например, intel DC3500. Если это покажется дорого можно использовать SSD пользовательского класса, но тогда убедитесь, что его ресурс перезаписи достаточен для вашего сценария работы.
  • Процессор - Здесь имеет смысл взять corei5 вместо i3, т.к. 1С будет работать на терминале, дополнительные 2ядра не помешают, но не забываем и про частоту.
  • Оперативная память есть такое устойчивое выражение у админов: памяти много не бывает). Из моей практики 7 человек при работе в БП3 занимают 8-12гб на терминале (зависит сколько документов открыто у каждого пользователя). Для обычных форм количество памяти можно поделить на 2:).Примерный расчет можно сделать так: 256мб для самой терминальной сессии + 1,5гб для 1С

Работа с серверной (MSSQL) базой


Этот сценарий наиболее сложный и, пожалуй, требует отдельной статьи. Предлагаю в рамках данной статьи рассмотреть только базовые принципы, которые влияют на производительность

  • Размещение SQL сервера и сервера 1С. На разных машинах или на одной. Есть такой момент: если они находятся на одной машине, то общение между ними происходит через протокол shared memory, и в этом случае мы получаем бонус в быстродействии, которого нет, когда они находятся на разных машинах.
  • Процессор. А вот здесь уже пригодится и высокая тактовая частота и многоядерность. Т.к. у нас есть процесс SQL сервра, если он на этой же машине, и несколько процессов сервера 1С rphost которые будут загружать ядра процессора.Отдельно хочу выделить двухпроцессорные системы (т.е. когда на мат.плате два сокета для и более сокета). Даже если берете с одним пустым сокетом "про запас, докупить процессор потом, если вдруг понадобится". Я видел большое количество двухсокетных серверов, которые до глубокого end of life так и простояли с пустым вторым сокетом. Хотя, если фирма платит...зачем отказывать себе в удовольствии:)
  • Оперативная память . В своей работе SQL сервер* активно использует оперативную память, если её недостаточно, он будет лезть на диски, которые даже в случае ssd медленее оперативной памяти. Поэтому тут на памяти экономить не стоит. Заложите в бюджет максимально возможное количество (не забываем, конечно о здравом смысле:)), и оставьте свободные слоты на материнской плате, чтобы иметь возможность всегда доставить дополнительную планку.
    *Примечание: не забудьте ограничить максимально используемую SQL сервером ОЗУ, чтобы её хватило для ОС и терминальных сессий, а также увеличьте шаги увеличения tmp и базы SQL (по-умолчанию шаг 1мб, что очень мало, установите 200 МБ на базу и 50 МБ на лог)
  • Дисковая подсистема. Может появится мысль, что если объем ОЗУ будет больше размера базы, то она вся будет лежать в памяти и всё будет летать. Оно может так и было бы...до первой операции записи:) которая будет писать на диски. И вот тут то жесткие диски обломают вас:) Используйте SSD диски. И вот тут уже не экономьте не десктопных SSD, приобретите нормальные SSD enterprise уровня. Intel DC3700 -200гб,ресурс 3.7 петабайта (по 10 перезаписей всего объема накопителя в день в течение 5 лет), можно найти за 24000р/шт+второй для RAID1=48000. На лицензии уйдет во много больше.

Вроде всё. Если вопросы/жалобы/предложения - wellcome в комментарии;)

Сегодня мы рассмотрим выбор серверного «железа» для небольшой организации на 25-30 пользователей, с распределенной инфраструктурой (торговые точки, склад), которой требуются терминальный сервер и программа «1С: Предприятие». Этими сервисами будут пользоваться все сотрудники.

Большинство малых компаний, для удешевления стоимости оборудования, предпочитают минимизировать количество приобретаемой техники и просят администраторов «впихнуть» все запрошенные ими сервисы в один физический сервер. Желание понятное и простительное, но тут «есть нюансы».

Можно организовать терминальный сервер и использовать там файловую версию 1С, но при таком количестве пользователей компания-разработчик рекомендует переходить на клиент-серверный вариант. Поэтому нам потребуется еще сервер под «1С: Предприятие» и сервер баз данных. Уточним сразу, что организовать терминальный сервер, сервер SQL и сервер 1С на одной операционной системе возможно, но, с точки зрения безопасности и стабильности работы сервисов, это крайне не рекомендуется. А если всё-таки очень хочется использовать один физический сервер для всех трёх ролей, то рекомендуем использовать виртуализацию, например, VMWare ESXi или Hyper-V.
Таким образом, вырисовывается три варианта:

  1. Один сервер с файловой 1С. Плохой вариант, далее мы его рассматривать не будем.
  2. Один сервер с двумя виртуальными машинами.
  3. Два физических сервера, один терминальный, второй с БД и 1С.

Для решения этих задач можно предложить следующую конфигурацию серверов:

В случае с одним физическим сервером мы остановили выбор на Dell R710, с двумя шестиядерными процессорами Xeon X5650, 64 Гб оперативной памяти и шестью дисками: два SSD в RAID 1 и четыре SAS-диска в RAID 10.

В случае с двумя физическими серверами мы остановили выбор на таких конфигурациях:

  • Терминальный сервер: IBM x3550 M3 с одним процессором Xeon E5620, 32 Гб оперативной памяти и двумя SSD в RAID 1, с дополнительной сетевой картой на два гигабитных интерфейса. У этого сервера также есть богатые возможности для апгрейда, так как он двухпроцессорный, имеет 18 слотов под модули памяти и поддерживает до 288 Гб ОЗУ.
  • Сервер баз данных: IBM x3250 M5 с одним процессором Xeon E3-1220v3, 16 Гб ОЗУ, дополнительным RAID-контроллером SAS/SATA, четырьмя SAS-дисками в RAID 10, с дополнительной сетевой картой на 2 гигабитных интерфейса.
Почему мы выбрали именно такие конфигурации? Для ответа на этот вопрос давайте подсчитаем, что нам нужно для обеспечения комфортной работы пользователей в нашей небольшой организации на 25-30 сотрудников. Чтобы не было недопонимания: это лишь один из примеров недорогого внедрения 1С, и во многих случаях целесообразнее выбрать другие конфигурации.

Процессор

С точки зрения процессорного времени терминальные сессии занимают не очень большую долю. По опыту внедрения терминальных решений в различных организациях, для поддержания комфортной работы 30-ти пользователей достаточно будет 4-6 физических ядер процессора, по одному ядру на 6-8 сессий.

Для небольшой базы SQL-серверу понадобится одно ядро. Но мы будем ориентироваться на расширение базы в будущем (или увеличение количества баз) и возьмем два ядра на SQL.

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

Итого у нас получается:

  • для сервера с двумя виртуальными машинами нужно 12 физических ядер. Можно и меньше, но всегда должен оставаться запас по мощности. Сервер с двумя шестиядерными процессорами подходит для этого идеально.
  • для терминального сервера достаточно одного процессора Xeon E5620 с шестью ядрами, для сервера баз данных - процессора Xeon E3-1220v3 с четырьмя ядрами.

Оперативная память

Сначала посмотрим, сколько нужно оперативной памяти под сервисы:
  • Операционная система Windows Server только под себя требует 2 Гб ОЗУ.
  • Для SQL и небольшой базы 1С достаточно будет 4-6 Гб ОЗУ.
  • Сервер «1С: Предприятие» требует еще 2-3 Гб ОЗУ.
  • Рассчитываем, что каждому пользователю потребуется 700 Мб ОЗУ в терминальной сессии, тогда на 30 пользователей потребуется 21 Гб.
Теперь применим это к нашим вариантам.
  • Для одного сервера с двумя виртуальными машинами нужно около 40 Гб ОЗУ.
  • Для терминального сервера достаточно будет 24 Гб или 32 Гб ОЗУ (возьмем с запасом, предполагая будущее расширение). Для сервера с базами данных нужно не менее 8 Гб, но это «впритык», поэтому 16 Гб с запасом. Память сейчас - один из самых дешевых компонентов сервера.

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

Это традиционное бутылочное горлышко многих систем. Правильный выбор жестких дисков очень важен для обеспечения быстродействия серверов. При работе 1С с базой SQL происходит множество операций чтения/записи в секунду (IOPS). Если пользователи работают на терминальном сервере с тонких клиентов (т.е. полноценно используют терминальный сервер как рабочую среду), это сильно нагружает дисковую систему сервера. Например, 30 пользователей терминального сервера на RAID 1, SATA 3 Гбит/с, с дисками WD Velociraptor чувствуют себя некомфортно при работе с почтой и активном сёрфинге в интернете. Для терминальных серверов мы рекомендуем использовать SSD-накопители. Для серверов баз данных - SAS-диски, собранные в отказоустойчивые массивы.

Помимо накопителей, следует уделить внимание и дисковому контроллеру. Современные серверы имеют на борту довольно хорошие контроллеры, например, HP SmartArray и DELL PERC. Однако некорректно будет использовать «набортные» решения при серьёзной нагрузке, когда требуется максимальная производительность. Немного сэкономив, вы легко можете получить мощный сервер, который совершенно не тянет нагрузку. Поэтому контроллер должен быть аппаратным, а не программным , со своей энергонезависимой памятью.

Рассмотрим варианты решения этой задачи.

  • Для одного сервера с двумя виртуальными машинами желательно использовать два RAID-массива: на одном будут располагаться файлы виртуальной машины терминального сервера, на втором - файлы виртуальной машины сервера баз данных и «1C: Предприятия». Для создания первого массива лучше всего использовать два SSD-накопителя в RAID 1 (зеркало).

    Второй массив лучше создать из четырёх SAS-диска в RAID 10 (зеркало + страйп), но можно и из двух SSD-накопителей в RAID 1. Выбор зависит только от стоимости дисков и модели сервера.

  • Для двух серверов всё то же самое, только массивы будут разнесены по серверам. На терминальном - RAID 1 из двух SSD, на сервере баз данных - RAID 10.

Один или несколько серверов

Как сказано выше, у небольших организаций довольно велико желание разместить все сервисы на одном сервере.

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

Однако два сервера имеют более широкие возможности по апгрейду. Например, в нашем варианте недорогой IBM x3550 M3 с добавлением еще одного процессора и ОЗУ превращается в элегантные шорты терминальный сервер на 50 и даже более пользователей.

Еще одно «узкое место» в нашем случае, которое необходимо учитывать при выборе двух физических серверов, это обмен данными между ними по сети. У виртуальных серверов обмен данными идёт через виртуальный коммутатор. Здесь же, для увеличения пропускной способности сети, можно установить в каждый сервер по сетевой карте с двумя гигабитными интерфейсами, которые можно агрегировать между собой и напрямую соединить оба сервера агрегированными 2-х гигабитными линками. Или же использовать сетевые карты с SPF+ 10GBASE, но это дорогое удовольствие.

Запас по мощности

При расчетах и выборе сервера необходимо принимать во внимание пиковые нагрузки. Также обязательно нужно помнить, что база данных будет только «пухнуть», объёмы данных на терминальном сервере будут расти, а количество пользователей может увеличиться. Многие предприятия экономят на запасе мощности и через полгода-год сталкиваются с перебоями в работе и жалобами пользователей. Это тот случай, когда чрезмерная экономия приводит к новым затратам в будущем - скупой платит дважды. Выбранные нами варианты рассчитаны с запасом мощности и возможностью апгрейда. Учтено, что в DELL R710 можно будет добавить еще два жестких диска и ОЗУ, а также заменить процессоры на более производительные.

Так что, если вам потребуется расширение, или количество сервисов увеличится, то тут есть большие перспективы, а существующие серверы еще долгое время будут эффективно выполнять свои задачи. Возможно, через год нам неожиданно потребуется увеличить количество пользователей в два раза, до 60 человек? Пожалуйста.

Если вы использовали один сервер DELL R710, то можно докупить недорогой IBM x3550 M3, поднять на нём гипервизор, перенести туда виртуальную машину с БД и 1С-сервером, а на DELL-е все ресурсы отдать виртуальной машине с терминалом. Это будет быстро, и не потребуется «всё выкинуть и купить новое».
Если же вы использовали два сервера IBM, то x3550 M3 с добавлением второго процессора и небольшого количества ОЗУ превращается из середнячка в довольно мощную машину. А в x3250 M5 можно обновить процессор с E3-1220v3 до E3-1285v3.

Сегодня мы рассмотрим выбор серверного «железа» для небольшой организации на 25-30 пользователей, с распределенной инфраструктурой (торговые точки, склад), которой требуются терминальный сервер и программа «1С: Предприятие». Этими сервисами будут пользоваться все сотрудники.

Большинство малых компаний, для удешевления стоимости оборудования, предпочитают минимизировать количество приобретаемой техники и просят администраторов «впихнуть» все запрошенные ими сервисы в один физический сервер. Желание понятное и простительное, но тут «есть нюансы».

Можно организовать терминальный сервер и использовать там файловую версию 1С, но при таком количестве пользователей компания-разработчик рекомендует переходить на клиент-серверный вариант. Поэтому нам потребуется еще сервер под «1С: Предприятие» и сервер баз данных. Уточним сразу, что организовать терминальный сервер, сервер SQL и сервер 1С на одной операционной системе возможно, но, с точки зрения безопасности и стабильности работы сервисов, это крайне не рекомендуется. А если всё-таки очень хочется использовать один физический сервер для всех трёх ролей, то рекомендуем использовать виртуализацию, например, VMWare ESXi или Hyper-V.
Таким образом, вырисовывается три варианта:

  1. Один сервер с файловой 1С. Плохой вариант, далее мы его рассматривать не будем.
  2. Один сервер с двумя виртуальными машинами.
  3. Два физических сервера, один терминальный, второй с БД и 1С.

Для решения этих задач можно предложить следующую конфигурацию серверов:

В случае с одним физическим сервером мы остановили выбор на Dell R710, с двумя шестиядерными процессорами Xeon X5650, 64 Гб оперативной памяти и шестью дисками: два SSD в RAID 1 и четыре SAS-диска в RAID 10.

В случае с двумя физическими серверами мы остановили выбор на таких конфигурациях:

  • Терминальный сервер: IBM x3550 M3 с одним процессором Xeon E5620, 32 Гб оперативной памяти и двумя SSD в RAID 1, с дополнительной сетевой картой на два гигабитных интерфейса. У этого сервера также есть богатые возможности для апгрейда, так как он двухпроцессорный, имеет 18 слотов под модули памяти и поддерживает до 288 Гб ОЗУ.
  • Сервер баз данных: IBM x3250 M5 с одним процессором Xeon E3-1220v3, 16 Гб ОЗУ, дополнительным RAID-контроллером SAS/SATA, четырьмя SAS-дисками в RAID 10, с дополнительной сетевой картой на 2 гигабитных интерфейса.
Почему мы выбрали именно такие конфигурации? Для ответа на этот вопрос давайте подсчитаем, что нам нужно для обеспечения комфортной работы пользователей в нашей небольшой организации на 25-30 сотрудников. Чтобы не было недопонимания: это лишь один из примеров недорогого внедрения 1С, и во многих случаях целесообразнее выбрать другие конфигурации.

Процессор

С точки зрения процессорного времени терминальные сессии занимают не очень большую долю. По опыту внедрения терминальных решений в различных организациях, для поддержания комфортной работы 30-ти пользователей достаточно будет 4-6 физических ядер процессора, по одному ядру на 6-8 сессий.

Для небольшой базы SQL-серверу понадобится одно ядро. Но мы будем ориентироваться на расширение базы в будущем (или увеличение количества баз) и возьмем два ядра на SQL.

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

Итого у нас получается:

  • для сервера с двумя виртуальными машинами нужно 12 физических ядер. Можно и меньше, но всегда должен оставаться запас по мощности. Сервер с двумя шестиядерными процессорами подходит для этого идеально.
  • для терминального сервера достаточно одного процессора Xeon E5620 с шестью ядрами, для сервера баз данных - процессора Xeon E3-1220v3 с четырьмя ядрами.

Оперативная память

Сначала посмотрим, сколько нужно оперативной памяти под сервисы:
  • Операционная система Windows Server только под себя требует 2 Гб ОЗУ.
  • Для SQL и небольшой базы 1С достаточно будет 4-6 Гб ОЗУ.
  • Сервер «1С: Предприятие» требует еще 2-3 Гб ОЗУ.
  • Рассчитываем, что каждому пользователю потребуется 700 Мб ОЗУ в терминальной сессии, тогда на 30 пользователей потребуется 21 Гб.
Теперь применим это к нашим вариантам.
  • Для одного сервера с двумя виртуальными машинами нужно около 40 Гб ОЗУ.
  • Для терминального сервера достаточно будет 24 Гб или 32 Гб ОЗУ (возьмем с запасом, предполагая будущее расширение). Для сервера с базами данных нужно не менее 8 Гб, но это «впритык», поэтому 16 Гб с запасом. Память сейчас - один из самых дешевых компонентов сервера.

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

Это традиционное бутылочное горлышко многих систем. Правильный выбор жестких дисков очень важен для обеспечения быстродействия серверов. При работе 1С с базой SQL происходит множество операций чтения/записи в секунду (IOPS). Если пользователи работают на терминальном сервере с тонких клиентов (т.е. полноценно используют терминальный сервер как рабочую среду), это сильно нагружает дисковую систему сервера. Например, 30 пользователей терминального сервера на RAID 1, SATA 3 Гбит/с, с дисками WD Velociraptor чувствуют себя некомфортно при работе с почтой и активном сёрфинге в интернете. Для терминальных серверов мы рекомендуем использовать SSD-накопители. Для серверов баз данных - SAS-диски, собранные в отказоустойчивые массивы.

Помимо накопителей, следует уделить внимание и дисковому контроллеру. Современные серверы имеют на борту довольно хорошие контроллеры, например, HP SmartArray и DELL PERC. Однако некорректно будет использовать «набортные» решения при серьёзной нагрузке, когда требуется максимальная производительность. Немного сэкономив, вы легко можете получить мощный сервер, который совершенно не тянет нагрузку. Поэтому контроллер должен быть , со своей энергонезависимой памятью.

Рассмотрим варианты решения этой задачи.

  • Для одного сервера с двумя виртуальными машинами желательно использовать два RAID-массива: на одном будут располагаться файлы виртуальной машины терминального сервера, на втором - файлы виртуальной машины сервера баз данных и «1C: Предприятия». Для создания первого массива лучше всего использовать два SSD-накопителя в RAID 1 (зеркало).

    Второй массив лучше создать из четырёх SAS-диска в RAID 10 (зеркало + страйп), но можно и из двух SSD-накопителей в RAID 1. Выбор зависит только от стоимости дисков и модели сервера.

  • Для двух серверов всё то же самое, только массивы будут разнесены по серверам. На терминальном - RAID 1 из двух SSD, на сервере баз данных - RAID 10.

Один или несколько серверов

Как сказано выше, у небольших организаций довольно велико желание разместить все сервисы на одном сервере.

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

Однако два сервера имеют более широкие возможности по апгрейду. Например, в нашем варианте недорогой IBM x3550 M3 с добавлением еще одного процессора и ОЗУ превращается в элегантные шорты терминальный сервер на 50 и даже более пользователей.

Еще одно «узкое место» в нашем случае, которое необходимо учитывать при выборе двух физических серверов, это обмен данными между ними по сети. У виртуальных серверов обмен данными идёт через виртуальный коммутатор. Здесь же, для увеличения пропускной способности сети, можно установить в каждый сервер по сетевой карте с двумя гигабитными интерфейсами, которые можно агрегировать между собой и напрямую соединить оба сервера агрегированными 2-х гигабитными линками. Или же использовать сетевые карты с SPF+ 10GBASE, но это дорогое удовольствие.

Запас по мощности

При расчетах и выборе сервера необходимо принимать во внимание пиковые нагрузки. Также обязательно нужно помнить, что база данных будет только «пухнуть», объёмы данных на терминальном сервере будут расти, а количество пользователей может увеличиться. Многие предприятия экономят на запасе мощности и через полгода-год сталкиваются с перебоями в работе и жалобами пользователей. Это тот случай, когда чрезмерная экономия приводит к новым затратам в будущем - скупой платит дважды. Выбранные нами варианты рассчитаны с запасом мощности и возможностью апгрейда. Учтено, что в DELL R710 можно будет добавить еще два жестких диска и ОЗУ, а также заменить процессоры на более производительные.

Так что, если вам потребуется расширение, или количество сервисов увеличится, то тут есть большие перспективы, а существующие серверы еще долгое время будут эффективно выполнять свои задачи. Возможно, через год нам неожиданно потребуется увеличить количество пользователей в два раза, до 60 человек? Пожалуйста.

Если вы использовали один сервер DELL R710, то можно докупить недорогой IBM x3550 M3, поднять на нём гипервизор, перенести туда виртуальную машину с БД и 1С-сервером, а на DELL-е все ресурсы отдать виртуальной машине с терминалом. Это будет быстро, и не потребуется «всё выкинуть и купить новое».
Если же вы использовали два сервера IBM, то x3550 M3 с добавлением второго процессора и небольшого количества ОЗУ превращается из середнячка в довольно мощную машину. А в x3250 M5 можно обновить процессор с E3-1220v3 до E3-1285v3.

В любой организации, где количество пользователей 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С:Предприятие 8» для малого офиса

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

Кому следует задуматься, нужно ли ему покупать сервер?

Вначале давайте опишем условия, когда сервер под «1С:Предприятие 8» не является необходимостью.
Это, как правило, организации, максимально близко подходящие под два критерия:
а) небольшая организация на 1-5 пользователей,
б) Для поддержки бизнес-процессов компании вполне достаточно возможностей типового решения от 1С (т.е. нет необходимости делать доработки типовой конфигурации, максимум изменения некоторых печатных форм, отчетов и обработок).
По статистике, в зависимости от региона, организаций, использующих типовые конфигурации от 1С, может быть до 60-80%.
Если компания удовлетворяет перечисленным выше критериям, то, возможно, вместо покупки набора, состоящего из:
- «1С:Предприятие 8»,
- Windows Server и клиентских лицензий,
- аппаратного сервера,
- услуг по настройке оборудования и ПО,
- поддержки и обслуживания данного комплекса,
имеет смысл рассмотреть возможность аренды «1С:Предприятие 8» у сервис-провайдера в формате «Программное обеспечение как Сервис» (SaaS).
Сервис-провайдеры подобных услуг предлагают полнофункциональные типовые конфигурации «1С:Предприятие 8», представленные в виде удаленного Web-сайта. Печать документов выполняется на свой локальный принтер, сохранять документы в электронном виде также можно на свой локальный компьютер. Конечно, предусмотрена возможность в любой момент выполнить сохранение локальной резервной копии своей базы данных 1С. Причем располагать резервную копию можно и на диске компьютера, и на съемном накопителе USB, и где-то на удаленном «облачном» диске (таком, как DropBox или Яндекс.Диск).
Арендовать одну из типовых конфигураций «1С:Предприятие 8» можно у самой компании 1С на ресурсе 1cFresh.com , а также у ее партнеров, например 1С:Бухобслуживание .
Из технологических удобств - это работа везде, где есть Интернет и практически с любого устройства, в том числе с планшета и даже смартфона, отсутствие необходимости в привлечении IT-специалиста. Из финансовых преимуществ - организация вместо аккумуляции средств, инвестирования в покупку физического сервера, операционной системы Windows Server и самого ПО «1С:Предприятие 8», организация просто оплачивает доступ к «1С:Предприятие 8» как к услуге, сразу списывая затраты на текущие расходы. По сути - как за коммунальную услугу. Если понадобилось увеличить или уменьшить количество сотрудников - это можно сделать практически моментально, тем самым гибко управляя своими затратами в зависимости от текущих потребностей. А работать в таком сервисе смогут и сотни пользователей одновременно.

«Сдаем анализы», или что желательно зафиксировать на текущем оборудовании?

Если у вас уже имеется в эксплуатации сервер с «1С:Предприятие 8», идеальным вариантом было бы запустить стандартную утилиту Windows - Performance Monitor (Perfmon), и записать данные о нагрузке за одни рабочие сутки. Это будет отправной точкой, которая позволит затем сравнить, насколько эффективнее новый сервер, и стоит ли он потраченных денег.
С помощью Perfmon достаточно снять нагрузку на процессор (CPU) в виде % загрузки по ядрам, оперативную память (RAM) в % использования, и физические (а не логические) диски: на которых расположены 1С и OS Windows (это может быть один, но обычно это различные диски). По нагрузке на диск самые важные параметры:
- “Avg. Disk sec/Transfer” (среднее время обращения к диску) - идеально до 10 мс (миллисекунд), хорошо до 25 мс, предельное значение для комфортной работы 40 мс;
- “Current Disk Queue Length” (текущая длина очереди диска) - идеально наличие узких пиков (на графике) и как можно меньшее значение очереди, длины очереди в 70-100 запросов и более, график в виде «горки» говорит о недостаточной производительности дисковой подсистемы;
- “Disk Transfers/sec” (обращение к диску/сек) - здесь важно зафиксировать предельные цифры и их длительность, как правило, это от 80 IOPS и до нескольких сотен, а то и тысяч.
Имея эту информацию, будет проще сформулировать требования к аппаратным подсистемам сервера для поставщика оборудования, и затем сверить их с расчётными значениями.

Методология расчета оборудования

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

Далее рассмотрим методологию расчета требуемых ресурсов для «1С:Предприятие 8» в зависимости от:
- используемой версии - файловая или SQL,
- типа доступа - по локальной сети, через удаленный рабочий стол “Remote Desktop”, или Web-/тонкий клиент,
- количества пользователей,
- количества и объема баз данных,
- иных задач, возложенных на сервер.
Представленный подход относительно универсальный, и одинаково подходит и для запуска «1С:Предприятие 8» на физическом сервере (с включённым Intel Hyper-Threading), и для запуска на виртуализированном сервере с Microsoft Hyper-V или VMware vSphere, и для расчета арендованных ресурсов у облачных сервис-провайдеров.

Для наглядности расчетов мы возьмем три достаточно типичных примера :
а) 5 пользователей «1С:Предприятие 8», файловая версия , пользователи подключенные по локальной сети (ЛВС) через «толстый» клиент 1С. В таком режиме сервер выполняет только роль файл-сервера, а вся вычислительная нагрузка ложится на рабочие места пользователей.
б) 10 пользователей , база данных SQL , запущен «1С:Предприятие 8. Сервер приложений », пользователи работают через «толстый» клиент по ЛВС, база данных объемом в 4 ГБ, за 2 года. Сервер выполняет роль хранилища данных, SQL-сервера, «Сервера приложений 1С».
в) 20 пользователей , база данных SQL , запущен «1С:Предприятие 8. Сервер приложений », пользователи работают в режиме «Удалённого рабочего стола » (RDP), одна конфигурация, база данных размером 9 ГБ за 3 года. Сервер выполняет роль хранилища данных, SQL-сервера, «Сервера приложений 1С», сервера терминалов.

Расчет потребностей в процессорной мощности (CPU ) : Для начала необходимо подсчитать, какое количество «ядер» процессора нам необходимо. Расчет будем вести в «логических ядрах CPU», где одно логическое ядро соответствует на физическом сервере одному ядру в «Диспетчере задач» при включенном Hyper-Threading (т.е. каждое физическое ядро процессора представлено как два логических).
- Под нужды операционной системы (OS) резервируем 1-2 ядра, для SQL-версии обычно достаточно одного, для файловой - лучше два.
- Если используется SQL-версия, то одно ядро на 20-25 пользователей «1С:Предприятие 8» под нужды MS SQL (больше пользователей - больше ядер);
- Также для SQL-версии резервируем одно ядро под нужды «1С:Предприятие 8. Сервер приложений х64» (процесс rphost) на 15-20 пользователей (больше пользователей - больше процессов rphost, больше ядер);
- В варианте работы пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) - резервируем одно логическое ядро на 8 терминальных пользователей (больше пользователей - больше ядер).
- Для работы в режиме Web-сервиса через браузер или «Тонкий клиент» - также резервируем одно логическое ядро на 8 удаленных пользователей. На самом деле для конфигураций на «Управляемых формах» нагрузка смещается на «1С:Предприятие 8. Сервер приложений х64», а в случае Web-сервиса она еще добавляется и по Web-серверу Internet Information Server (IIS), но для расчетов нам это не важно.

Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент необходимо 2 логических ядра под OS (выполняющую в том числе роль файлового сервера) - итого одно физическое ядро процессора;
б) для 10 пользователей в SQL и через «толстый» клиент необходимо одно ядро под OS, одно ядро под MS SQL Server, одно ядро под «1С:Предприятие 8. Сервер приложений х64» (rphost) - итого 3 логических ядра, или 2 физических;
в) для 20 пользователей в SQL и в режиме «Удалённого рабочего стола» необходимо одно ядро под OS, одно ядро под MS SQL Server, одно ядро под «1С:Предприятие 8. Сервер приложений х64» (rphost), 2,5 ядра на обслуживание терминальных сессий пользователей (20:8) - итого 5,5 логических ядра, или 3 физических.
Сервер с самым младшим процессором Intel Xeon E3 12хx содержит 4 физических ядра, или 8 логических. Таким образом, даже минимальный вариант серверного процессора по ядрам вполне покрывает потребности небольшой организации в 25 пользователей «1С:Предприятие 8». А, к примеру, однопроцессорный сервер на основании более мощного Intel Xeon E5 16хx , содержащего 8 физических, или 16 логических ядер, вполне может справиться с нагрузкой в 50-75 пользователей «1С:Предприятие 8» в режиме «Удалённого рабочего стола» или Web-сервиса/«Тонкого клиента».

При этом одной из важнейших характеристик для процессора является его штатная частота (не путать с Turbo Boost), о чем подробнее поговорим чуть ниже. Если говорить упрощенно - комфорт работы пользователей с «1С:Предприятие 8» в режиме SQL, и особенно при работе через «Удаленный рабочий стол» (RDP) почти линейно растет с частотой процессора.

Расчет потребностей в оперативной памяти (RAM ) : Как и при расчете потребности в процессорных ядрах, наша задача - аккуратно учесть потребности всех сервисов.
- Под нужны операционной системы (OS) резервируем 4 ГБ;
- Если используется SQL-версия, то, как минимум, необходимо разместить в SQL RAM Cache 20-30% объема таблиц базы данных (DB). Если баз данных несколько - то 20-30% от объема таблиц данных каждой из баз данных. Либо же, как критерий расчета потребностей SQL RAM Cache, можно использовать объем данных за 1 год. Так как у небольших организаций обычно и базы данных 1С не слишком большие, то очень часто в SQL RAM Cache можно поместить всю базу данных, т.е. 100% объема таблиц базы данных (это идеальный вариант). Минимальный объем - от 2 ГБ.
- Под нужды «1С:Предприятие 8. Сервер приложений х64» объем RAM рассчитывается исходя из количества запущенных процессов rphost, где-то по 1 ГБ на каждый rphost. Обычно это 1-2 ГБ для 10-25 пользователей.
- При работе пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) всё несколько сложнее. В первую очередь необходимо уточнить используемые конфигурации, а еще лучше физически посмотреть, сколько каждая из конфигураций потребляет RAM на одного пользователя в режиме работы по локальной сети или в терминальном режиме. Причем смотреть нужно не сразу после старта, а где-то через 20-30 мин интенсивной работы. Для примера, «Бухгалтерский учет» в среднем потребляет 250-300 МБ RAM на каждую запущенную сессию, «Управление торговлей» в среднем потребляет 300-350 МБ RAM на каждую запущенную сессию. Далее подсчитываем, сколько пользователей будет одновременно использовать каждую конфигурацию, умножаем их количество на необходимый объем RAM для конфигурации «1С:Предприятие 8», и суммируем по конфигурациям для получения общего объема. Как правило, для одной конфигурации и 10 пользователей это 3-4 ГБ RAM.
- В режиме «Удалённого рабочего стола» (Remote Desktop) также необходимо учитывать и другую вероятную нагрузку. К примеру, из 1С очень часто делается выгрузка в формат MS Excel для дальнейшей обработки печатных форм или отчетов. Или пользователям открывают доступ к использованию Интернет, других приложений MS Office и прочих программ. Соответственно, необходимо посчитать потребляемые ими ресурсы RAM. Для MS Word и MS Excel это приблизительно по 100 МБ, для MS Outlook порядка 150 МБ, Internet Explorer порядка 200 МБ на каждый запущенный экземпляр у каждого пользователя. По иным программам оптимально посмотреть их реальное потребление RAM на ПК и точно так же учесть.
- Для работы в режиме Web-сервиса через браузер или «Тонкий клиент» рассчитать потребление RAM можно по тем же принципам, как и для различных конфигураций «1С:Предприятие 8» в режиме «Удалённого рабочего стола», подсчитав пользователей каждой из конфирмаций, умножив на соответствующее потребление RAM в режиме «толстого клиента», и просуммировав. Эти дополнительные ресурсы на самом деле пойдут «1С:Предприятие 8. Сервер приложений х64» и IIS, но для предварительных расчетов вполне подходит.
Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент минимально необходимо 4 ГБ RAM под OS, а лучше 8 ГБ RAM;
б) для 10 пользователей в SQL и через «толстый» клиент с базой данных в 4 ГБ за 2 года необходимо 4 ГБ под OS, 1 ГБ (это 25% объема) или 2 ГБ (данные за год) под MS SQL Server, а лучше 4 ГБ, чтобы все 100% БД помещалось в RAM, 1 ГБ под «1С:Предприятие 8. Сервер приложений х64» (один поток rphost), итого от 6 ГБ до 9 ГБ RAM;
в) для 20 пользователей «Управления торговлей» в SQL с базой данных в 9 ГБ за 3 года и в режиме «Удалённого рабочего стола» необходимо 4 ГБ под OS, 3 ГБ под MS SQL Server (а лучше 9 ГБ, чтобы все 100% БД помещалось в RAM), 1-2 ГБ под «1С:Предприятие 8. Сервер приложений х64» (1-2 потока rphost), 6-7 ГБ на обслуживание терминальных сессий пользователей, итого от 14 ГБ до 22 ГБ RAM.
После подсчета необходимого объема RAM правильно добавить 20-30% запаса на рост нагрузки (увеличения числа пользователей, к примеру, или рост БД). Благо, RAM нынче стоит недорого, а современные процессоры ее поддерживают много - Intel Xeon E3 16xx до 64 ГБ RAM, а Intel Xeon E5 16xx до 1540 ГБ RAM. В сервере много оперативной памяти не бывает;-).

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

Дисковая подсистема состоит из двух компонентов:
- подсистема ввода/вывода в виде контроллеров вода/вывода (HBA) и RAID-контроллеров;
- устройства хранения данных, или в нашем случае - дисков SSD и HDD.

Подсистема ввода/вывода ( RAID ).
Так как мы обсуждаем сервер, задача которого надежно хранить информацию, абсолютно необходимым является резервирование аппаратных ресурсов для хранения данных, т.е. дисков.
Для небольших предприятий, как правило, используется RAID1, или «зеркало», когда данные записываются на два диска одновременно. В таком режиме, даже если один из дисков физически выходит из строя, данные сохраняются.
Есть сразу несколько вариантов построения RAID 1 в небольшом сервере.

1. К примеру, может быть создан полностью программный RAID (Soft RAID) средствами Windows Server. Этот вариант для системного диска, на котором находится операционная система (OS), не применим. Для диска с базой данных - можно попробовать, используя технологию Windows Storage Spaces. В реальной жизни применяется крайне редко, рекомендовать не будем.

2. Можно использовать аппаратно-программный, построенный на основе чипсета от Intel и технологии Intel® Rapid Storage Technology (Intel RST ). Суть его в том, что все операции по вводу-выводу на аппаратном уровне выполняет чипсет материнской платы, практически не загружая ресурсы CPU. А вот управление этим массивом осуществляется на программном уровне, за счет драйверов под Windows.
Это самый распространенный , и на данный момент самый высокопроизводительный вариант построения RAID1 для не очень нагруженного сервера на 2 или 4 диска.
Правда, как любое компромиссное решение, у него есть некоторое недостатки.
а) Его работа зависит от драйверов, загружаемых в операционную систему. А это несет некоторый потенциальный риск, что при обновлении драйверов или OS может возникнуть ситуация, что диск RAID будет недоступен. Она чрезвычайно маловероятна, т.к. компании Intel и Microsoft весьма дружны и очень качественно тестируют свое ПО, но не исключена. Справедливости ради нужно отметить, что за последние лет 8 автор со случаями подобных сбоев не сталкивался.
б) Исходя из результатов экспериментов в тестовой лаборатории компании Entry, по косвенным признакам можно предположить, что драйверная модель Intel RST для кэширования на запись использует ресурсы RAM. Это дает прирост производительности, но при этом несет некоторые риски потери данных при незапланированном отключении электропитания сервера. В предыдущей «реинкарнации» этой технологии, Intel Matrix RAID, на уровне команд кэширование на запись можно было явно отключить. В современной версии Intel RST как-либо повлиять на этот параметр, или даже узнать его состояние, у пользователя возможности нет. Купируется этот вопрос просто - установкой относительно «умного» источника бесперебойного питания (Smart UPS), который умеет отслеживать состояние своих батарей и при их разряде дает команду на выключение сервера. По сути, ИБП к серверу в любом случае необходимо ставить, так что это не является проблемой, главное не полениться выполнить настройки. Есть некоторый вопрос с переносимостью в случае выхода из строя материнской платы. В гарантийный период этот вопрос наверняка сможет закрыть поставщик оборудования, а вот в пост-гарантийный может потребоваться поиск аналогичной материнской платы.
Стоимость такого решения в большинстве случаев уже включена в стоимость материнской платы и, по сути, пользователю достается «бесплатно».

3. Среди IT специалистов достаточно распространено желание иметь в сервере полностью аппаратный RAID. Удачным примером такого решения является использование SAS-контролера (SAS HBA) в режиме RAID1. К примеру, LSI HBA 9211 и его последователей. Для этого в SAS HBA устанавливается специальная прошивка BIOS, у LSI 9211 это “IR”-прошивка. Преимущества по производительности такая схема не несет. Теоретически, в случае выхода из строя материнской платы можно диски и контроллер оперативно подключить к другому серверу… но ведь с такой же вероятностью как материнская плата может сгореть и SAS-контроллер, так что с точки зрения автора преимущество это несколько призрачное, решающее больше проблемы психологические, чем технологические.
Стоимость LSI HBA 9211 находится на уровне $250-300, что заметно дороже предыдущего варианта на Intel RST. Такой прирост цены для бюджетного решения довольно существенный. С точки зрения автора, если уж есть желание сделать «аппаратный» RAID, то лучше выбрать чуть более дорогое решение на Intel® RAID Controller RS3WC080 . Данный SAS HBA также построен на чипе LSI, но уже следующего поколения, LSI SAS 3008, поддерживает стандарт SAS 3.0 (12-Gb/s), при цене около $300.

4. Иногда, в случае недобросовестности или недостаточной квалификации продавца, в серверы под 1С пытаются продавать недорогие RAID-контроллеры устаревших моделей. Например, Adaptec 6405E . Недостаток таких контроллеров в том, что встроенный в них чип по своей производительности рассчитан на поддержку некоторого количества HDD, и плохо справляется даже с нагрузкой в виде двух серверных SSD младших моделей. К примеру, современные SSD легко могут выдать на чтение 80 000 IOPS (обращений в секунду) каждый, а процессор RAID-контроллера, допустим, способен обработать всего 60 000 IOPS… Также при использовании RAID1 и SSD нет необходимости в кэше на запись на контроллере - запись что в RAM-кэш на контроллере, что напрямую в SSD происходит практически с одинаковой скоростью, как и чтение. Более того, современные RAID-контроллеры, даже имея по 1 ГБ RAM Cache на борту, при работе с SSD его не используют. Это не значит, что Adaptec 6405E плохой контроллер, просто данный инструмент предназначен для другого использования.
Стоимость Adaptec 6405E - порядка $250.

В качестве краткого завершения предлагаю посмотреть на график тестирования четырех SSD в RAID10 в трех вариантах построения RAID: Adaptec 6405E, LSI 9211, Intel RST (тестовая лаборатория Entry). Хорошо видно, что наиболее производительным получается вариант с Intel RST, наименее производительный - с Adaptec 6405E.

Устройства хранения данных ( SSD и HDD )

«1С:Предприятие 8» в своей работе кроме собственно места расположения таблиц Базы данных (папка для файловой версии, таблицы DB для версии SQL), может использовать системный диск “С:\”. Например, системную папку Tmp операционной системы Windows для хранения временных файлов. С ней может работать SQL версия - в частности хранить там tempDB. В режиме «Удалённого рабочего стола» может использоваться локальные tmp директории терминальных пользователей на сервере, которые также обычно находятся на диске “C:\”, в локальных профилях пользователей.
- Под нужны операционной системы (OS) резервируем не менее 120 ГБ;
- Для хранения базы данных в файловой версии желательно просто посмотреть объем папок, в которых хранятся базы данных. Обычно это до 1-2 ГБ, а то и 10-20 ГБ.
- Если используется SQL-версия, то у нас есть три типа данных - сами таблицы базы данных (DB), временные таблицы (tempDB) и SQL log. По умолчанию tempDB будут расположены на системном диске “C:\”. Он для небольших баз данных, как правило, маленький, порядка 100-300 МБ. Таблицы базы данных (DB) - как и писалось выше, редко превышают объем 10-20 ГБ для компаний в 5-25 пользователей, но здесь в первую очередь надо смотреть текущий объем плюс прирост за год. SQL log может быть очень большим, до десятков ГБ, особенно когда включен режим “Full SQL log”, но он же может быть безболезненно «обрезан» в конце каждого месяца и архивирован (или удален, если не нужен).
Итого, под нужды баз данных «1С:Предприятие 8» выходим на емкости 20-60 ГБ, что на самом деле меньше самых маленьких серверных дисков что HDD, что SSD.
- В варианте работы пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) имеет смысл учесть по 3-4 ГБ RAM в личных папках пользователей под хранение различных файлов загрузки или выгрузки/данных в/из 1С. Если же сервер используется еще и как файловое хранилище - это нужно рассчитывать совершенно отдельно от потребностей для 1С, и желательно на других физических дисках.

Что нужно еще учесть для проектирования относительно подбора дисков.
1. Очень желательно разнести Операционную систему (OS) и данные 1С (таблицы данных) на различные физические устройства с точки зрения отказоустойчивости. Но если бюджет маленький - ну что ж, пусть все будет на одном хранилище, с подстраховкой за счет RAID и ежедневных Backup на внешний носитель (или сервис).
2. Не забываем, что для сервера обязательным является резервирование дисков и построение из них отказоустойчивого RAID1 (RAID5 и его аналоги для баз данных не применяются), т.е. нам нужно, как минимум, два одинаковых диска (если OS и база данных совмещены), либо дважды по два одинаковых диска для двух массивов RAID1 (если OS и База данных разнесены).

Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент минимально необходимо 120 ГБ под OS, а лучше 240 ГБ, и 10-20 ГБ под данные. По сути, с такой нагрузкой справится дисковая подсистема из двух дисков Intel SSD s3510 series на 240 ГБ в режиме RAID1.
б) для 10 пользователей в SQL и через «толстый» клиент с базой данных в 4 ГБ также технически будет достаточно дисковой подсистемы из двух дисков вроде Intel SSD s3510 series на 240 ГБ в режиме RAID1. Но, с учетом количества пользователей, уже имеет смысл рассмотреть разнесение на два раздельных тома - два диска в RAID1 по 120-240 ГБ под OS и два диска в RAID1 по 80 ГБ под Базу данных.
в) для 20 пользователей «Управления торговлей» в SQL с базой данных в 9 ГБ также технически будет достаточно дисковой подсистемы из двух дисков вроде Intel SSD s3500 series на 240 ГБ в режиме RAID1. Тем не менее, с учетом количества пользователей, настоятельно рекомендуется разнесение на два раздельных тома ОС и Базу данных - два диска в RAID1 по 120-240 ГБ под OS и два диска в RAID1 по 80-120 ГБ под базу данных.

Хотелось бы напомнить о «принципе разумной достаточности».
Как правило, объем баз данных у небольших компаний на 5-25 пользователей «1С:Предприятие 8» также небольшой. И тут очень важно не гнаться за объемом диска, он вам банально не нужен. Зато имеет смысл выбрать максимально надежный и производительный диск, пусть и меньшей емкости. Типичной ошибкой покупателей является желание «купить диск побольше, дёшево же», что приводит к использованию более дешевых и емких не серверных дисков, что с технической точки зрения недопустимо.

Обход узких мест

Сетевой интерфейс . С наименьшей вероятностью при работе с «1С:Предприятие 8» узким местом может оказаться сетевой интерфейс, т.к. большого объема данных не передается, то и особых требований для 5-25 пользователей нет. Тем более на большинстве серверов установлено сразу две сетевые карты Ethernet 1 Гбит/с, но тут имеются нюансы.
Сетевые карты бывают разные. Одни - предназначены для работы в ПК и ноутбуках, и в них существенная часть нагрузки ложится на CPU. К таким относятся, например, сетевые интерфейсы на чипе Realtek RTL8201N. Такие чипы используются и в серверах, но на специальных портах, предназначенных для управления сервером.
В то же время существуют серверные сетевые чипсеты, например Intel® i350-AM2 Dual Port Gigabit Ethernet. У них большая часть обработки происходит на самом чипе, без привлечения ресурсов CPU, что и быстрее, и эффективнее.
Собственно, рекомендации просты:
- не покупать ПК «а-ля сервер», т.к. скорее всего у него стоит сетевая карта Ethernet для ПК;
- если у сервера несколько портов Ethernet, не использовать для рабочей нагрузки порт, предназначенный для управления.

RAM . Здесь всё просто. Как посчитать - описано выше. Оперативная память нынче стоит недорого. Потому посчитать, взять запас 20-50%, а можно и больше - и закрыть вопрос. Если ожидается существенный рост нагрузки в ближайшие год-два - проконтролировать, чтобы в сервере оставались свободные слоты для установки дополнительных модулей памяти.

CPU . После расчета количества необходимых физических ядер, остается вопрос с частотой.
И это очень важный вопрос.
1. Если ядер хватает, то производительность клиентской части, Сервера приложений «1С:Предприятие 8», а во многих ситуациях и SQL-сервера, напрямую зависит от частоты процессора. Причем - практически линейно. Очень многие отчеты, к примеру, при увеличении частоты процессора в 1,5 раза ровно во столько же раз выполняются быстрее.
Поэтому при прочих равных условиях имеет смысл отдавать предпочтение более высокочастотным процессорам.
2. Следующий момент - это не попасться на маркетинговую уловку некоторых продавцов, выдающих частоту процессора в режиме Turbo Boost за частоту процессора. Да, технология Intel® Turbo Boost Technology 2.0 довольно интересная штука, и в реалиях 1С, когда работает всего один поток (проведение документов или формирование сложного отчета) он позволяет поднять производительность одного ядра на 15-30%, а то и больше. Но нужно помнить, что в реальности в серверном чипе частота поднимется на краткий промежуток времени, на 30 сек, иногда на одну мин, а затем снижается до штатной. В итоге выигрыш - очень краткосрочный. А высокочастотный процессор всегда работает на высокой частоте, а значит быстрее. Поэтому он и стоит дороже.
Пример - ниже в таблице:

Табл. 1

3. Для малых предприятий на 3-10 пользователей иногда предлагают купить не сервер на Intel Xeon E3, а «мощный ПК» на Core-i7, ссылаясь на его большую производительность и надежность.
Но нужно учитывать следующие моменты.
а) Процессор Intel Xeon E3 и Core-i7 на самом деле в аппаратном плане близнецы-братья, и даже стоят одинаково. А вот внутренняя прошивка, отвечающая за расстановку приоритетов - разная. Очень упрощенно - у Xeon E3 приоритетом обладают операции ввода/вывода и другие серверные операции, а у Core-i7, заточенного под игровой сегмент и обработку видеопотоков - в приоритете обслуживание видеокарты. Цена же, еще раз подчеркну - одинаковая (при одинаковых параметрах).
б) Есть большая разница между десктопной и серверной материнской платой. Десктопная рассчитана работать 8 часов в день, 5 дней в неделю, два или три года. Соответственно, компоненты для нее выбираются, чтобы выдержать именно заложенные сроки эксплуатации. Серверные материнские платы рассчитаны работать 24 часа в сутки, 365 дней в году три или пять лет. И компоненты там несколько иные. А вот разница в цене - опять-таки минимальна, зачастую на уровне $10-20.
в) В «продвинутом» ПК с высокой долей вероятности сетевая карта будет стоять отнюдь не серверная.
Имеет ли смысл вместо сервера как специализированного устройства с заданными параметрами эксплуатации пытаться покупать некий «навороченный ПК» на роль сервера, да еще и не факт что дешевле - каждый теперь может сделать осознанный выбор.

Диски . Это, наверное, самая больная тема на момент написания статьи.
К сожалению, все еще есть и пользователи, и продавцы, слегка застрявшие в прошлом веке. И абсолютно уверенные, что HDD SAS 15 000 rpm - это пример надежности и производительности.
На самом деле это давно уже не так.

а) Для начала давайте разберемся с надежностью SSD и HDD.
Чаще всего теоретическую надежность дисков оценивают по параметру «Non-recoverable Read Errors per Bits Read», что можно перевести «Вероятность появления невосстановимой ошибки чтения на количество считанных бит». Он показывает, какой объем данных нужно считать с диска, чтобы появилась высокая вероятность появления невосстановимой ошибки.
Еще одни важный параметр, показывающий вероятность отказа диска - AFR (annual failure rate), или «Годовая интенсивность отказов».
Далее в таблице приведены данные для типовых дисков SATA Desktop HDD 7200 prm , SATA Enterprise HDD 7200 prm (SATA Raid Edition) , SAS HDD Enterprise 15 000 prm , SATA SSD Enterprise (данные взяты из официальных документов производителей, можно проверить цифры по ссылкам).

Параметр

Тип дисков

Desktop SATA 7200 rpm

Enterprise SAS 15 000 rpm
(10 000 rpm)

Enterprise SATA SSD

Non-recoverable Read Errors per Bits Read

Объем, при чтении которого статистически ожидается невосстановимая ошибка

Как хорошо видно из таблицы, по параметру «Годовая интенсивность отказа» диск для применения в обычном ПК в среднем в два раза менее надежен, чем серверный.
По поводу вероятности появления невосстановимых ошибок теория нам явно говорит, что у Enterprise SATA SSD, в качестве примера которого был взят Intel® SSD DC S3510 Series , в 10 раз ниже вероятность ошибки, чем у SAS HDD Enterprise 15 000 rpm, в 100 раз ниже, чем у SATA Enterprise HDD 7200 rpm, и в 1000 раз ниже, чем у SATA Desktop HDD 7200 rpm.
При этом цена SATA Desktop HDD 7200 rpm и Enterprise SATA SSD за объем, достаточный и для размещения и операционной системы, и баз данных 1С, отличается отнюдь не в 1000 раз, и даже не в 10.
Отдельно обращу внимание на «Объем, при чтении которого статистически ожидается невосстановимая ошибка». Для SATA Desktop HDD этот показатель 12,5 ТБ. А уже есть диски и на 8 ТБ, и на 10 ТБ… таким образом, поставив, к примеру, 8 ТБ десктопный диск, записав его и прочитав два раза, мы по теории столкнемся как минимум с одной невосстановимой ошибкой!

Краткое резюме:
- применяйте в сервере SSD Enterprise-класса, они, по крайней мере, не хуже, а теоретически и более надежны, чем любые HDD.

б) Далее оценим производительность SSD и HDD.
С точки зрения баз данных, которой, по сути, является 1С, наиболее важными являются всего три параметра диска
- латентность (Latency), или время отклика диска, измеряется в микросекундах (меньше - лучше);
- количество операций чтения в секунду (Disk Reads/sec) , измеряемой в IOPS (больше - лучше);
- количество операций записи в секунду (Disk Writes/sec), измеряемой в IOPS (больше - лучше).
Давайте сведем эти три параметра в одну таблицу для тех же самых дисков, что и в примере про надежность.

Параметр

Тип дисков

Desktop SATA 7200 rpm

Enterprise SATA \ SAS NL 7200 rpm

Enterprise SAS 15 000 rpm
(10 000 rpm)

Enterprise SATA SSD

Latency (время отклика диска на чтение/запись), микросекунды

Disk Reads/sec (количество операций чтения в секунду), IOPS

Disk Writes/sec (количество операций записи в секунду), IOPS

Как хорошо заметно из таблицы, SSD по параметру время отклика превосходит HDD в 40-80 раз , а по количеству операций ввода-вывода в секунду в 100-400 раз (!!!).
При этом, если подходить к выбору разумно, и покупать только ту емкость хранения, которая реально востребована - то разница в стоимости Enterprise SATA SSD и Enterprise SATA \ SAS NL HDD окажется очень незначительной.
Разумно ли при этом использовать для размещения баз данных HDD? С точки зрения автора - только если Вы купили на склад неликвид, вам очень надо его продать, и дальнейшие взаимоотношения с покупателем вас мало волнуют. Потому как и соотношение цена/производительность, и цена/надежность явно в пользу Enterprise SSD.

А теперь самое время вернуться к тому моменту, когда были измерены реальные показатели нагрузки на дисковую подсистему (если их удалость сделать).
Если говорить о «средней температуре по больнице», то приблизительные пиковые нагрузки по IOPS могут быть такими (количество пользователей, объем БД 1С; в нижней строке Disk Transfers/sec)

Зная количество пользователей и объем баз данных 1С, вполне можно приблизительно оценить потребность дисковой подсистемы в IOPS по Disk Transfers/sec (=Disk Reads/sec + Disk Writes/sec), либо же взять свои реальные измерения, и сформулировать требования к вашей дисковой подсистеме в операциях ввода/вывода в секунду (IOPS). И вооружившись цифрами выбрать те диски, которые им будут удовлетворять.

в) И чтобы закрыть вопрос, какие именно SSD необходимо ставить, давайте разберемся, чем отличаются Enterprise SATA SSD и обычные десктопные SATA SSD .
1. Производительность скорости чтения данных в IOPS что десктопные, что серверные диски будут показывать очень похожую. А вот производительность скорости записи данных будет существенно отличаться, и с ростом заполнения пространства на диске у десктопных SSD она будет быстро деградировать. Да, в спецификациях на десктопные диски можно увидеть очень высокие показатели в IOPS на запись… при 5-8% заполнении диска данными. А при 100% - их даже не приводят, и неспроста - эти показатели часто не отличаются от таковых у HDD. Для серверных SSD тестирование производительности на запись выполняется как раз при 100% заполнении данными, и её величина - это, как правило, или усреднённый, или один из худших результатов. Вывод - не обращайте внимания на красивые и большие числа в спецификациях производителей для десктопных SSD, это маркетинг. Для сервера необходимо выбирать пусть самую младшую, но Enterprise модель SSD. Например, такие как Intel® SSD DC S3510 Series.
2. Следующий важный параметр, который хорошо демонстрирует кардинальные различия между серверными и десктопными SSD - гарантированный ресурс перезаписи . Большинство десктопных SSD нормально переносят перезапись до 0,1% своей емкости в день (без существенной деградации производительности и выхода из строя) все те же 7 дней в неделю 2-3 года, при не полном заполнении. Серверный диск рассчитан на перезапись 0,3% своего объема каждый день в течении 3-5 лет даже при полном заполнении.
Пункты 1 и 2 объясняются очень просто. В SSD записываются данные в ячейки по 4 КБ, а вот стираются… минимум блоками по 256 ячеек и более. А до стирания всего блока они просто помечаются как готовые к стиранию. Чтобы записать на место старых данных новые - старые необходимо стереть. Чтобы стереть даже одну ячейку в 4 КБ надо вначале все данные из столбца в 256 ячеек перенести в другое место, стереть весь столбец, и вернуть данные на место. Это - небыстрая операция.
Борются с этой ситуацией путем размещения на диске SSD скрытой области, которая не доступна для пользователя, и используется как раз для подмены ячеек, когда есть необходимость «собрать мусор», т.е. очистить неиспользуемые блоки. Такая область называется Over Provisioning, или «Резервная область». Так вот, у десктопных SSD она составляет обычно 4-8% от общей емкости микросхем flash-памяти на диске, а у серверных… достигает 42% от физической ёмкости микросхем . Если же проводить пример, то при условии, что в устройстве будет распаяно микросхем на 320 ГБ, то ёмкость «десктопный» SSD будет 300 ГБ, а в случае серверного пользователю будет доступно всего 180 ГБ. На самом деле все намного сложнее, в серверных дисках применяется еще масса технологий для повышения его «живучести» и обеспечения стабильной производительности, но для общего понимания разницы пример с «Резервной областью» вполне показателен.
3. Еще одно важное отличие серверных и десктопных SSD относится к сфере обеспечения сохранности данных. В любом SSD есть своя энергозависимая RAM, которая используется в т.ч. для операций чтения и записи. В десктопных SSD могут сложиться обстоятельства, когда данные записаны в RAM на SSD, файловая система и SQL-сервер получили подтверждение записи, а на самом деле данные еще не находятся в энергонезависимой памяти. Если в этот момент произойдет сбой по питанию - то очень высока вероятность потери данных, и восстановить, что потеряно, а что нет - очень сложно.
В то же время в серверных SSD имеется суперконденсатор , емкости которого достаточно для записи в энергонезависимую память SSD всех данных, находящихся в RAM внутри SSD. Таким образом, вероятность потери данных при сбое по питанию очень существенно снижается.
И опять-таки, разница в цене серверных и десктопных SATA SSD отличается вовсе не в разы.
Краткое резюме - для хранения важных данных, таких как базы данных 1С, в сервере должны использоваться исключительно серверные Enterprise SSD.

Корпус, блок питания и ИБП

Наиболее распространенным являются три типоразмера для небольших, однопроцессорных серверов:
- монтируемые в 19” стойку (Rack-mount),
- в обычном пьедестальном корпусе (Desktop),
- современные «кубики».
Если вы собираетесь размещать сервер на площадке хостинг-провайдера или специализированной серверной - оптимальным будет Rack-mount формат высотой 1U или 2U. И такой сервер категорически не рекомендуется размещать в том же помещении, где присутствуют люди ввиду его высокой шумности.
Исполнение в Desktop типоразмере корпуса применяется в случае, когда сервер будет стоять в одном помещении с людьми. Такие серверы относительно тихие, мало чем отличаются от ПК, и даже часто выполняют роль рабочей станции для одного из сотрудников.
Хорошим примером «Дружественного к пользователям» подходя являются специализированные корпуса-«кубики».

Кром того, что они приятно выглядят, они еще и тихие.


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

Также следует коснуться вечной темы - нужно или не нужно избыточное электропитание.
С точки зрения автора, при стоимости сервера от $1000 тратить сверху только на обеспечение избыточного электропитания (два блока питания в сервере) еще дополнительно порядка $400 действительно может быть необходимо, только если у вас нет возможности оперативно, за 2-4 часа отвезти сервер в ремонт.

Если сервер rack-mount, то он находится на площадке провайдера или в серверной, где, как правило, обеспечивается качественное электропитание. А если он в офисе - то в подавляющем большинстве случаев за 2-4 часа вполне можно съездить в сервис и заменить блок питания. Если же вы находитесь далеко от сервиса, то, как вариант, можно купить запасной блок питания и положить в шкаф как «ЗиП», а при поломке самостоятельно за 15-20 минут заменить вышедший из строя бок питания на запасной.

Говоря о блоке питания и вероятности выхода его из строя, необходимо вспомнить про источник бесперебойного питания (ИБП) для сервера. Он, как минимум, должен включать в себя возможности корректировки напряжения (AVR), а еще лучше быть класса Interactive. Для снижения рисков потери данных желательно, что бы ИБП имел возможность выключения сервера при низком уровне заряда батарей (и чтобы это все подключили и настроили). И он по своей мощности должен обеспечивать, как минимум, работу от батарей в течение 10-15 минут, чего в большинстве случаев достаточно для корректного выключения сервера.

Собираем сервер «под задачу»

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

а) Для пяти пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент будет достаточно сервер в форм-факторе «кубика», с четырехъядерным процессором Intel Xeon E3 12хx, 8GB RAM, два SSD Intel s3510 240 ГБ в RAID1 на бортовом Intel Rapid Raid.

б) Для десяти пользователей в SQL и через «толстый» клиент будет достаточно сервера в форм-факторе «кубика», с четырехъядерным процессором Intel Xeon E3 12хx, 16 ГБ RAM, двумя SSD Intel s3510 240 ГБ в RAID1 на бортовом Intel Rapid Raid.

в) Для двадцати пользователей в SQL и в режиме «Удалённого рабочего стола» лучше взять сервер в типоразмере Desktop или Rack-mount, с шестиядерным процессором Intel Xeon E5 166x, 32 ГБ RAM, двумя SSD Intel s3510 120 ГБ в RAID1 для размещения баз данных 1С и двумя SATA HDD (RAID Edition) 2-4 ТБ в RAID1 для размещения OS, Backup и пользовательских данных, а также в роли файлового хранилища, и опять-таки на бортовом Intel Rapid Raid либо на Intel® RAID Controller RS3WC080.

И несколько абсолютно практических советов.
1. Не нужно «экономить на мелочи» и использовать неподходящие инструменты - в сервере лучше работает серверный процессор, серверная материнская плата и серверный SSD. Разница в цене с настольными компонентам и очень незначительна, а по функциональным возможностям может оказаться непропорционально большой.
2. Нет особого смысла планировать ресурсы более, чем на три года. Технологии меняются настолько быстро, что через год-два может оказаться эффективнее заменить диск или сервер, чем изначально закладывать ресурс на пять лет.
3. Принцип разумной достаточности применим и к выбору сервера. При объеме базы данных в 10 ГБ специализированный серверный объемом в 80 ГБ куда предпочтительнее «десктопного» в 200 ГБ.

Безусловно, все описанное выше не является догмой. Это эмпирически выведенные расчеты исходя из многолетнего опыта автора по оптимизации аппаратных средств под различные платформы компании 1С.