THE BELL

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

Проектирование сервера под нужды «1С:Предприятие 8» для среднего и крупного бизнеса

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

Оценка требуемой производительности оборудования.

Для подбора оборудования необходима хотя бы предварительная оценка потребности в ресурсах CPU, RAM, дисковой подсистемы и сетевых интерфейсов.
Здесь можно рассматривать два пути:
а) Экспериментальный, который позволяет получить объективные данные о нагрузке на текущее оборудование, и выявить узкие места;
б) Расчетный, который позволяет сделать оценку на основании эмпирически полученных усредненных данных.
Наиболее эффективным является совместное использование обеих методологий.

  1. Мониторинг нагрузки, оценка результатов, поиск узких мест и формирование требований

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

Оценивать производительность сервера мы будем в рамках основных подсистем: центральных процессоров, оперативной памяти, дисковой подсистемы ввода/вывода и сетевых интерфейсов. В среде Windows существует стандартный инструментарий оценки вычислительной нагрузки Windows Performance Monitor (perfmon). В других системах есть свои аналогичные средства оценки.
В общем и целом нагрузка на каждую подсистему сильно зависит от приложений и типов данных, с которыми они работают. Для блока приложений, связанных с 1С, наиболее критичными являются CPU, RAM, а для SQL-сервера еще и дисковая подсистема. При разнесении на несколько серверов критичным также является сетевой интерфейс. Работать будем только с теми параметрами, которые нам важны с точки зрения прикладной задачи.
Данные для анализа необходимо собирать не менее чем за сутки в типовой рабочий день. Идеально - накопить данные за три типовых рабочих дня. Для поиска узких мест желательно снять данные в день наибольшей нагрузки.
Все описанное ниже пригодится, как на этапе подготовки к проектированию нового сервера (для постановки задачи поставщику), так затем и в процессе эксплуатации, для объективной оценки изменений параметров оборудования и возможного дальнейшего «тюнинга» программно-аппаратного комплекса под «1С:Предприятеи 8» в целом.

CPU. В наибольшей степени нас интересует один параметр - «Processor: % Processor Time » («Процессор: % загруженности процессора »). Microsoft про этот параметр говорит следующее: «Этот счетчик отслеживает время, которое ЦП тратит на выполнение потока во время работы. Постоянный уровень загрузки ЦП в диапазоне от 80 до 90 % может указывать на необходимость обновления ЦП или на необходимость добавления нескольких процессоров». Таким образом, если загрузка CPU в среднем находится на уровне 70-80% - это оптимальное соотношение эффективности использования ресурсов CPU и запаса по производительности на пиковые периоды. Меньше - система недогружена. Более 80% - в зоне риска, 90% - система перегружена, необходимо либо разносить нагрузку на другие хосты, либо переезжать на новый, более производительный сервер.

Анализ CPU . Для современных процессоров в первую очередь имеет смысл выяснить, сколько ядер вам необходимо. Сама Windows довольно эффективно распределяет нагрузку между ядрами, и за исключением редких случаев, когда на уровне ПО есть четкая привязка к ядрам - все ядра процессора будут нагружены более-менее равномерно. В общем случае, если у вас параметр «% загруженности процессора » находится в пределах 50-70% - все хорошо, есть резерв. Если менее 50% - значит в вашей системе уже имеется избыточное количество ядер, их число можно уменьшить, либо загрузить сервер другими задачами. Средняя загрузка 80% и более - вашей системе необходимо большее количество ядер.

RAM . Здесь имеет смысл отслеживать два параметра:
«Memory: Available Mbytes » («Память: Доступно МБ »). В нормально работающей системе значение этого счетчика должно быть не менее 10% от объема физической памяти, установленной в сервере. Если объем доступной памяти слишком мал - система вынуждена будет использовать файл подкачки для активных процессов. Как результат - возникают заметные задержки вплоть до эффекта «зависания» системы.
«Memory : % Committed Bytes In Use », «Память: % использования выделенной памяти ». Высокое значение данного счетчика указывает на то, что в системе наблюдается большая нагрузка на оперативную память. Крайне желательно, чтобы данный параметр был ниже 90%, т.к. при 95% появляется вероятность возникновения ошибки OutOfMemory.

Анализ RAM . Ключевым параметром является наличие доступного объема RAM на сервере, что вполне эффективно позволяют мониторить выше приведённые счетчики.

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

  1. «% Free Space » — процент свободного пространства на логическом диске. Если свободно менее 15% емкости диска, он считается перегруженным, а его дальнейший анализ скорее всего будет не совсем корректным — на него будет сильно влиять фрагментированность данных на диске. Рекомендуемый объем свободного места на серверном диске — не менее 20%, для SSD желательно больше.
  2. «Avg. Disk sec/Transfer » — среднее время обращения к диску. Счетчик показывает усредненное время в миллисекундах, требуемое для одной операции обмена данными с диском. Для слабо нагруженных систем (например, файловых хранилищ, хранилищ VM) его значение желательно удерживать в пределах 25 - 30 мс. Для высоконагруженных серверов (SQL) — желательно не превышать 10 мс. Большие значения счетчика говорят о перегрузке дисковой подсистемы. Это интегральный показатель, нуждающийся в более детальном анализе. Какие именно операции, чтения или записи, и в какой пропорции, показывают счетчики Avg. Disk sec/Read (среднее время чтения с диска в секундах) и Avg. Disk sec/Write (среднее время обращения к диску на запись).
    Интегральный показатель Avg. Disk sec/Transfer в RAID5/RAID6 при существенном преобладании операций чтения может быть в пределах нормы, а операции записи будут производиться с существенными задержками.
    3. Avg. Disk Queue Length (средняя длина очереди диска) по сути, является интегральным показателем и состоит из Avg. Disk Read Queue Length (средняя длина очереди к диску на чтение) и Avg. Disk Write Queue Length (средняя длина очереди к диску на запись). Он сообщает, сколько операций ввода/вывода в среднем ожидают, когда жесткий диск станет доступным. Это не измеряемый показатель, а вычисляемый по закону Литтла из теории очередей как N = A * Sr, где N — число ожидающих запросов в системе, A — скорость поступления запросов, Sr — время отклика. Для нормально работающей дисковой подсистемы этот показатель не должен превышать больше чем на 1 количество дисков в RAID-группе. В приложениях класса SQL Server его среднее значение желательно удерживать на уровне менее 0,2.
    4. Current Disk Queue Length (текущая длина очереди диска) показывает число не выполненных и ожидающих обработки запросов, адресованных выбранному диску. Это текущее значение, моментальный показатель, а не среднее значение за интервал времени. Время задержки обработки запросов к дисковой подсистеме пропорционально длине очереди. Для комфортной работы в установившемся режиме количество ожидающих запросов не должно превышать количество физических дисков в массиве более чем в 1,5-2 раза (исходим из того, что в массиве из нескольких дисков каждый диск может одновременно выбирать из очереди по одному запросу).
    5. Disk Transfers/sec (обращений к диску/сек) — количество отдельных дисковых запросов ввода-вывода, завершённых в течение одной секунды. Показывает реальные потребности приложений по случайному чтению и записи к дисковой подсистеме. Как показатель, суммирующий несколько отдельных счетчиков — позволяет быстро оценить общую ситуацию.
    6. Disk Reads/sec — количество обращений чтения в секунду, то есть частота выполнения операций чтения с диска. Важнейший параметр для приложений класса SQL Server, определяющий реальную производительность дисковой подсистемы.
    В нормальном устоявшемся режиме интенсивность обращений не должна превышать физические возможности дисков — их индивидуальным пределам, умноженным на количество дисков в массиве.

100-120 IOPS на каждый SATA или NL SAS диск;

200-240 IOPS на каждый SAS 15000 rpm диск;

65 000 IOPS на каждый диск SSD класса Intel SSD s3500 series (SATA);

7. Disk Writes/sec — количество обращений записи в секунду, то есть частота выполнения операций записи на диск. Чрезвычайно важный параметр для приложений класса SQL Server. При работе в нормальном режиме интенсивность обращений не должна превышать физические пределы дисков, умноженные на их количество в массиве и с учетом штрафа на запись для выбранного типа RAID.

80-100 IOPS на каждый SATA или NL SAS диск;

180-220 IOPS на каждый SAS диск;

2 ,20 GHz

DDR4
1600/1866/2133

3 ,50 GHz

DDR4 1600/1866/2133/2400

Табл.1 - Параметры работы с RAM

RAM . На быстродействие всего сервера будет влиять тип установленной памяти. К примеру, LR DIMM в силу своей архитектуры всегда будет иметь большую латентность, чем обычная память RDIMM DDR4. Особенно на относительно коротких запросах, типичных для SQL при работе с 1С. Исходя из большей латентности и существенно более высокой цены, LR DIMM имеет смысл устанавливать только, если нет возможности набрать необходимый объем RAM за счет RDIMM.
Точно так же DDR4 2400 будет работать чуть быстрее, чем DDR4 2133 - если высокие частоты поддерживает CPU.

Сетевой интерфейс. Здесь желательно придерживаться простых правил:
а) На сервере должны быть минимум три сетевых интерфейса 1Gb Ethernet или выше (10Gb, 40Gb), и не менее двух из них на серверных сетевых чипах. Безусловно, при прочих равных следует отдать преимущество 10Gb Ethernet инфраструктуре, особенно с учетом исчезающей малой разницы в цене оборудования (сетевых карт 10Gb и портов 10Gb на коммутаторах 1GB/10Gb).
б) Сервер должен поддерживать ту или иную технологию KVM-over-IP для удалённого управления.
Из тонкостей можно выделить очень хорошую поддержку всеми серверными сетевыми чипами Intel инструментов виртуализации и умение эффективно распределять нагрузку между ядрами CPU для 10Gb+.

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

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

RAID .
Для задач хранения OS и баз данных, как правило, используется RAID 1 или RAID 10, а также их различные программные аналоги.

1. Полностью программный RAID (Soft RAID) средствами Windows Server не может использоваться для загрузочного диска, зато вполне походит для хранения DB, tempDB и SQL log. Технология Windows Storage Spaces обеспечивает достаточно высокие показатели по надежности хранения и по быстродействию, а также предлагает целый ряд дополнительных функций, самой интересной из которых примирительно к задачам 1С является «Многоуровневое хранение» (tiered storage). Преимущество данной технологии в том, что часть наиболее часто запрашиваемых данных система автоматически размещается на SSD.
Применительно к задачам 1С обычно используют или All-Flash массив из SSD, или для очень больших по объёму (1TB и выше) и многолетних баз данных - Многоуровневое хранение.
Одно из преимуществ технологии Windows Storage Spaces - ее способность создать RAID на дисках NVMe.

2. Для размещения OS эффективен аппаратно-программный RAID1, построенный на основе чипсета от Intel и технологии Intel® Rapid Storage Technology (Intel RST ).
В нем операции по вводу-выводу на аппаратном уровне выполняет чипсет материнской платы, практически не задействуя ресурсы CPU. А управление массивом осуществляется на программном уровне, за счет драйверов под Windows.
Как любое компромиссное решение, у Intel RST есть некоторое недостатки.
а) Работа Intel RST зависит от драйверов, загружаемых в операционную систему. И это несет некоторый потенциальный риск, что при обновлении драйверов или OS может возникнуть ситуация, что диск RAID будет недоступен. Она чрезвычайно маловероятна, т.к. компании Intel и Microsoft весьма дружны и очень качественно тестируют свое ПО, но не исключена.
б) Исходя из результатов экспериментов, по косвенным признакам можно предположить, что драйверная модель Intel RST для кэширования на запись использует ресурсы RAM. Это дает прирост производительности, но при этом несет некоторые риски потери данных при незапланированном отключении электропитания сервера.
Есть у данного решения и преимущества.
Одно из них - всегда очень высокая производительность, находящаяся на уровне, а иногда и выше чем у полностью аппаратных RAID-контролеров.
Второе - поддержка аппаратно-программного RAID1 для дисков NVMe (на момент написания материала - не для загрузочных дисков). И вот здесь кроется интересная особенность для тех, у кого используются высоконагруженные дисковые подсистемы. В отличие от Windows Storage Spaces, которая «догружает» занятое вводом/выводом ядро практически до 100%, Intel RST при достижении приблизительно 70% загрузки ядра подключает к процессу ввода/вывода следующее ядро. Как результат - более равномерная нагрузка на ядра CPU и чуть большая производительность при высоких нагрузках.

