Объем памяти sql сервера для 1с 8.3. Перенос базы tempdb

Тему установки MS SQL Server обычно обходят стороной. Действительно, трудно не установить эту СУБД, даже делая это в первый раз, столь же трудно не запустить в связке с ней Сервер 1С:Предприятия. Однако есть ряд неочевидных тонкостей, которые способны существенно отравить жизнь администратору, о чем мы сегодня и расскажем.

MS SQL Server занимает первое место по количеству внедрений в связке с 1С:Предприятием, во многом это объясняется низким порогом вхождения, осилить данную связку вполне способен человек без опыта, сугубо по методу Next - Next - Finish. И, что самое интересное, все это будет работать. Скажем больше, в подавляющем большинстве случаев настройки SQL-сервера по умолчанию более чем достаточно для обеспечения производительной работы сервера 1С:Предприятия и трогать их не только не нужно, но даже вредно.

Прежде всего следует вспомнить про системную базу tempdb , которая активно используется 1С для хранения временных таблиц и промежуточных результатов. Причем она используется сразу всеми базами 1С, работающими на сервере. А так как по умолчанию она располагается в папке установки SQL-сервера, т.е. на системном диске, то при увеличении нагрузки именно tempdb становится бутылочным горлышком для всего сервера. Очень часто это приводит к ситуациям: купили быстрые HDD / SSD, дисковых ресурсов хватает, а 1С тормозит, что способно вызвать у начинающих администраторов серьезные затруднения.

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

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

Установка MS SQL Server для работы с 1С:Предприятие

Как мы уже говорили, установка SQL-сервера предельно проста, и мы не будем описывать этот процесс подробно, обратив внимание лишь на необходимые настройки. Начнем с выбора компонентов, так как 1С не использует большинство механизмов SQL-сервера и если вы не собираетесь их использовать для иных целей, то оставляем только Database Engine , Средства связи клиентских средств и Средства управления (опционально).

Средства управления можно не устанавливать на сервер, а установить отдельно на рабочее место администратора и управлять оттуда всеми доступными серверами MS SQL.

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

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

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

Остальные настройки можно оставить по умолчанию и завершить установку.

Настройка MS SQL Server для работы с 1С:Предприятие

Если вы имеете дело с уже установленным экземпляром SQL-сервера, убедитесь, что кодировка сравнения Cyrillic_General_CI_AS , в противном случае данные следует выгрузить средствами 1С, а сервер переустановить (или установить еще один экземпляр, если данный используется другими службами).

Для этого откройте Managment Studio , выберите необходимый экземпляр SQL-сервера и щелкнув на нем правой кнопкой мыши перейдите к Свойствам .

Затем перейдите к закладке Память и укажите доступный SQL-серверу объем ОЗУ, в противном случае SQL-сервер будет стремиться утилизировать всю доступную память . В ситуации совмещения ролей SQL-сервера с другими ролями, а в небольших и средних внедрениях он, как правило, расположен на одной машине с сервером 1С, следует из общего количества памяти вычесть необходимое системе и серверу 1С, отдав SQL то, что останется.

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

Следующая настройка будет связана с безопасностью. Для подключения 1С к серверу чаще всего используется учетная запись sa , что, мягко говоря, небезопасно, так как дает вошедшему под ней полный доступ к SQL-серверу. Учитывая, что администрированием баз 1С часто занимаются сторониие специалисты, то имеет смысл создать для них отдельную учетную запись.

Для этого раскройте Безопасность - Имена входа и создайте новое имя (учетную запись), укажите проверку подлинности SQL-сервер и задайте пароль.

Затем перейдите на закладку Роли сервера и разрешите dbcreator , processadmin и public .

После чего используйте для подключения к SQL-серверу из 1С именно эту учетную запись.

Еще одна настройка относится к уже созданным базам данных, откройте свойства нужной БД и прейдите на закладку Файлы . Найдите опцию Автоувеличение/максимальный размер для файла данных. По умолчанию там стоит 1 Мб, что весьма неоптимально, при активной работе с базой СУБД только и будет заниматься тем, что увеличивать размер файла, кроме того при активной работе нескольких баз это будет приводить к значительной фрагментации файла данных. Поэтому исходя из размера базы и активности работы задайте более высокое значение, которое не будет приводить к постоянному увеличению файла БД.

