АЙТАТ — ИТ Компания

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

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

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

Файловая база, нужно обратить внимание на следующие моменты:

  • Пропускная способность сети и скорость нахождения общей папки с базой
  • Скорость работы дисков с базой
  • Используемая версия платформы

Клиент-серверное решение:

  • Некорректно настроенный сервер баз данных или кластер 1С: Предприятие
  • Нехватка, или неправильное распределение мощностей серверов баз данных и кластера 1С: Предприятие.
  • Ошибки в коде конфигурации, сделанные при добавлении функционала программистами.

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

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

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

Настройка сервера базы данных (БД) 

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

  • Проверка целостности базы данных
  • Перестроение индекса
  • Реорганизация индекса
  • Сжатие базы данных
  • Очистка после обслуживания

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

Кэширование на дисках должно быть обязательно включено (желательно чтобы кэширование было организовано средствами RAID-контроллера, а не операционной системы. RAID-контроллер обязательно должен иметь BBU. Файлы баз данных и системная база данных tempdb должны располагаться на RAID-массиве из SSD дисков. Лучше всего использовать RAID10, т.к. он даёт максимальную скорость и безопасность при отказе диска.

Индексирование на дисках с базами желательно отключить. Файлы базы и файлы лога должны находиться на разных дисках.

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

Если возможности выделить отдельный сервер под 1С и БД нет – нужно очень тщательно планировать используемые ресурсы каждой ролью. Ставить ограничения в использовании оперативной памяти в панели администрирования кластера 1С: Предприятие и в СУБД.

Нужно использовать последние версии ПО и ОС и СУБД должны иметь 64-разрядную архитектуру. Также на серверах должны быть обновлены BIOS, драйверы и прошивки RAID-контроллеров.

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

Рекомендуется использовать предпоследнюю платформу сервера 1С: Предприятие. Перед установкой будет полезно прочитать на сайте 1С какие ошибки имеются в данным релизе платформы и являются ли они критичными для данной ситуации.

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

Другая важная настройка – журнал 1С. В конфигураторе можно настроить использование журнала 1С, по возможности вообще отключить его. Если всё же есть серьёзные основания его использовать, то нужно убедиться, что файл журнала находится на «быстрых» дисках и организовано его урезание.

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

  • Оперативная память. В случае, если у нас совмещённый сервер, то необходимо вручную задавать максимальное использование оперативной памяти для серверов. Серверу базы данных, как правило, требуется больший объём памяти. Особенно это заметно после выполнения регламентных заданий. В идеале объём оперативной памяти должен быть равен или превышать суммарный объём всех баз. Серверу 1С: Предприятие требуется гораздо меньшее количество оперативной памяти. В большинстве случаев при объёме баз до 30Гб и количестве пользователей до 30 человек – объём потребляемой оперативной памяти не будет превышать 3Гб. Если же сервер потребляет больше, то стоит смотреть в сторону обновления платформы и\или оптимизации кода.
  •  Дисковая подсистема. Файлы базы данных и лога должны размещаться на «быстрых» дисках (SSD, 15K, или RAID10). Также нужно не забывать про системную базу tempdb, которая постоянно используется.
  •  Процессор. Для сервера БД лучше использовать многоядерный процессор, т.к. 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С!

Пролистать наверх