Рис 4 - Утилизация CPU Windows Storage Spaces vs. Intel RST

3. Полностью аппаратный RAID в сервере с 2-6 SSD в RAID 1 вполне можно получить за счет SAS HBA на чипсете LSI SAS 3008, например, на Intel® RAID Controller RS3WC080 . Для этого в SAS HBA устанавливается специальная “IR”-прошивка. Причем данный SAS HBA поддерживает стандарт SAS 3.0 (12 Gb/s), при цене около $300. Отличным выбором тут будет Intel® RAID Controller RS3WC080, который идет сразу с необходимой прошивкой.
Суть этого решения в том, что серверным SSD не нужен кэш на запись. Более того, более продвинутые RAID-контроллеры также отключают свой встроенный кэш на запись при работе с SSD. Таким образом, не имеющий кэша SAS HBA в режиме RAID-контроллера вполне успешно справляется с задачами скоростной записи и чтения напрямую с SSD, обеспечивая вполне пристойную производительность.

4. Для высоконагруженных серверов с большим количество дисков SSD SAS или SATA желательно установить полноценный RAID-контроллер класса Intel® RAID Controller RS3MC044 или Adaptec RAID 8805 . Они обладают более производительными процессорами ввода/вывода и продвинутыми алгоритмами для работы с дисками HDD и SSD, в том числе позволяющими ускорить сборку массива после замены вышедшего из строя диска.

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

Параметр

Тип дисков

Enterprise SATA \ SAS NL 7200 prm

Enterprise SAS 15 000 prm
(10 000 prm)

Enterprise SATA SSD

Non-recoverable Read Errors per Bits Read

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

Таб. 2 - теоретическая надежность HDD и SSD

Вероятности появления невосстановимых ошибок у Enterprise SATA SSD класса Intel® SSD DC S3510 Series , в 10 раз ниже, чем у SAS HDD Enterprise 15 000 prm, и в 100 раз ниже, чем у SATA Enterprise HDD 7200 prm. Таким образом, SSD Enterprise-класса теоретически и более надежны, чем любые HDD.

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

Параметр

Тип дисков

Enterprise SATA / SAS NL 7200 prm

Enterprise SAS 15 000 prm
(10 000 prm)

Enterprise SATA SSD

Enterprise NVMe SSD

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

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

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

Таб. 3 - Производительность HDD и SSD.

Как хорошо заметно из таблицы, NVMe SSD (на примере Intel® SSD DC P3600 Series) по латентности превосходит Enterprise SAS HDD в 100 раз , а по количеству операций ввода-вывода в секунду - в 200 раз на запись и в 1500 раз на чтение.
Разумно ли при этом использовать для размещения баз данных технологии HDD?

в) Объем перезаписи в день для серверных SSD .
Кроме всяких «плюшек» в виде суперконденсатора на случай отключения питания и аппаратных модулей шифрования, серверные SSD имеют важнейший параметр - расчётный объем перезаписи в день от общей ёмкости диска SSD. Если мы говорим о серверных SSD Intel - то подразумеваем ежедневную перезапись этого объема в течении 5 лет, что входит в гарантийные обязательства. Этот параметр позволяет отсортировать SSD на «предназначенные преимущественно для чтения», «ориентированные на запись и чтение» и «рассчитанные на большие нагрузки по перезаписи». В табличной форме это выглядит так:

Диск Intel SSD

Перезапись в день (от емкости)

Таб 4. - Объем перезаписи SSD в день.

Соответственно, можно правильно подбирать диски именно под задачу в сервере.
К примеру, для хранения OS и SQL log вполне достаточно Intel SSD s3510.
Для хранения DB и tempDB больше подойдут Intel SSD s3610 или Intel SSD s3710.