Перенос базы tempdb

В заключение нашей статьи снова обратимся к базе tempdb , часто встречаются ситуации, когда файл этой БД требуется перенести в другое место. Например сервер был установлен с параметрами по умолчанию и tempdb находится на системном разделе, или вы приобрели SSD и хотите пренести туда не только базы, но и tempdb (что является правильным решением). Также при большой нагрузке на tempdb его рекомендуется выносить на отдельный диск.

Для того, чтобы изменить место расположения файла tempdb откройте Managment Studio , выберите Создать запрос и в открывшемся окне введите следующий текст, где E:\NEW_FOLDER - новое расположение для базы:

Use master
alter database tempdb
modify file(
name = tempdev,
filename = N"E:\NEW_FOLDER\tempdb.mdf")
go

alter database tempdb
modify file(
name = templog,
filename = N"E:\NEW_FOLDER\templog.ldf")
go

Затем нажмите Выполнить , после выполнения запроса перезапустите SQL-сервер, файлы базы и лога tempdb будут создан в новом месте, файлы по старому расположению следует удалить вручную.

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

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

Интервал перезапуска – отвечает за частоту перезапуска рабочих процессов кластера. Этот параметр необходимо выставлять при круглосуточной работы сервера. Рекомендуется частоту перезапуска связывать с технологическим циклом информационных баз кластера. Обычно это каждые 24 часа (86400 сек). Как известно, рабочие процессы серверов 1С обрабатывают и хранят рабочие данные.

Автоматический перезапуск был разработан в платформе «для минимизации отрицательных последствий фрагментации и утечки памяти в рабочих процессах». На ИТС есть даже информация о том, как организовать перезапуск рабочих процессов по другим параметрам (объем памяти, занимаемые ресурсы и т.п.).

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

Допустимое отклонение количества ошибок сервера . Платформа рассчитывает среднее количество ошибок сервера по отношению к числу обращений к серверу в течение 5 минут. Если это отношение превысит допустимое, то рабочий процесс считается «проблемным», и может быть завершен системой, если установлен флаг «Принудительно завершать проблемные процессы».

Выключенные процессы останавливать через. При превышении допустимого объема памяти, рабочий процесс не завершается сразу, а становится «выключенным», чтобы было время «перенести» рабочие данные без потери на новый запущенный рабочий процесс. Если указан этот параметр, то «выключенный» процесс в любом случае завершится по истечении этого времени. Если наблюдаются «зависшие» рабочие процессы в работе сервера 1С, то можно стоит этот параметр на 2-5 минут.
Эти настройки устанавливаются для каждого сервера 1С индивидуально.

Максимальный объем памяти рабочих процессов – это объем совокупной памяти, которую могут занимать рабочие процессы (rphost) на текущем кластере. Если параметр установлен в «0», то занимает 80% оперативной памяти сервера. «-1» - без ограничений. Когда на одном сервере работают СУБД и сервер 1С, им нужно делить между собой оперативную память. Если в процессе эксплуатации обнаружится, что серверу СУБД не хватает памяти, то можно ограничить память, выделяемую серверу 1С с помощью этого параметра. Если СУБД и 1С разделены по серверам, то имеет смысл рассчитать этого параметр по формуле:

«Max объем» = «Общая оперативная память» – «Оперативная память ОС»;

«Оперативная память ОС» рассчитывается по принципу 1 Гб на каждые 16 Гб оперативной памяти сервера

Безопасный расход памяти за один вызов . В общем случае, отдельные вызовы не должны занимать всю оперативную память, выделенную рабочему процессу. Если параметр установлен в «0», то объем безопасного расхода будет равен 5 % от «Максимального объема памяти рабочих процессов» . «-1» - без ограничения, что крайне не рекомендуется. В большинстве случаев этот параметр лучше оставлять «0».

