В настоящий момент 1С-предприятие 8.2 может работать с различными вариантами баз данных. Помимо файлового режима сюда входят такие базы как Microsoft SQL Server, IBM DB2, Postgre SQL, а также не так давно в этот список добавился еще и Oracle. Часто в момент развертывания системы у администратора стоит проблема выбора — какую базы данных выбрать? При этом зачастую не последнее место занимает вопрос производительности полученной системы. В данной статье я попробую исследовать производительность большинства поддерживаемых баз данных (пока что за исключением Oracle) выявить их сильные места, указать на потенциальные недостатки и возможные проблемы в эксплуатации.
Условия тестирования. Очевидно, что в рабочей системе производительность в каждый момент времени может зависит от следующих факторов:
- Аппаратные:
- Процессорная подсистема: количество, частота, режимы работы (в том числе статус режима HyperThreading).
- Подсистема оперативной памяти: физический объем, доступный объем, режимы использования.
- Дисковая подсистема: количество дисков, скорость вращения, наличие аппаратного кэша, режим рейда для дискового массива.
- Сеть: количество и пропускная способность сетевых адаптеров.
- Различного рода настройки операционной системы и СУБД.
- Эффективность SQL-кода.
- Проблема блокировок и взаимоблокировок при обращении к данным.
- Количество одновременно работающих пользователей в системе.
- Характер работы, выполняемый каждым из этих пользователей.
- Возможная вероятность пересечения выполняемых действий на общих ресурсах, которая приводит к возникновению проблемы блокировок и взаимоблокировок.
Оценить производительность различных СУБД при реальной работе пользователей проблематично, слишком много разных условий. Поэтому необходимо смоделировать такую ситуацию, в которой можно было бы исключить все перечисленные факторы и оценить именно чистую производительность как способность СУБД выполнять те или иные операции.
Установка и настройка MS SQL Server 2005 Express Edition
Поэтому система тестов была создана с таким условием, чтобы определить по возможности чистую скорость работы сервера с определенными стандартными алгоритмами 1С 8.1 и 8.2.
- отсутствие ожиданий на блокировках: поэтому тест будет выполнятся в одном потоке
- отсутствие узких мест с точки зрения количества процессоров: тестирование на 4-х ядерном сервере
- отсутствие узкого места в виде недостаточного объема оперативной памяти: для поддержания этого условия набор тестов был подобран таким образом, чтобы потребление оперативной памяти всеми компонентами не превысило более 80% имеющегося объема оперативной памяти на сервере
- отсутствие узкого места в виде сетевой инфраструктуры: во избежание влияния сети на производительность клиентская часть, сервер приложений и сервер баз данных расположены на одной машине
- для снижения нагрузки на жесткие диски в свойствах конфигурации отключено логирование событий, так как при интенсивном заполнении базы данных количество регистрируемых событий сопоставимо с объемами изменения самой базы данных
Итак, посмотрим список оцениваемых систем:
- Microsoft SQL 2000 Server, версия 8.00.2039
Хотя данная СУБД имеет за спиной уже 12-летнюю историю работы и в данный момент не поддерживается, тем не менее в эксплуатации еще встречается и всем требованиям, предъявляемым к базам данных со стороны 1С-предприятия 8.2, удовлетворяет. К тому же она более простая, чем современные 2005 и 2008 версии. К сожалению 64-битное издание существует только для процессоров Intel Itanium, поэтому в исследовании будет изучаться 32-битная редакция. Один из недостатков 32-битной версии — ограничение объема памяти в 64Гб в режиме AWE в связи с 36-разрядной адресацией, сюда же можно включить и сам режим AWE, при котором в расширенной памяти могут храниться только буферы для данных.
Предыдущее поколение СУБД от Microsoft. Данная система пришла на смену устаревшей версии SQL 2000 и полностью поддерживает плоскую модель памяти в 64-битном режиме. Также содержит большое количество усовершенствований, направленных на отказоустойчивость и масштабирование. На данный момент активно применяется в рабочих системах.
Самый свежий продукт компании Microsoft. Есть еще и просто SQL-2008, но было принято решение не плодить сущности и оставить только этот вариант, как самый современный на данный момент. Само собой разумеется, что полностью поддерживается 64-битный режим, поэтому тестирование будет происходить именно в нем.
Текущая актуальная редация данной СУБД, которая доступна для скачивания с сайта 1С.
Новая версия СУБД, которая работает в 64-битном режиме. В данный момент доступна для тестирования партрнерам на сайте 1С. Впрочем на сайте разработчиков Postgre SQL эта версия уже давно находится в статусе релиза, а тестовой версией считается в данный момент 9.1 beta 3.
Самая свежая на текущий момент версия СУБД от компании IBM.
Файловый режим взят для сравнения. Поскольку все остальные варианты являются типичными примерами 3-звенной архитектуры, было интересно сравнить их чистую производительность с простым файловым режимом.
В тестировании принимала участие версия платформы 8.2.14.519. Сервер приложений 64-разрядный.
В качестве системы тестов были выбраны следующие 5 режимов тестирования:
Microsoft SQL Server 2005
12 апреля 2016 года Microsoft официально прекращает поддержку всех версий Microsoft SQL Server 2005. Компания готова предложить более современные версии продукта и помочь с миграцией данных клиентов. Это обеспечит высокую производительность корпоративной ИТ-инфраструктуры при возрастающих рабочих нагрузках и будет способствовать улучшению операционной эффективности и увеличению прибыльности компании.
Эксперты отмечают колоссальный разрыв между технологиями SQL Server 2005 и SQL Server 2014 годов – современная версия демонстрирует рост производительности в 13 раз для традиционных систем OLTP, до 30 раз при использовании технологий обработки транзакций в оперативной памяти, включает улучшенный индекс Columnstore, помогающий экономить место в хранилище и повышать скорость выполнения запросов чтения до 100 раз и поддерживает гибридные сценарии в Azure. Кроме того, SQL Server 2014 предоставляет каждому пользователю организации оперативный доступ к новейшим инструментам BI, позволяющим анализировать данные как из внешних, так и внутренних источников и формировать подробную и структурированную отчетность для принятия более точных управленческих решений. Так, компания Gartner назвала новое ПО лидером «магического квадранта» в области систем управления базами данных, высоко оценив функциональность, производительность, надежность, а также стратегическое видение развития платформы.
«Продолжая работать с SQL Server 2005 без обновлений безопасности и исправлений от Microsoft компания может столкнуться с серьезными рисками для бизнеса – сбоями в работе из-за резкого снижения уровня защиты, скорости аварийного восстановления системы, несоответствием ПО требованиям нормативного регулирования и логичному увеличению затрат на техническое обслуживание. Поэтому обновление до SQL Server 2014 до окончания расширенной поддержки SQL Server 2005 обеспечит надежное функционирование ИТ-инфраструктуры», – подчеркнул Марченко Дмитрий , директор по продвижению облачной платформы Microsoft в России.
Microsoft SQL Server 2005 – продукт, который был выпущен на рынок в 2005 году. В 2015 году корпорация предлагает более современные решения, например SQL Server 2014, эта современная платформа по управлению базами данных предлагает пользователям такие преимущества, как повышенная производительность и упрощенное обслуживание. По результатам тестирования она в 13 раз быстрее, чем SQL Server 2005. Кроме того, инструмент аварийного восстановления AlwaysOn обеспечивает высокую устойчивость SQL Server 2014, синхронизация с Windows Server 2012 R2 позволяет масштабировать инфраструктуру, а SQL Server Management Studio дает доступ к облаку.
Источник: www.tadviser.ru
Настройка Microsoft SQL Server для 1С Предприятие (Maintenance Plans)
Доброго времени, гости и читатели блога k-max.name. Сегодня публикую небольшую мемори-записку о настройке Microsoft SQL 2005 для 1С Предприятия. Думаю для других нужд использования MS SQL данная статья тоже даст некоторую информацию. Итак, начнем.
Шаг 0. Перед установкой и настройкой MS SQL 2005 желательно иметь 3 физических диска. Один — для системы, второй — для файлов баз и третий — для журналов транзакций SQL. При этом, раздел для логов SQL и tempdb желательно чтобы был более производительным (например RAID 1+0).
Шаг 1. Установка сервера MS SQL
При установке SQL-сервера для работы с 1С достаточно следующих включенных компонентов (более подробно о компонентах Microsoft SQL тут , об установке серера тут ):
На данном изображении:
— Integration services — не обязательный элемент — необходим для управления пакетами SSIS (планами обслуживания (экспорт/импорт)), потом его можно будет отключить
— Database Servises — собственно сам сервер СУБД
— Client Component — Managment Tools — утилита управления
Остальные настройки при установке по Вашему вкусу. Единственный нюанс — необходимо правильно установить способ сортировки collate. Для автоматической и правильной работы необходимо в «Языке и региональных стандартах» операционной системы выбрать «Русский». В этом случае при установке SQL Server сам предложит правильную сортировку Cyrillic_General_CI_AS.
Выбор режима проверки подлинности пользователей укажите смешанный (mixed). Остальные параметры всегда можно скорректировать после установки — 1С:Предприятие будет работать независимо от них.
Более подробно об установке (ахтунг — English):
Желательно обновить сервер MS SQL до актуального релиза (на текущий момент — SP4 для 2005 SQL). Кроме того, на многопроцессорных системах сервер Microsoft SQL 2005 может отказаться устанавливаться с ошибкой 1053 (The error is (1053) The service did not respond to the start or control request in a timely fashion). Решение этой проблемы описано тут .
Шаг 2. Настройка сервера Microsoft SQL 2005
2.1. Настройка протоколов подключения
Для настройки протоколов взаимодействия сервера и клиента Microsoft SQL необходимо запустить «SQL Server Configuration Manager»:
. и оставить для работы только протоколы TCP/IP и Shared Memory:
Если устанавливается версия MS SQL Express по-умолчанию выключен протокол TCP/IP, нужный для работы с 1С:Предприятие 8 — его необходимо включить. Протокол именнованных каналов (Named Pipe) выключите совсем (и для «клиента» тоже на сервере приложений).
2.2. Перенос tempdb на быстрый независимый массив/диски
Для переноса tempdb необходимо запустить sql-скрипт примерно следующего содержания:
USE master GO ALTER DATABASE tempdb modify file (NAME=tempdev, FILENAME=’E:Temptempdb_data.mdf’) GO ALTER DATABASE tempdb modify file (NAME=templog, FILENAME=’E:Temptempdb_log.ldf’) GO
где, E:Temp — каталог, в котором будут лежать tempdb, а tempdb_data.mdf и tempdb_log.ldf имя файла базы данных и лога соответственно.
2.3. Настройка параметров сервера SQL
Для настройки сервера запускаем «SQL Server Management Studio», подключаемся к установленному серверу Database Engine’ом и открываем свойства (Server Properties). Тут нам нужно настроить 3 пункта:
Память (Memory)
Параметр «Maximum server memory (in MB)» задает максимально отведенное серверу количество памяти из расчета: [Общее количество оперативной памяти сервера] – [3ГБ под систему(1,5ГБ если Win2k3)] – [сколько_нужно ГБ * количество процессов работающих на данном сервере (если SQL еще какой-то важный сервис крутится на этом же сервере)]. Например, если у нас на сервере всего 24 ГБ оперативной памяти, стоит Windows 2003 и запущен сервер 1С Предприятия с 2мя процессами rphost (которым нужна память хотябы по 1,5Гб) то рассчет будет следующим: 24 — 1,5 — 1,5*2 = 19,5 ГБ ставит параметр «Maximum server memory (in MB)». Это необходимо для того, чтобы sql-сервер рассчитывал на заданный объем и освобождал память заблаговременно, т.к. если поставить неограниченный объем, и сервер попробует получить память, которой нет, он начинает лезть в файл подкачки, что сильно замедлит работу.
Процессоры (Processors)
Максимальное количество потоков (Maximum worker threads) стОит регулировать только при большом количестве клиентов (более 255) и для 1С это не актуально, поэтому оставим по-умолчанию. (хотя некоторые утверждают обратное ). Также выставляем галку повышенного приоритета сервера (Boost SQL Server priority).
Database Settings
В данном пункте можно настроить каталоги для файлов Данных и логов, чтобы новые базы данных создавались именно там.
2.4. Дополнительные «приседания»
Желательно просканировать СКЛ утилитой SQL Server 2005 Best Practices Analyzer и избавиться от ошибок и сообщений ( как? и еще раз как? ).
Шаг 3. Настройка рабочих баз данных Ms SQL
Если база еще не развернута из .dt файла, и вы знаете примерный ее размер, то первичному файлу размер инициализации лучше сразу указать больший или равный размеру базы, но это дело вкуса, он все равно вырастет при развертке до нужных размеров. А вот Автоувеличение (Autogrowth) размера надо обязательно указать примерно по 200 МБ на базу и по 50 МБ на лог (можно увеличить/уменьшить, в зависимости от размера конечной базы и наличия места на диске), т.к. значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать. В этом же параметре можно ограничить размер файла лога, чтоб сильно не разрастался, хотя это очень спорный параметр.
Остальные параметры можно оставить по умолчанию, за исключением некоторых:
Например, параметр AutoShrink советуют отключить, ибо он приводит к постоянным скачкам размера лога. Лучше его держать в узде с помощью Планов обслуживания (они же Регламентные задания, они же Maintenance Plans).
Шаг 4. Настройка Планов обслуживания (Maintenance Plans, Регламентных заданий)
Для работы регламентных заданий необходимо создать план обслуживания:
Итак, приведу свой пример настроенного Maintenance Plans с комментариями. Мой план состоит из 5 подпланов: