Цель нашей компании - предоставление качественных услуг и долгосрочное сотрудничество по комплексному сопровождению ИТ-инфраструктуры..

Быстродействие 1С

Быстродействие 1С
На что следует обратить внимание в первую очередь
Общие настройки и рекомендации
Настройки сервера БД
Настройки кластера 1С: Предприятие
Распределение мощностей между 1С и сервером баз данных
Типичные ошибки при написании кода программистами

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

На что следует обратить внимание в первую очередь

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

Общие настройки и рекомендации.

При количестве пользователей базы 1С менее 100 – рекомендуется совмещать сервер 1С и сервер баз данных (БД) на одном физическом, или виртуальном сервере. В этом случае можно использовать технологию SharedMemory, что само по себе даёт очень большую прибавку к быстродействию, т.к. сервер 1С и сервер БД используют общую оперативную память, а не какой-либо сетевой протокол, каждый из которых имеет свои ограничения. Лучше сервера 1С и БД изначально делать виртуальными, чтобы можно было быстро добавлять ресурсы при необходимости. Если используется несколько серверов 1С и БД – нужно организовать чёткое соответствие между серверами, т.е. все базы конкретного сервера 1С размещены на одном сервере БД. Если же соответствие не организовано, то при возникновении проблем быстродействия – сильно усложняется диагностика.

Настройка сервера БД

Настройка сервера БД Сервер БД наиболее требователен к скорости дисков, ядерности процессоров, оперативной памяти. Скорость дисков для быстрой записи базы, многоядерность – для быстрой обработки данных, оперативная память для кеширования данных. Сервер баз данных может использовать практически неограниченное количество оперативной памяти, поэтому при совмещении серверов – необходимо вручную задавать максимальное количество памяти, которое может потребить сервер БД. При этом в идеале оперативной памяти должно быть столько, сколько занимают все базы данных. На сервере БД должно быть настроено обслуживание баз. Обслуживание должно содержать следующие задания:
  • Проверка целостности базы данных
  • Перестроение индекса
  • Реорганизация индекса
  • Обновление статистики
  • Сжатие базы данных
  • Очистка после обслуживания
Для баз с небольшим количеством изменений обслуживание можно делать 1 раз в неделю. О всех регламентных заданиях (будь то обслуживание баз, или резервное копирование) должны быть настроены оповещения, которые должен просматривать администратор сервера и принимать меры в случае неверного выполнения задания. При настройке расписания необходимо следить, чтобы планы обслуживания, резервное копирование и другие регламентные задания не пересекались во времени. Также все регламентные задания нужно планировать на время минимальной загрузки сервера, т.к. при пересечении регламентного задания и какой-либо обработки, вносящей серьёзные изменения в базу, могут возникнуть проблемы с их выполнением (и то и другое будет выполняться в разы дольше, чем по отдельности). Кэширование на дисках должно быть обязательно включено (желательно чтобы кэширование было организовано средствами RAID-контроллера, а не операционной системы. RAID-контроллер обязательно должен иметь BBU. Файлы баз данных и системная база данных tempdb должны располагаться на RAID-массиве из SSD дисков. Лучше всего использовать RAID10, т.к. он даёт максимальную скорость и безопасность при отказе диска. Индексирование на дисках с базами желательно отключить. Файлы базы и файлы лога должны находиться на разных дисках, так как если они находятся на одном логическом диске – могут возникнуть серьёзные инциденты если закончится место на диске (вплоть до потери базы). Рекомендуется не совмещать сервера 1С и БД с другими серверными ролями за исключением Web-сервера, который настраивается для публикации 1С. Если возможности выделить отдельный сервер под 1С и БД нет – нужно очень тщательно планировать используемые ресурсы каждой ролью. Ставить ограничения в использовании оперативной памяти в панели администрирования кластера 1С: Предприятие и в СУБД. Если нет критичности в сохранении последних данных, т.е. допускается потеря изменений в базе за последние несколько часов, то рекомендуется использовать модель восстановления базы данных «Простая».Если такие данные критичны, то можно использовать модель данных «Полная», но в таком случае необходимо иметь настроенное резервное копирование средствами SQL-сервера, чтобы происходило урезание лог-файла БД. Дополнительно хотим хотелось бы обратить внимание, что использовать нужно последние версии ПО и ОС и СУБД должны иметь 64-разрядную архитектуру. Также на серверах должны быть обновлены BIOS, драйверы и прошивки RAID-контроллеров.

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

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

Распределение мощностей между сервером 1С и сервером баз данных

  • Оперативная память. В случае, если у нас совмещённый сервер, то необходимо вручную задавать максимальное использование оперативной памяти для серверов. Серверу СУБД, как правило, требуется больший объём памяти. Особенно это заметно после выполнения регламентных заданий. В идеале объём оперативной памяти должен быть равен или превышать суммарный объём всех баз. При этом нужно иметь ввиду, что сервер SQL может использовать практически всю доступную ему оперативную память, поэтому не ограничивать его по оперативной памяти можно только если это единственная роль на сервере и не используется динамическое распределение памяти для виртуального сервера. Серверу 1С: Предприятие требуется гораздо меньшее количество оперативной памяти. В большинстве случаев при объёме баз до 30Гб и количестве пользователей до 30 человек – объём потребляемой оперативной памяти не будет превышать 3Гб. Если же сервер потребляет больше, то стоит смотреть в сторону обновления платформы и\или оптимизации кода.
  • Дисковая подсистема. Файлы базы данных и лога должны размещаться на «быстрых» дисках (SSD, 15K, или RAID10). Также нужно не забывать про системную базу tempdb, которая постоянно используется. Сервер 1С: Предприятие можно разместить на обычных дисках при условии правильной настройки журнала для всех баз.
  • Процессор. Для сервера БД лучше использовать многоядерный процессор, т.к. MS SQL хорошо работает с многоядерностью. Для сервера 1С, наоборот, лучше использовать более высокочастотный процессор. Если мы используем совмещенный сервер – нужны выбрать «золотую середину» между многоядерностью и частотой, например Intel Core i7-4960X Extreme Edition Ivy Bridge-E (3600MHz, LGA2011, L3 15360Kb) для использования мощной рабочей станции в качестве совмещённого сервера, или Intel Xeon E5-1660V3 Haswell-EP (3000MHz, LGA2011-3, L3 20480Kb) для использования в полноценном сервере.

Типичные ошибки при написании кода программистами

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

Обращайтесь к профессионалам администрирования 1С

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