С помощью параметров «Количество ИБ на процесс» и «Количество соединений на процесс» можно управлять распределением работы сервера 1С по рабочим процессам. Например, запускать под каждую информационную базу отдельный «rphost», чтобы в случае «падений» процесса, отключались только пользователи одной базы. Эти параметры стоит подбирать индивидуально под каждую конфигурацию сервера.

Ограничение на использование оперативной памяти сервером СУБД – У сервера СУБД MS SQL есть одна замечательная особенность – он любит загружать базы, с которыми ведется активная работа в оперативную память полностью. Если его не ограничивать, то он заберет себе всю оперативную память, какую только сможет.

  • Если сервер 1С:Предприятия установлен вместе с Microsoft SQL Server, то верхний порог памяти необходимо уменьшить на величину, достаточную для работы сервера 1С.
  • Если на сервере работает только СУБД, то для СУБД по формуле:

«Память СУБД» = «Общая оперативная память» – «Оперативная память ОС»;

Shared memory – об этом параметре известно много, но до сих пор встречается, что про него забывают. Выставляем в «1», если сервер 1С и СУБД работают на одном физическом или виртуальном сервере. Кстати, работает, начиная с платформы 8.2.17.

Max degree of parallelism – определяет, сколько процессоров используется при выполнении одного запроса. СУБД распараллеливается получение данных при выполнении сложных запросов на несколько потоков. Для 1С рекомендуется устанавливать в «1», то есть одним потоком.

Авторасширение файлов БД - определяем шаг в МБ, с которым «расширяется» файл базы данных. Если шаг будет маленький, то при активном росте БД, частые расширения приведут к дополнительной нагрузке на дисковую систему. Лучше установить в 500 – 1000 МБ.

Реиндексация и дефрагментация индексов – рекомендуется делать дефрагментацию/реиндексацию хотя бы раз в неделю. Реиндексация блокирует таблицы, поэтому лучше запускать в нерабочее время или периоды минимальной нагрузки. Нет смысла делать дефрагментацию после перестроения индекса (реиндексации). По рекомендации Microsoft дефрагментацию делают в том случае, если фрагментация индекса не превышает 30 %. Если выше, рекомендуется сделать реиндексацию.

План электропитания – в настройках электропитания операционной системы установить на высокую производительность.

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

Мы собрали рекомендации ведущих производителей оборудования (HP, Dell, IBM) и разработчиков программного продукта «1С» 8.3, чтобы наши клиенты могли выгодно приобрести нужный сервер. Оптимальная инфраструктура сети может быть получена на базе любой операционной системы, но возможности оборудования играют в этом более важную роль.

Критерии выбора серверов

Платформа «1С» может потребовать значительных аппаратных ресурсов от сервера. Если бюджет компании неограничен, что бывает нечасто, можно не задумываясь брать платформы последних поколений, заполнять все дисковые корзины, слоты для ОЗУ и требовать от IT-специалиста бесперебойной работы системы. Выбор оборудования с ограниченными средствами требует более взвешенного подхода. Чтобы понять какому серверу для «1С» будет под силу справиться с этим, необходимо тщательно проанализировать структуру вычислительных нагрузок. Если они известны заранее, спроектировать готовое решение будет значительно проще.

При выборе сервера для «1С» (8.2; 8.3) ориентируются на следующие моменты:

  • количество операторов, одновременно выполняющих ввод данных и формирование отчетов;
  • возможность выделения отдельных физических серверов для SQL и приложения «1С»;
  • планируемые объемы обработки данных;
  • структуру распределения нагрузки в архитектуре клиент-сервер

Выбор процессора и оперативной памяти

Расчет частоты, нужного количества ядер процессора, а также объема оперативной памяти является первым и самым важным шагом. Чтобы рассмотреть несколько вариантов, выбирать сервер для «1С» будем с учетом штата компании.

Малая организация (до 15 сотрудников). При небольшом количестве пользователей объем базы данных, как правило, не превышает 2 Гб, а программа «1С» в виде файловой версии устанавливается на клиентские машины. Нужды ОС при этом составляют 4–6 Гб и еще 4 Гб выделяют на системный файловый кэш. Распределение нагрузки процессора выглядит следующим образом:

  • 2 ядра – для ОС и терминальных пользователей;
  • 1 ядро – для сервера приложений «1С»;
  • 1 ядро – для БД SQL.

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