Примеры проектирования дисковых подсистем.
Вооружившись описанным выше, давайте соберем несколько дисковых подсистем под различные требованя.
а) Сервер на 45 пользователей, DB - 15 GB, прирост в год - 4 GB, tempDB - 0,5 GB, SQL log - 2 GB.
Здесь экономически оправданно установить RAID1 из двух дисков Intel SSD s3510 240 GB для нужд OS и SQL Log, и RAID1 из двух дисков Intel SSD s3510 120 GB для нужд DB и tempDB. В качестве RAID-контроллера подойдет «бортовой» Intel® RAPID.
б) Сервер на 100 пользователей, DB - 55 GB, прирост в год - 15 GB, tempDB - 4 GB, SQL log - 8 GB.
Для такого сервера можно предложить RAID1 из двух дисков Intel SSD s3510 240 GB для нужд OS и SQL Log, и RAID1 из двух дисков Intel SSD s3610 200 GB для нужд DB и tempDB. В качестве RAID-контроллера оптимальным будет Intel® RAID Controller RS3WC080 (простой аппаратный, без кэша).
в) Сервер на 200 пользователей, DB - 360 GB, прирост в год - 70 GB, tempDB - 24 GB, SQL log - 17 GB.
Это сервер уже довольно нагруженный. Для OS по-прежнему берем RAID1 из двух дисков Intel SSD s3510 240 GB. SQL Log и tempDB можно разместить на выделенном RAID1 из двух дисков Intel SSD s3510 120 GB. А для таблиц DB собрать RAID10 из четырех дисков Intel SSD s3610 400 GB. В качестве RAID-контроллера уместно использовать «продвинутый» Intel® RAID Controller RS3MC044.

Виртуализация
Производительность современных серверов часто позволяет разместить на одном физическом - целый ряд виртуальных. Для их оптимального размещения желательно помнить, как виртуализация влияет на каждый из компонентов сервера.
CPU и RAM - это участки, которые несут наименьшие потери производительности в виртуальной среде. Соответственно, те программные компоненты, которые задействуют преимущественно их - могут быть безболезненно помещены в Виртуальную машину (VM). К ним относится «1С:Предприятие 8. Сервер приложений х64», сервис Remote Desktop и IIS.
Подсистемы ввода-вывода несут заметно бОльшие потери при виртуализации: 5-15% - сетевой интерфейс и до 25% - дисковая подсистема. У нас есть программный компонент SQL Serve, чувствительный к производительности дисковой подсистемы - вполне логично его разместить не в «VM», а физическом «железе».
Обычно так и делают с отдельно стоящими серверами или группой серверов под 1С:
- на «железо» устанавливается OS Windows и MS SQL Server;
- в VM запускается «1С:Предприятие 8. Сервер приложений х64» и в той же VM «Сервер лицензирования»;
- в отдельной VM сервис Remote Desktop или IIS.
При использовании на одном сервере нескольких программных компонентов, в т.ч. на разных VM, необходимо на уровне дисковой подсистемы предусмотреть дополнительное место для их размещения. Как правило, это системные диски с OS - их увеличивают до 480 GB или более.

Резервное копирование
Достаточно распространенной практикой является установка в сервер двух дисков HDD большой ёмкости (4-8 TB) в RAID1 для хранения локальных копий баз данных, а также в роли файлового хранилища. К такому хранилищу не предъявляется высоких требований по скорости случайного доступа. А линейная скорость как чтения, так и записи получается вполне достаточной для сохранения на нем ежедневной резервной копии и пользовательских файлов. Собрать такой том можно на любом имеющемся варианте RAID-контроллера, а на Intel® RAPID он еще будет и довольно шустро работать.

И, пожалуйста, не забывайте, что у отдельного сервера под ответственные задачи обязательно должно быть избыточное питание .

Долгие годы на форумах идут споры о том, что способно ускорить работу файловой 1С.

Конечно рецептов много, в том числе и я некоторыми делюсь на курсе .

Но кто бы, что не говорил, для файловой 1С, узкое место номер №1 это конечно дисковая подсистема!

Собственно «Файловая».

Множественные обращения к диску способны здорово «тормозить» всю работу в 1С Предприятии.

И если мы говорим о многопользовательском доступе, то здесь это очевидно.

Как можно решить эту проблему?

Конечно путем перехода на более быстрые диски HDD, SAS диски, RAID, SSD или даже способ для «экстремалов» размещение базы на RAM диске, то есть в оперативной памяти ПК или сервера.

Собственно в этой статье мы затронем все способы, но особое внимание уделим, конечно, последнему.

Так как нет в сети адекватных статей, которые бы смогли раскрыть многие нюансы, как использования 1С и RAM диска, так и толковых тестов на всех остальных дисковых подсистемах, учитывая повседневные работы в 1С-ке.

А ведь вопросов здесь много:

Кому и когда можно использовать?

В каких ситуациях?

Надежность?

Область применения?

Реальные тесты скорости в различных операциях на 1С?

Начнем, пожалуй, из обычных HDD.

Конечно, суть проблемы в механике HDD, которая не дает нужных скоростей для файловой работы в 1С (особенно многопользовательский доступ).

Ускорить работу HDD можно только путем замены HDD 5400 rpm на 7200 rpm.

Да, скорость вращения имеет значение и 7200 об/мин конечно быстрее 5400.

Это если мы хотим ощутить разницу. (Но стоит отметить что фактически все сегодняшние HDD работают на скоростях 7200.)

Диски на 7200 rpm показывает приблизительно одинаковый результат.

И будь то SATA 2 или SATA 3.

SATA (англ. Serial ATA) - последовательный интерфейс обмена данными с накопителями информации.

Если гнаться за интерфейсом SATA III, (Для HDD) то здесь ощутимой скорости не будет, только совсем небольшая в цифрах. (позже мы проведем тест скорости HDD диска с поддержкой только SATA II и SATA III).

Кстати узнать на каком интерфейсе сейчас работает Ваш диск (и какой интерфейс он поддерживает) можно программой, «CrystalDiskInfo ».

SATA/300 МБ / с – SATA 2

SATA/600 МБ / с – SATA 3

—| SATA/300 (см. рис. 1) — первое это текущий режим работы диска, а второе SATA/300 — это поддерживаемый режим работы. (Иногда первое не отображает, на старых дисках).

На втором рисунке видим что как работа так и поддержка HDD у нас SATA 3 то есть 600 МБ / с. -пропускная способность интерфейса.

(Потом к вопросу интерфейсов мы еще вернемся).

Другое дело если мы поставим обычные HDD в RAID – 0 (Stripe).

При наличии двух или четырех дисков RAID 0 дает ощутимый выигрыш в скорости передачи данных, но совершенно не обеспечивает надежность. Для его построения подойдет любой дешевый и даже программный RAID-контроллер. Подходит для тех, кому нужно выжать максимум производительности от файловой системы на обычных HDD при минимальных затратах.

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

Так-что частые бэкапы баз 1С при таком RAID обязательны.

За счет чего скорость?

Данные в RAID – 0 равномерно распределяются по дискам массива, диски объединяются в один, который может быть размечен на несколько. Распределенные операции чтения и записи позволяют значительно увеличить скорость работы, поскольку несколько дисков одновременно читают/записывают свою порцию данных.

Другими словами RAID 0 просто умело обходит механику, за счет этого скорость.

Это RAID – 10

Но минимальное количество дисков, требуемое для организации данной системы – 4.

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

По этой же причине более быстрые и дорогие SAS диски, протоколы iSCSI разбирать не будем.

Быстрее серверных SAS только SSD диски.

Еще несколько лет назад я бы не советовал покупать «твердотельные» для работы в 1С.

Но это мнение у меня изменилось в след за сегодняшними надежными и относительно дешевыми SSD дисками.

К примеру, компания SAMSUNG сегодня дает на некоторые свои диски 10 лет гарантии!

Компании Intel, SanDisk, Corsair и другие 5 лет гарантии на SSD!

SSD стали работать намного надежнее, быстрее, а контроллеры заметно поумнели, отсюда и такие гарантии.

О ценах

Конечно, SSD диски корпоративного уровня от компании INTEL влетят нам в «копейку».

Но есть и хорошие бюджетные альтернативы.

Например, «твердотельный» от компании SanDisk X400 256 Гб обойдется нам всего в 95$!

Собственно его мы будем также тестировать в 1С, уже в следующий части статьи.

SanDisk X400 диск хороший, надежный (5 лет гарантии), быстрый (чтение/запись до — 540/520 МБ/с).