Средняя организация (до 40 сотрудников). При таком количестве пользователей разработчики «1С» рекомендуют использовать терминальный режим доступа к приложению. Размер баз данных может составлять до 4 Гб. Для такой нагрузки нужно уже как минимум два процессора на 4–6 ядер. Оптимальный объем оперативной памяти составит 16–64 Гб, поскольку для каждого пользователя необходимо выделить минимум 700 Мб. Считается, что прикладное решение «1С», в котором работает клиентская машина, требует от 240 до 480 МБ, а еще 200–220 МБ выделяется под офисные приложения.

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

Большая организация (более 40 сотрудников). Базовая конфигурация оборудования в этом случае будет состоять из трех физических серверов:

  • терминального,
  • СУБД,
  • «1С».

Объемы БД при таком количестве сотрудников часто превышают 4 Гб, и под системный кэш рекомендуется выделять не меньший объем оперативной памяти. Еще 4 Гб будет использоваться операционной системой, а для приложений «1С» потребуется около 8 Гб. Таким образом, нужно не менее 16 Гб ОЗУ.

Под такие задачи подбираются двухпроцессорные серверы с поддержкой Intel Xeon E5-2600 или выше. Если количество сотрудников не превышает 50 человек, для терминального доступа и приложений «1С» можно оставить только одну машину. Однако с учетом перспективы роста компании лучше предусмотреть отдельный сервер для каждой задачи. Если количество задействованного персонала приближается в 100 сотрудникам, нужно развернуть кластер из двух машин для «1С», а для остальных задач оставить по одной.

Выбор дисковой подсистемы

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

В задачу выбора сервера для 1С входит мониторинг дисковой подсистемы, позволяющий найти оптимальное соотношение производительности и надежности. Чрезвычайно важным фактором, влияющим на быстродействие, оказывается ее способность выполнять определенное количество операций чтения/записи в секунду (IOPS). Если база данных составляет до 300 Мб, а количество пользователей «1С» – до 6 человек, этот параметр составляет 400–600. Если количество пользователей сервера доходит до 100 человек, то IOPS будет равняться 18 000. Потоковая скорость передачи играет второстепенную роль.

Для каждого типа жестких дисков установлены значения скорости чтения/записи:

  • SATA – 100/80;
  • SAS – 240/220;
  • SSD – 35 000/8 600.

Отсюда видно, что для серверов баз данных «1С» лучше всего подходят твердотельные накопители. Главным фактором, ограничивающим их использование, является высокая стоимость. Поэтому для снижения бюджета используются и SAS-накопители. Для хранения критичных данных, в том числе «1С», жесткие диски объединяются в RAID-массивы разных уровней, и в расчет производительности сервера следует включать заложенную в них избыточность.

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

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

Зачастую на машине вместе с сервером 1С:Предприятие работают другие службы — терминальный сервер, SQL-сервер и т.д. И в какой-то момент сервер 1С:Предприятие, а точнее рабочий процесс rphost отъедает памяти больше чем планировалось или же всю память. Что приводит к замедлению работы других служб и зомбированию сервера. Для избежания таких ситуаций необходимо настроить автоматический перезапуск рабочих процессов сервера 1С:Предприятия

Решение

1. Откроем консоль администрирования серверов 1С Предприятия;
2. Развернем дерево центрального сервера до кластеров и выделим интересующий наc кластер. В примере кластер всего один;
3. Откроем свойства выделенного кластера и увидим следующую форму

Свойства кластера сервера 1С:Предприятие 8.3

Разберем пример указанный на изображении:

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

Допустимый объем памяти — объем памяти, в пределах которого рабочий процесс может без проблемно работать. Объем указывается в килобайтах, в примере указана величина в 20 гигабайт(на самом деле цифра слишком большая и отталкиваться необходимо от конкретной системы, но средняя цифра 4 Гб). Как только память занятая рабочим процессом превысит указанную величину, так начинается отсчет времени.