И раз уж мы заговорили о скоростях, то здесь следует учитывать такой момент как SATA 3.

SATA III (версия 3.x) интерфейс, официально известный как SATA 6 Гбит / с, представляет собой третье поколение интерфейсов SATA работает на 6,0 Гбит / с. Пропускная способность которая поддерживаемая интерфейсом — 600 МБ / с. Данный интерфейс обратно совместим с интерфейсом SATA II -3 Гбит / с.

Пропускная способность SATA II всего 300 МБ/с, этого вполне достаточно для HDD, но абсолютно нет для сегодняшних SSD.

Чтоб раскрыть потенциал SSD, нужен интерфейс как минимум с пропускной способностью в 600 МБ / с, то есть SATA III.

Но не волнуйтесь, ели Вы покупали ПК или сервер после 2010 года то он, скорее всего у Вас есть в наличии. (Иначе нужно менять материнскую плату).

К стати хочу обратить Ваше внимание на контроллеры SATA III от разных производителей (в одной материнской плате), например Intel и Marvell, где первые существенно могут выигрывать по скорости. (Собственно на днях я сам в этом убедился. Intel оказался быстрее на целых 35% процентов).

Конечно SATA III не единственный интерфейс для обмена данными с диском SSD.

Разработчики «твердотельных» уперлись в пропускную способность SATA III — 600 МБ / с, и выпустили на рынок новые устройства с интерфейсами подключения SATA Express, M.2, mSATA, PCI Express.

Тут уже совсем другие скорости:

PCI Express x2 2.0 8 Гбит/с (800 Мбайт/с)

SATA Express 10 Гбит/с (1000 Мбайт/с)

PCI Express x4 2.0 16 Гбит/с (1600 Мбайт/с)

PCI Express x4 3.0 32 Гбит/с (3200 Мбайт/с)

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

Чтоб еще ускорить работу Вашего SSD, можно создать RAID 0 из двух дисков, что позволит даже вдвое увеличить скорость SSD.

Но что же может быть быстрее SSD ?

Конечно ОЗУ!

Тут скорости не сопоставимы с HDD, RAID или SSD.

Есть способы (специальное ПО) при помощи которого можно взять часть оперативной памяти и создать из нее диск.

Сейчас «оперативка» стоит существенно дешевле чем лет 5 назад и у многих на «борту» уже по 8 -16 а то и больше Гб ОЗУ.

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

Я уже говорил что способ «экстримальный» тут не сложно догадаться почему.

Если вдруг сбой в системе, Вы тут же потеряете базу, как собственно и все что будет на этом диске!

Конечно, чтоб реально работать в 1С которая находится на RAM диске, нужно серверное оборудование, серверная оперативная память, блоки бесперебойного питания и надежное железо. (материнка, процессор и так далее).

+ частые бэкапы.

Тогда конечно можно работать, таким образом, в 1С.

Но что делать если такого «железа» нет, нас ведь интересуют бюджетные решения?

Зачем тогда вообще разбирать работу 1С на RAM диске?

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

Закрытие месяца, перепроведение, удаление, «срез базы» (любая другая подобная работа) связанная с большим количеством документов, справочников и всего остального.

Многие из этих операций, могут занимать дни! Тогда как в оперативной памяти несколько часов!

Если, например Ваши пользователи работают в 1С через веб браузер, тогда и его можно целиком поместить в ОЗУ, это существенно ускорит работу пользователя в 1С через веб.

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

Этот хороший прием, можно использовать!

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

Давайте будем его создавать!

Нам поможет бесплатная программа «Dataram RAMDisk »

Ее бесплатной версии будет достаточно для создания диска размером в 4 Гб. (Больше — платно ~$21).

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

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

В наличие имелся простой терминальный сервер на Core i3 2120, 8 Гб RAM, с дисковым массивом RAID 1 из двух Western Digital RE4, который обслуживал от трех до шести пользователей, каждый из которых работал с двумя - тремя базами одновременно.

Анализ производительности сразу выявил узкое место - дисковая подсистема (скриншот сделан уже после установки SSD, поэтому к RAID массиву относятся логические диски C: и E:).

Несложные расчеты показали, что запуск даже одной информационной базы практически полностью использует производительность массива, около 150 IOPS при текущем соотношении чтение/запись - фактический предел для зеркала из двух не самых быстрых дисков. На что косвенно указывает и размер очереди.

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

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

Стало ясно - требуется модернизация дисковой подсистемы. Даже по предварительным прикидкам, создание производительного массива на основе массовых HDD упиралось как в доступный бюджет, так и в физические возможности железа, которое просто не имело необходимого количества SATA-портов и дисковых корзин в корпусе. Поэтому было принято решение о приобретении SSD.

Так как высоких дисковых нагрузок не предусматривалось, то выбор производился в первую очередь из соображений цены. Скоростные характеристики также отходили на второй план, так как узким местом становился интерфейс SATA-II. В итоге был приобретен 128Gb Corsair Neutron LAMD , который будучи установленным в сервер показал следующие скоростные характеристики:

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

Следующий вопрос, который нужно решить: это создать ли "зеркало" из SSD и пожертвовать TRIM ради отказоустойчивости или оставить одиночный диск, выбрав скорость вместо отказоустойчивости. Следует отметить, что современные SSD кроме команды TRIM используют собственные технологии борьбы с деградацией, такие как сбор мусора, что позволяет довольно эффективно работать даже на системах без TRIM. Используемый в данной серии SSD контроллер LAMD (Link_A_Media Devices) как раз таки отличается весьма эффективными технологиями сбора мусора, на уровне накопителей корпоративного уровня, что в общем неудивительно, так как его разработчики давно работают в enterprise-сегменте.

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

Количество операций ввода-вывода существенно выросло, как и скорость обмена с диском, при этом длина очереди не превышает единицы. Это очень неплохие показатели, осталось проверить насколько наши действия ускорили работу непосредственно с 1С:Предприятие.

Для этого мы провели небольшое экспресс-тестирование в ходе которого измеряли время загрузки информационной базы и время группового перепроведения комплекта документов за определенный период времени. В ходе тестирования применялась конфигурация 1С:Бухгалтерия 3.0.27.7 на платформе 8.3.3.721 .

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

Как видим, перенос информационных баз на SSD сразу уменьшил время их загрузки более чем вдвое, а перепроведение ускорилось приблизительно на 30%. При этом полностью сняласть проблема с падением производительности при совместной работе.

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

Сделаем небольшое отступление. Используемый нами диск Corsair Neutron имеет ресурс 2-3K циклов стирания/записи . Несложные расчеты показывают, что если ежедневно полностью перезаписывать всю емкость диска, то для исчерпания ресурса потребуется 5-8 лет. Кроме того статистика показвает, что основная причина выхода из строя SSD в течении гарантийного срока не связана с исчерпанием ресурса, а представляет собой производственный брак или ошибки в прошивке.

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

В группе LinkedIn “Storage Professionals” (кстати рекомендую обратить внимание на существование дискуссионных групп в LinkedIn, бывает интересно) вот уже которую неделю обсуждается тема:
SSD drives failure rates
Некоторые цитаты оттуда, которые я приведу без перевода, благо все понятно (каждый абзац - цитата-фрагмент из сообщения отдельного человека в данном треде).
I’m working as a contractor at a bank in the midwest and we have SSD’s in EMC VMAX’s for about 9 months. We haven’t seen any failures yet
I once ran a multi week attempt to burn out various vendors’ SSDs. I ran them flat out 100% random writes for about a month. Fusion IOs at something like 30k IOPs per drive, STECs / Intels around 7k. Never was able to get any of them to fail.
The Fusion IO did as many writes that month as a single SAS drive could do in over a decade.

We have approximately 150 SSD drives and have seen 1 failure during the past 12 months.
I’ve been using SSDs in a cx4-960 clariion for just under 12 months with no failures (covering large ms sql tempdb).
From my own experience (first shipped SSD systems 2 and half years ago), SLC SSD failure rate is in the same range as rotating drives.

Вот такие дела. Есть над чем подумать тем кто до сих пор считает, что ресурс SSD на запись ужасно ограничен , что SSD ненадежен, и при работе Enterprise Flash Drives дохнет как паленая китайская USB-флешка Kinqston.

THE BELL

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