Интервал превышения допустимого объема памяти — после того как таймер запущенный после превышения допустимого объема памяти отсчитает указанное время, будет запущен новый рабочий процесс, на который передаются все соединения, старый процесс помечается как выключенный. Интервал указывается в секундах, в примере указаны 30 секунд.

Выключенные процессы останавливать через — время, через которое будет остановлен рабочий процесс, помеченный как выключенный, если указано значение 0, то процесс не будет завершен. Интервал указывается в секундах, в примере указаны 60 секунд.

После применения настроек можно не перезапускать службу сервера, они применяться динамически.

Итого

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

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

После разнесение сервера 1С:Предприятия и SQL-сервера на разные машины при загрузке dt-файла в базу расположенную на SQL-сервере стали получать ошибку "Недостаточно свободной памяти на сервере 1С:Предприятия".
или (Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: there is insufficient memory in resource pool ‘default’ to run this query. HRESULT=80040E14)

Решение проблемы:
1. При возникновении ошибки перезапустить службу сервера 1С.
2. Использовать много процессов(В свойствах кластера поставить галочку "Много процессов"). Добавить рабочие процессы, оптимальное значение 4-5 процессов.
3. Использовать регламентный перезапуск рабочих процессов. Но это не снимет проблему. Просто сократит "утечку" памяти.
4. Для операций с базой данных, например копирование базы данных использовать средства ms sql, а не работу с файлами dt.
5. Включите запись событий DBMSSQL в
(Смотрите текст файла "logcfg.xml" ниже или воспользуйтесь обработкой с ИТС НастройкаТехнологическогоЖурнала.epf) и определите, на загрузке какой таблицы происходит ошибка. Если config, то выполните загрузку в файловый вариант и очистку конфигурации поставщика:
5.1 Для этого надо проверить конфигурацию на наличие некорректной информации. Для этого следует выполнить команду меню Конфигурация - "Проверка конфигурации" (НЕ ТЕСТИРОВАНИЕ!) с ОДНИМ установленным флажком "Проверка логической целостности конфигурации". При выявлении проблем будет выдано сообщение. Некорректная информация при этом будет удалена автоматически
5.2 Если Ваша конфигурация находится на поддержке, следует подобным образом проверить конфигурацию поставщика. Для этого в настройке поддержки следует сохранить конфигурацию поставщика в cf файл, загрузить его в новую базу и выполнить описанную в пункте 1 процедуру. В случае, если было получено сообщение об исправлении ("Удалена некорректная информация о метаданных"), значит конфигурация поставщика содержит некорректную информацию. В этом случае следует снять Вашу конфигурацию с поддержки и заново поставить путем объединения со свежим релизом конфигурации поставщика.

Добавление рабочего процесса
Добавление рабочего процесса, в отличие от просмотра, возможно, только для конкретного сервера кластера.
Для добавления нового рабочего процесса сервера кластера следует выбрать в дереве центральных серверов требуемый сервер, выбрать требуемый кластер, выбрать требуемый сервер кластеров выбрать ветку «Процессы» и выполнить команду контекстного меню "Создать - Процесс", галочкой Включить процесс.

Если процесс НЕ добавляется, то проверьте и сделайте следующее:
1. В свойствах Кластера должна стоять галочка "Много процессов"
2. В свойствах Рабочего сервера Увеличьте Диапозон IP адресов

По поводу перезапуска рабочих процессов - с какого момента начинается отсчет указанный в настройке кластера?
С момента старта процесса. Например стартовал в 18:00:00. Период перезапуска 86400 секунд, т.е. 24 часа. Соответственно через сутки в 18:00:00 процесс остановится и будет создан новый процесс.

Оптимизация перезапуска рабочих процессов:
1. Интервал перезапуска: 86400 сек (24 часа). Момент перезапуска не регламентируется, видимо с момента установки параметров, либо запуска сервера приложений.
2. Также можно указать допустимый объем памяти: 3000000 Кб (3 Гб).
3. Интервал превышения допустимого объема памяти - это непрерывный интервал времени превышения допустимого объема памяти, после которого сервер перезапустит процесс. Если указано 0 сек - будет ждать вечно.