Режим серверный сжатие усиленное 1с отключить
Позвонила бушка, говорит база бухии, недавно переведенная на 1с82, сильно тормозит.
Нужна помощь консультанта?
Продолжая серию статей о тестах быстродействия 1С, мы решили коснуться фактора влияния SAN-сети на производительность 1С.
Тестовый стенд и схема структуры
Методика тестирования и измерения
Тест Гилева (TPC-1C)
Тест принадлежит к разделу универсальных кроссплатформенных нагрузочных тестов. Он может использоваться как для файлового, так и для клиент-серверного архитектур 1С:Предприятие. Тест измеряет количество работы в единицу времени в одном потоке и подходит для оценки скорости работы однопоточных нагрузок, включая скорость прорисовки интерфейса, влияния ресурсных затрат, перепроведения документов, процедур закрытия месяца, расчета зарплаты и т.п. Универсальность позволяет делать суммарную оценку производительности, не привязываясь к одной конфигурации платформы. Результатом теста является тотальная оценка измеряемой системы 1С, выраженная в условных единицах.
Специализированный тест из инструментария «Тест центр» 1С: КИП
Монитор производительности Битрикс24
Тест с использованием программы CrystalMark
Данная программа предназначена для сравнительного анализа (тестирования) быстродействия жестких дисков компьютера. Позволяет измерить скорость чтения и записи данных. Основные параметры таковы:
Результаты тестирования
Очень часто ко мне обращаются с вопросами вида:
- из-за чего тормозит сервер 1С?
- компьютер с 1С работает очень медленно
- жутко тормозит клиент 1С
Что же делать и как это победить, и так по порядку:
Клиенты очень медленно работают с серверной версией 1С
Кроме медленной работы 1С, так же наблюдается медленная работа с сетевыми файлами. Проблема встречается при обычной работе и при RDP
netsh int tcp set global autotuning=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled chimney=disabled
и сеть работает без проблем
netsh interface tcp set global autotuning= HighlyRestricted
вот как выглядит установка
Далее посмотрите настройки брандмауэра Windows
Настроить брандмауэр Антивируса или Windows
Как настроить брандмауэр Антивируса или Windows для работы сервера 1С (связка из Сервера 1С: Предприятие и MS SQL 2008, например).
- Если сервер SQL принимает подключения на стандартный порт TCP 1433, то разрешаем его.
- Если порт SQL динамический, то необходимо разрешить подключения к приложению %ProgramFiles%Microsoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBinnsqlservr.exe.
- Сервер 1С работает на портах 1541, кластер 1540 и диапазоне 1560-1591. По совершенно мистическим причинам иногда такой список открытых портов все равно не позволяет выполнять подключения к серверу. Чтобы заработало наверняка, разрешите диапазон 1540-1591.
Настройка производительности Сервера / Компьютера
1. Настройки BIOS
- В BIOS сервера отключаем все настройки по экономии электропитания процессора.
- Если есть «C1E» & обязательно ОТКЛЮЧАЕМ!!
- Для некоторых не очень параллельных задач также рекомендуется выключить гипертрейдинг в биосе
- В некоторых случаях (особенно для HP!) надо зайти в BIOS сервера, и ВЫКЛЮЧИТЬ там пункты, в названии которых есть EIST, Intel SpeedStep и C1E.
- Взамен надо там же найти пункты, связанные с процессором, в названии которых есть Turbo Boost, и ВКЛЮЧИТЬ их.
- Если в биосе есть общее указание режима энергосбережения & включить его в режим максимальной производительности (он ещё может называться «агрессивный»)
Сервера с архитектурой Intel Sandy Bridge умеют динамически менять частоты процессора.
Скачайте утилиту PowerSchemeEd.7z , распакуйте с помощь 7zip и запустите PowerSchemeEd.exe
Выберите раздел Управление питанием процессора и выставите параметры 01. Порог при питании от сети 30% и отключите 27. Переопределение ядра. как на картинке.
3. На серверах 1С и MS SQL Server использование антивирусов (даже сам факт инсталяции без включения) будет приводить к снижению производительности в виде периодических массовых замедлений и подвисаний интерфейса.
4. Совмещение ролей сервера 1С и сервера MS SQL Server дает большую производительность, особенно если использовать протокол обмена данных напрямую через память «Shared Memory».
Очень многие не недооценивают важность настройки сервера, когда роли сервера 1С и сервера СУБД совмещены на одном физическом компьютере.
Убедиться, что к примеру используется протокол Shared Memory можно следующим образом:
Обратите внимание, что в версиях платформы некоторые релизы «переключались» на протокол «именнованых каналов».
Для работы 1С Предприятие в режиме Shared Memory с SQL Server 2012 должен быть установлен NativeClient от SQL Server 2008 (backward compatibility connectivity components из дистрибутива SQL Server 2012 или отдельный пакет)
5. Отключение ненужных служб Виндовс
Одним из самых действенных способов ускорения компьютера является отключение неиспользуемых (ненужных) служб операционной системы. У ОС Windows по умолчанию включено огромное количество служб, на работу которых требуется большое количество ресурсов системы. Многие из них можно отключить без потери функциональности и снижения безопасности системы.
Какие службы можно отключить для оптимизации Windows:
Список, конечно, получился не особо емким, на самом деле служб, которые можно отключить, намного больше. Кроме того, среди стандартных служб появятся дополнительные службы сторонних программ, которые установлены на Вашем ПК, их также можно отключить.
Кэширование записей на дисках в Windows
Кэшированием записей на устройстве хранения называется использование высокоскоростной энергозависимой памяти для накопления команд записи, отправляемых на устройства хранения данных, и их кэширования до тех пор, пока их не обработает более медленный носитель (либо физические диски, либо недорогая флэш-память). Для большинства устройств, использующих кэширование записей, требуется непрерывная подача электропитания.
В разделе Дисковые устройства дважды щелкните нужный диск.
В финансовых решениях консолидационного класса или класса ERP предлагается функциональность, связанная с составлением оперативных или мастер-бюджетов, например, работа с бюджетом доходов и расходов.
Экземпляр бюджета — это хрестоматийный пример сложной формы, где есть:
- данные в разрезе каждого месяца года (в колонках);
- группировка по настраиваемой структуре разделов и статей (в строках);
- возможность внесения изменений онлайн;
- автоматический пересчет сумм зависимых формул;
- отрисовка плана и факта рядом на пересечении месяца и статьи;
- вывод в будущих месяцах плановых значений в ячейках факта.
Как видно, логика работы достаточно нагруженная и, как следствие, данных на форме много.
Руководитель подразделения открывает форму экземпляра бюджета и долго ждет ее открытия. Если время ожидания слишком велико, то в конечном итоге менеджер переходит для осуществления процесса бюджетирования в табличный инструмент класса Excel.
После разработки и включения в рабочую базу оказалось, что открытие формы бюджета в терминах структур разделов и статей компании занимает 1,5 минуты и более. Это неприемлемо, тем более что основные пользователи системы — руководители подразделений, и без того сталкивающиеся с нехваткой времени.
Мы поставили перед собой задачу сократить открытие такой формы до времени <= 30 секунд.
Программная и аппаратная инфраструктура
- Нетиповая конфигурация собственной разработки.
Замечание: подобные проблемы могут также быть актуальны для иных систем класса ERP, например:
Используется трехзвенная клиент-серверная архитектура с доступом тонкого клиента через веб-сервер. Сервер СУБД и Сервер 1С:Предприятия совмещены на одной машине.
Сервер СУБД
- Процессор: Intel Xeon CPU E5-2637 v2, 2 процессора 3,5 Ghz.
- Память: 96 GB (разрешено потреблять СУБД не более 73728 MB).
- Жесткий диск SSD.
- MSSQLServer 2014 (12.0.4237.0).
- MS Windows NT 6.1 (7601).
Сервер «1С:Предприятие»
- Тот же сервер, что и сервер СУБД.
- Память: доступна вся свободная память, то есть, не менее 24576 MB.
Веб-сервер
- Процессор: Intel core 2 DUO E7500 2,93 GHz.
- Память: 4 GB.
- MS Internet Information Services 8.5.96.
- MS Windows Server 2012 R2.
Тонкий клиент
- Процессор: Intel Core i5.
- Память: 16 GB.
- Диск SSD.
- 1С 8.3.14.1694 — тонкий клиент.
- MS Windows 10.
Ищем причину медленного открытия формы и устраняем ее в «1С»
1. Для начала расследования снимаем замер производительности в «1С» процесса открытия формы
В замере видно, что лидер по абсолютному времени выполнения — метод «ОткрытьФорму».
Из 104 секунд открытия 64 приходятся на этот метод.
При этом сделать вывод о причинах медленного открытия из этого замера невозможно.
2. Соберем технологический журнал для анализа медленного открытия
Какие события собираем
Собираем события CALL и SCALL.
Выдержка из документации по платформе:
- SCALL — исходящий удаленный вызов (исходящий вызов на стороне источника вызова).
- CALL — входящий удаленный вызов (удаленный вызов на стороне приемника вызова).
Эти события возникают при клиент-серверном взаимодействии.
Бытует мнение, что SCALL всегда возникает при обращении с клиента на сервер, а CALL — при приходе этого обращения на сервер.
Нередко это так и есть, например, когда клиент обращается к серверу.
Однако это не всегда так. Например, могут быть обращения внутри сервера между менеджером кластера и рабочим процессом, между сервером и клиентом и так далее.
Пример иного случая возникновения событий CALL и SCALL.
Цели сбора
Преследуем 2 цели:
- посмотреть длинные по времени вызовы;
- найти «лаги» в технологическом журнале.
С длинными вызовами вопросов не возникает: есть оператор программы, который длится слишком долго, и это можно в явном виде обнаружить в ТЖ. По сути, хотим увидеть то же, что в замере производительности.
Что такое «лаг технологического журнала»? Под ним понимается ситуация, когда в явном виде событий с большим временем исполнения в журнале нет, но косвенно об этом догадываемся за счет присутствия большой паузы между двумя соседними событиями в журнале по одной сессии.
Метод сбора
Метод сбора технологического журнала (далее — ТЖ) — обычный:
- в папке C:\Program Files\1cv8\conf создаем файл logcfg.xml (структура файла ниже);
- ждем, пока в папке с логами, указанной в logcfg, появятся подпапки с именами процессов сервера;
- выполняем открытие формы;
- убираем файл logcfg.xml из папки;
- ждем не более 5 минут, пока система завершит запись файлов журнала;
- забираем файлы технологического журнала из подпапки rphost_<номер процесса>.
В нем настроено:
- папка для сбора логов C:\logs;
- отбор по событиям CALL и SCALL;
- отбор по имени базы rarus_fb.
Анализируем данные собранного лога технологического журнала. Нехитрым скриптом посмотрим наиболее долгие вызовы.
Примечание по скрипту
По сути, скрипт отбирает из ТЖ события, с длительностью от 2 знаков (с 10 секунд и более). Т. к. время в ТЖ 8.3 — в микросекундах, то нам нужен отбор по времени > 8 разрядов; чтобы не писать много букв в регулярном выражении, используем синтаксис расширенных регулярных выражений: , который включается ключом -E.
Видим, что существует долгое событие CALL длительностью 85 секунд, на котором происходит большое потребление памяти 554 Мб, а в пике 701 Мб и оно возникает на методе ПолучитьФорму.
Соберем лаги ТЖ.
Сделаем это более сложным скриптом, суть которого в том, чтобы сравнить по времени 2 соседних события ТЖ и найти среди них наибольшие паузы.
- в скрипте делаем отбор по t:clientID, равному ID нашего клиента, чтобы учесть только события по текущему пользователю.
В результате получаем:
В первой колонке — время лага в микросекундах, далее — время старта двух соседних событий.
Видно, что первым номером идет лаг, сопоставимый по времени с временем открытия формы.
Делаем предположение, о том, что тяжелая форма долго загружается с сервера на клиент.
3. Посмотрим на форму в конфигураторе
Что же такое разработчик заложил на форме? Может быть данные формы перегружены избыточной информацией?
Важный элемент расследования — просто посмотреть на творение рук разработчика глазами в конфигураторе «1С».
Видим несколько таблиц значений на форме. Отладчиком посмотрим для реального бюджета, какое количество строк в них.
А строк совсем немало. И всё это при открытии перегружается с сервера на клиент.
Убедимся в этом тезисе.
4. Используем Fiddler в режиме ReverseProxy
Чтобы окончательно убедиться в том, что медленная работа обусловлена «большими» данными формы и понять, что именно это за данные, перехватим их.
Режим Reverse proxy позволяет «вставить Fiddler в разрыв» между веб-сервером и клиентом и проанализировать пакеты обмена.
Настройка Fiddler в режиме ReverseProxy
Настройку будем производить на копии рабочей базы, которая развернута в той же инфраструктуре.
Настройка режима состоит на верхнем уровне из двух этапов:
- настроить на веб-сервере переадресацию url-rewrite на сервер с Fiddler’ом;
- настроить сам Fiddler.
Для настройки веб-сервера вводим правило url-rewrite на сервер finsrv, порт 8888, на котором будет слушать Fiddler.
Устанавливаем на отдельный сервер наш Fiddler и настраиваем в режиме Reverse proxy, как описано здесь.
-
Проверяем в опциях, что установлен флаг «Allow remote computers to connect».
-
if (oSession.host.toLowerCase() == "webserver:8888") oSession.host = "webserver:80";
Отслеживаем взаимодействие между веб-сервером и клиентом «1С»
Зайдем в копию базы и дойдем до открытия формы экземпляра бюджета, но открывать не будем. Перейдем в Fiddler, посмотрим, пакет с каким номером был получен последним, и запомним его номер. Теперь откроем форму бюджета, дождемся окончания открытия и посмотрим все пакеты от запомненного до самого последнего.
Видим входящий запрос с большим объемом данных.
Предполагаем, что это и есть данные формы. Смотрим подробности данных в правом окне:
Обращаем внимание, что прочитать можно только заголовки, а данные, похоже, сжаты, о чем также свидетельствует надпись 1C‑SDCversion и далее — MZ, что соответствует началу сжатой части.
- По 1C-SDCversion — ищем на партнерском форуме «1С» и встречаем упоминание о том, что это метод сжатия deflate.
Вспоминаем, что по умолчанию клиент «1С» запрашивает работу со сжатием данных между клиентом и сервером.
С помощью запуска тонкого клиента со специальным параметром отключаем этот режим.
Делаем повторное открытие формы и видим в Fiddler’е уже вполне читаемую картину.
Обращаем внимание, что без сжатия данные формы весят более 1 Мб, что немало.
Наконец справа видим данные формы:
Переходим на представление «TextView», копируем в буфер и сохраняем как xml.
Обращаем внимание на наличие больших блоков в ветке props c внушительным количеством строк, которое сопоставимо с числом строк таблиц значений на форме:
а также со свойством fullChanged="true". Последнее скорее всего означает разрешение на изменение строк объекта на клиенте.
Выдвигаем предположение о том, что в данных формы на клиента приходят с сервера служебные таблицы значений.
С точки зрения функционирования алгоритма они не требуются на клиенте. Принимаем решение избавиться от таблиц значений на клиенте.
5. Разгружаем форму в «1С»
Что тяжелее всего?
- На форме есть таблицы значений с большим числом строк.
- Обработка объект содержит табличные части с большим числом строк.
Отказываемся от использования таблиц значений на форме и табличных частей в пользу такого подхода:
- на сервере создаем таблицы значений;
- при переходе на клиента помещаем их во временное хранилище, а на форме храним только его адрес;
- после возврата на сервер получаем таблицы значений из временного хранилища.
6. Смотрим в Fiddler результат «разгрузки» формы
Видно, что объем данных формы сократился более чем в 5 раз.
7. Делаем повторный замер производительности и смотрим потребление памяти и лаги в ТЖ
Накатываем изменения на рабочую базу, собираем замер производительности «1С».
Видим, что теперь открытие формы экземпляра бюджета составляет 25 секунд, а метод ОткрытьФорму — всего 2,1 секунды.
Эта статья — результат длительных наблюдений за работой высоконагруженных систем разной архитектуры. Задача статьи — дать пищу для размышлений и показать пример, когда типовое поведение информационной системы по умолчанию не всегда является оптимальным.
Тонкая настройка и обслуживание кластера 1С могут существенно влиять на общую производительность системы и на время отклика сервера для отдельных групп пользователей. Такая настройка может быть полезна для высоконагруженных внедрений и для внедрений, содержащих в своих конфигурациях недочеты. Например, циклические ссылки или избыточные сеансовые данные. Расследование и исправление таких недочетов в прикладном решении является трудоемкой задачей, которую сложно выполнить в короткие сроки. Поэтому эксплуатацию прикладного решения зачастую приходится производить в сложившихся условиях.
В статье рассмотрены нестандартные подходы к настройке и обслуживанию сервера кластера 1С. Такие подходы могут дать ощутимый результат при эксплуатации высоконагруженного сервера 1С. Под высоконагруженными серверами будем полагать более 300–400 одновременных активных сеансов, независимо от используемой лицензии — КОРП или обычная лицензия.
Особенности лицензий «1С:Предприятие КОРП»
Лицензия КОРП предоставляет дополнительные возможности по настройкам, которые позволяют повысить стабильность работы кластера. В качестве примера можно отметить следующие возможности:
- Вынос тяжелых сеансов, например, регламентных заданий, на отдельный сервер с помощью настройки требований назначения функциональности. Это может повысить отзывчивость рабочих процессов рабочего сервера, которые обслуживают сеансы пользователей.
- Ограничение на расход памяти одного вызова. Позволяет снизить общий расход памяти кластером, а также, теоретически, может снизить скорость деградации производительности рабочих процессов.
При этом версия КОРП, так же как и обычная лицензия, имеет ограниченное количество сценариев для перезапуска рабочих процессов (РП):
- Регулярный перезапуск РП через заданный интервал времени.
- Перезапуск РП превысивших временно допустимый объем памяти рабочих процессов.
Поэтому возникает желание еще гибче, чем предлагается управлять рабочими процессами в кластере, поскольку именно они «изнашиваются» быстрее других компонентов в кластере.
Стоит принимать во внимание тот факт, что лицензия КОРП стоит существенно больше обычной лицензии.
Необходимые сведения об устройстве сервера 1С
На рисунке представлены элементы, которые задействованы в работе кластера серверов, а именно:
- Процессы кластера серверов:
- ragent.exe;
- rmngr.exe;
- rphost.exe.
- список кластеров;
- реестр кластера.
Функционирование компьютера в составе кластера обеспечивается процессом ragent.exe, который называется агентом сервера. Компьютер, на котором запущен агент сервера, называется рабочим сервером. Одной из функций агента сервера является ведение списка кластеров, расположенных на данном рабочем сервере.
Непосредственно кластер серверов включает в себя следующие элементы:
- один или несколько процессов rmngr.exe;
- реестр кластера;
- один или несколько процессов rphost.exe.
Процесс rmngr.exe называется менеджером кластера. Этот процесс управляет функционированием сервера в кластере.
Процесс rphost.exe называется рабочим процессом. Рабочий процесс обслуживает непосредственно клиентские приложения, взаимодействует с сервером баз данных и в нем, в частности, могут исполняться процедуры серверных модулей конфигурации.
Влияние количества рабочих процессов на производительность и потребление памяти сервера 1С
Давайте разберемся, какие гиперпараметры оказывают влияние на устойчивость и производительность работы кластера.
При настройке кластера эксперт оперирует следующими параметрами:
- количество рабочих процессов;
- количество соединений на процесс;
- объем памяти на процесс;
- интервал перезапуска рабочих процессов.
Почему хочется назвать данные параметры гиперпараметрами? Такое желание наступает вследствие того, что эксперт не оказывает влияние на алгоритмы распределения памяти и тому подобных вещей на низком уровне, а может лишь косвенно оказывать воздействие.
Установить непосредственно можно только «Количество соединений на процесс» и «Интервал перезапуска РП». Остальные параметры можно регулировать только опосредованно.
Например, чтобы увеличить количество рабочих процессов (РП), можно уменьшить количество соединений на процесс, при этом объем памяти на один рабочий процесс станет меньше. Также можно уменьшить объем памяти на процесс настроив более частый перезапуск РП.
Универсальной рекомендации по настройке этих параметров не существует, поскольку они очень сильно зависят от конкретной конфигурации информационной базы, активности сеансов и объема оперативной памяти доступной кластеру. Есть так называемые «параметры по умолчанию», которые устанавливаются при создании нового кластера.
Параметр «Количество соединений на процесс»
В современных версиях «1С:Предприятие» устанавливается количество соединений на процесс 256, хотя в более ранних релизах этот параметр был равен 128.
Логика установки данного параметра такая: при уменьшении количества соединений на процесс мы тем самым увеличиваем количество рабочих процессов. С одной стороны, это приводит к повышению стабильности работы кластера и уменьшению времени реакции сервера на запросы клиентов. С другой стороны, при большем количестве РП система тратит больше времени на межпроцессное взаимодействие и как следствие ведет к увеличению времени реакции сервера на запросы и снижению производительности.
Таблица: Сравнительный анализ по изменению количества рабочих процессов
Таким образом, универсального решения здесь нет и нужно искать некий баланс между этими двумя крайностями.
Из нашего опыта и опыта коллег, участвовавших в крупных внедрениях (более тысячи пользователей), на текущий момент времени мы пришли к заключению, что баланс обычно находится в районе 7–15 рабочих процессов.
Из интересных особенностей управления параметром «Временно допустимый объем памяти процессов» можно отметить тот факт, что в документации ИТС указана возможность использования данного параметра только для лицензии КОРП. При этом установка параметра все же работает (он не игнорируется) с обычной лицензией в версиях платформы 8.3.15 (начиная с 8.3.15.1700), 8.3.17, 8.3.18. А, например, в версиях 8.3.16 он игнорируется.
Параметр «Интервал перезапуска РП»
Интервал перезапуска РП по умолчанию не установлен. Применительно к высоконагруженным системам это со временем ухудшает параметры быстродействия сервера. Можно было бы рекомендовать перезапускать РП каждые несколько часов. Но и здесь все не так очевидно, как кажется на первый взгляд.
Поскольку пользователи заходят в прикладное решение в основном в одно и то же время, то и процессы оказываются запущены практически одновременно и поэтому их перезапуск происходит практически одновременно. Такое поведение системы приводит к повышенному времени отклика сервера во время таких массовых перезапусков РП. А у конечных пользователей это выглядит как «подвисание» клиентского приложения на десятки секунд.
Параметр «Принудительно завершать проблемные процессы»
Еще один интересный и неоднозначный параметр — это «Принудительно завершать проблемные процессы». Здесь под процессами подразумеваются не только рабочие процессы, но и другие компоненты кластера. При его включении система анализирует такие показатели, как:
- проверка соединения с процессом;
- проверка объема памяти занимаемой процессом (применимо для менеджера кластера и рабочего процесса);
- отслеживание рабочих процессов, удаленных из реестра кластера;
- избыточное число ошибок или исключений.
Если на основании анализа этих показателей процесс признается проблемным, то возможно принудительное завершение проблемного процесса (с формированием дампа аварийного завершения). Формально правила признания процесса проблемным описаны в документации, но на практике часто встречаются ситуации, когда процесс признается проблемным ошибочно. Такое поведение системы может зависеть от конкретной версии платформы. Таким образом, мы не стали бы рекомендовать всем в обязательном порядке использовать принудительное завершение проблемных процессов.
Деградация рабочих процессов
В процессе своей работы рабочий процесс (РП) со временем потребляет все больше памяти, что в конечном счете приводит к увеличению времени отклика рабочих процессов и падению производительности сервера в целом.
В сообществе специалистов 1С такое явление назвали «деградацией рабочих процессов». Гипотетически деградация РП может происходить по разным причинам:
- фрагментация памяти рабочего процесса;
- избыточное кэширование объектных данных платформой 1С;
- наличие циклических ссылок объектов друг на друга;
- наличие избыточных сеансовых данных.
Степень деградации РП мы не можем измерить никаким объективным критерием или метрикой. Однако, известно, что степень деградации РП в некоторой степени коррелирует с:
- Объемом оперативной памяти, занимаемым РП.
Объем оперативной памяти нельзя считать объективным показателем деградации, поскольку он сильно зависит от эксплуатируемой конфигурации ИБ, количества сеансов, размера сеансовых данных, количества соединений на РП. - Временем реакции РП на клиентские запросы.
Время реакции является всего лишь средним временем, затраченным РП на обслуживание одного клиентского вызова. Поэтому РП недавно обслуживший заведомо тяжелый вызов будет иметь повышенное время реакции сервера.
Таким образом, эти показатели можно считать лишь косвенным показателем степени деградации рабочего процесса.
Влияние деградации РП на пользователей может носить неожиданный характер. Например, когда сильно деградировал только один РП, большинство пользователей вообще не заметит негативных эффектов, а часть пользователей (в нашем случае это КоличествоПользователей/КоличествоРП) предъявляет жалобы на общее замедление работы системы. При чем такое замедление наблюдается буквально во всем: открытие форм объектов, формирование отчетов, проведение документов и т. п.
Способы решения проблемы деградации рабочих процессов
Увеличение количества рабочих процессов
При каком-то определенном сценарии работы пользователей кластер обслуживает некое среднее количество вызовов. Эти вызовы делятся между рабочими процессами. Таким образом, увеличение количества рабочих процессов может замедлить скорость деградации каждого отдельно взятого РП, поскольку каждый из них будет обслуживать меньше вызовов. Увеличение количества РП необходимо делать в разумных пределах и с четким пониманием возможных негативных последствий, описанных выше.
Разделение нагрузки на несколько рабочих серверов
Вынос тяжелых сеансов, например, регламентных заданий или построение отчетов, на отдельный рабочий сервер может позитивно сказаться на отзывчивости РП, обслуживающих сеансы пользователей и снизить скорость деградации этих РП. Это реализуется с помощью настройки требований назначения функциональности. Но доступно только с лицензией КОРП и поэтому имеет смысл только на очень больших внедрениях.
Своевременный перезапуск РП
Как уже писалось выше, независимо от используемой лицензии, кластер сервера 1С:Предприятия имеет ограниченное количество сценариев для перезапуска рабочих процессов, и у всех них есть недостатки.
- Регулярный перезапуск РП через заданный интервал времени.
Настройка этого параметра часто приводит к массовому перезапуску рабочих процессов запущенных одновременно. Что не всегда хорошо сказывается на времени реакции сервера в момент такого перезапуска. - Перезапуск РП превысивших временно допустимый объем памяти рабочих процессов.
По умолчанию данный параметр установлен в «0». Это значит, что перезапуск РП будет осуществляться при превышении 80% памяти доступной кластеру. Поскольку рост потребления памяти происходит неравномерно между рабочими процессами и лишь косвенно указывает на степень деградации, то настроить своевременный перезапуск РП с помощью статичного указания временно допустимого объема памяти достаточно сложно.
Потребление памяти рабочими процессами зависит от характера нагрузки, которая сильно меняется внутри рабочего дня. Ни один из показанных на графике лимитов не подойдет для своевременного перезапуска РП во всех сценариях работы.
Сценарий 1 Сценарий 2 Лимит 1 Есть явно деградировавший РП, но перезапуск его не происходит. Деградировали уже все РП, но перезапустится только один. А хотелось бы не доводить ситуацию до такого состояния и перезапускать заранее. Лимит 2 Есть явно деградировавший РП, есть его перезапуск. Слишком низкий лимит приводит к частому аварийному перезапуску множества РП сразу. Мы реализовали свой способ перезапуска РП, который делает своевременный перезапуск деградировавших РП. Он основан на регулярном перезапуске РП через заданный интервал времени, но не приводит к массовому перезапуску рабочих процессов, запущенных одновременно, поскольку перезапускает лишь один РП в единицу времени (например, раз в 10–20 минут).
Логика работы скрипта
Раз в 10 минут производится суммирование объема памяти всех рабочих процессов, устанавливается параметр «временно допустимый объем памяти рабочих процессов» в значение равное полученной сумме за вычетом 512Мб, чтобы получить гарантированное превышение по памяти.
Далее скрипт ожидает, пока один из рабочих процессов перейдет в выключенное состояние, и устанавливает параметр «временно допустимый объем памяти рабочих процессов» в ноль. Опционально, можно пропускать перезапуск РП если в текущий момент явно нет ни одного деградировавшего РП — память самого крупного РП не превышает некоего заведомо низкого значения, при котором перезапуск точно не нужен, например, 8ГБ.
За счет этого достигается равномерный перезапуск рабочих процессов. Причем перезапуск рабочих процессов делается строго по одному и перезапускается рабочий процесс, занимающий самый большой объем памяти.
В качестве дополнительного бонуса к статье мы приводим примеры скриптов перезапуска рабочих процессов в двух вариантах: для Windows на PowerShell с использованием COM-объектов и для Linux на скрипте Bash с использованием RAC.
Хотелось бы обратить внимание на то, что эти скрипты не претендуют на какую бы то ни было эталонность, а просто являются демонстрацией того, как можно программно управлять рассмотренными в статье настройками кластера. Для этого можно использовать RAC или COM-объекты и по вкусу завернуть все это в программу на любом понравившемся языке. Подробнее о настройке и запуске 1С под Linux читайте тут.
DeleteWorkingProcess
ByMemory.shСкрипт для bash (в качестве параметра принимает номер порта кластера):
УдалитьРППоПамяти.ps1
Скрипт для PowerShell:
Вместо заключения
Почему раздел называется не «Заключение», а «Вместо заключения»? Причина кроется в том, что статья посвящена не тому, чтобы дать набор готовых инструкций, рекомендаций, рецептов, а настроить эксперта-читателя на тон размыслительный.
Показать, что важно понимать логику функционирования системы, точки воздействия. Что необходимо внимательно следить за поведением системы в условиях разных настроек, не бояться ставить эксперименты и порой приходить к парадоксальным выводам.
Под парадоксальностью мы полагаем тут настройки системы отличающихся от рекомендованных, но хорошо подходящих именно вашему проекту. И в ряде случаев это может помочь не только в части устойчивости и производительности функционирования, но и сэкономить деньги.
Оптимизация программы 1С необходима, когда данный софт начинает спустя некоторое время пользования тормозить. Это проявляется в долгом запуске, медленной работе и периодических зависаниях. Причин этого может быть множество, поэтому существует несколько решений данной проблемы. Можно прибегнуть к определенным действиям, которые позволят оптимизировать программу, улучшить производительность и скорость работы.
Оптимизация с помощью обновления
Каждое новое обновление программы 1С сопровождается оптимизацией, совершенствованием и модернизацией. Добавляются новые функции, улучшаются работоспособные системы всей платформы и появляются новые возможности, которые повышают производительность программы, что позволяет уменьшать восприятие от различных внешних факторов (объем хранимой памяти, количество подключаемых пользователей и прочее).
Следует учесть, что программа сама по себе не обновляется, поэтому необходимо самому следить за наличием обновлений или обратиться за помощью к нашим профессионалам. Обновление может выполняться для определенной конфигурации программы или самой платформы в целом.
Настройка регламентных и фоновых заданий
Конфигурация программы 1С отличается обилием большого количества фоновых заданий. К ним можно отнести постоянное обновление курса валют, классификаторов банков, новостной ленты, задач бухгалтера и многое другое. Каждый выполняемый программой процесс отбирает ресурсы, как данного софта, так и компьютера. Некоторые из них можно отключить, так как они не особо нужны.
Одним из простых и эффективных решений, чтобы оптимизировать 1С и улучшить производительность, является настройка всех этих процессов, которые выполняются в фоновом режиме. Имеется в виду их полное отключение.
Для этого следует выполнить следующее:
- Поиск пункта «Администрирование» в главном разделе меню, которое перекинет в окно настройки программы. Появится перечень переходов, среди которых необходимо выбрать «Обслуживание».
- В появившемся новом окне необходимо перейти в раздел «Регламентные операции». Здесь будет располагаться ссылка «Регламентные и фоновые задания», по которой следует нажать.
- Будет предоставлен список всех доступных фоновых заданий для ознакомления, большинство которых будет находиться в рабочем состоянии. Об этом свидетельствует галочка, которая стоит слева.
- Выполнить полный просмотр данного списка, чтобы определить для себя ненужные процессы. Чтобы отключить ненужные задания, следует нажать на каждое из них. Появится отдельное окно, где следует снять галочку с пункта «Включено».
- Нажать «Записать и закрыть», чтобы выбранная задача больше не запускалась.
Данные простые, но достаточно эффективные, действия позволят повысить производительность и скорость программы 1С. Она будет шустрее работать и не будет терять драгоценные ресурсы. При необходимости выключенные задания можно повторно включить.
Отключение неиспользованных модулей программы
Программное обеспечение от 1С отличается не только обилием различных процессов, но и функциональных модулей. Как и фоновые процессы, ненужные модули можно отключать. Это необходимо выполнить с теми, которые не используются. Они также расходуют ресурсы программы и компьютера, от чего 1С становиться более "тяжелой" и не такой производительной.
Чтобы перейти в меню используемых модулей, необходимо войти в раздел «Администрирование». В появившемся окне «Настройки программы» следует выбрать вкладку «Функциональность». Перед пользователем откроется новое окно «Функциональность программы», которое имеет в своем распоряжении большое количество вкладок. Необходимо пройтись по каждой и отключить ненужные модули. Для этого достаточно просто снять галочки.
Параметры компьютера и сети
Бывает так, что отключение ненужных модулей и фоновых процессов может быть недостаточно, чтобы повысить производительность программы 1С. Всему виной могут быть характеристики компьютера. Если они слабые и их недостаточно для минимальных требований программы, то это может повлиять за собой значительное замедление работоспособности софта. Это касается не всех составляющих ПК. Особое внимание следует уделить процессору и оперативной памяти.
Системные требования программы 1С можно посмотреть на странице официального сайта 1С. Чтобы посмотреть параметры компьютера, необходимо при помощи кнопки «Пуск» выбрать правой кнопкой мыши пункт «Компьютер». Появиться небольшое меню, где следует выбрать «Свойства». Появится новое окно, которое будет содержать техническую информацию о компьютере.
Помимо процессора и оперативной памяти, также должны соответствовать следующие параметры:
- свободное место на жестком диске не меньше 2 Гб;
- скорость интернет-соединения не меньше 100 мБит за секунду.
Важно отметить, что существует особый пакет программы 1С, который ориентирован на передачу большого объема информации. Здесь следует отдельное внимание уделить пропускной сетевой способности ПК. Если возникнуть какие-либо торможения или другие проблемы, то данную скорость можно увеличить. Для передачи незначительного объема информации вполне достаточно будет 100 мБит/сек.
Запуск в тонком клиенте
Тонкий клиент – это особый режим запуска программы 1С, который позволяет минимизировать потребление программных ресурсов и каналов связи. Его можно запустить при помощи выполнения определенных манипуляций в настройках информационной базы.
Чтобы включить режим тонкого клиента, следует выполнить:
- Последовать в настройки. Чтобы в них попасть, необходимо при запуске 1С выбрать кнопку «Изменить».
- Появится новое окно, где следует найти раздел «Основной режим запуска».
- Данный раздел будет иметь несколько вариантов для выбора, среди которых находится тонкий клиент. Его необходимо выбрать.
- После выбора подходящего режима нажать кнопку «Готово», чтобы сохранить изменения.
Для просмотра режима работы программы необходимо перейти в меню «Справка», которое находится в основном перечне меню. В выбранной вкладке нажать «О программе», где будет отображаться режим программы, в котором она работает в данный момент.
Диагностика и исправление ошибок базы 1С
Низкая производительность программы 1С считается не просто проблемой, но и ошибкой, с которой необходимо бороться. В данном случае эффективным способом оптимизации является «Тестирование и исправление информационной базы».
Данный инструмент располагается в меню «Администрирование» и он имеет в своем распоряжении следующее:
- Реиндексацию таблиц информационной базы – это встроенный инструмент для реорганизации используемых индексов в таблице. Он позволит повысить скорость работы базы в целом.
- Сжатие таблиц информационной базы – данный инструмент позволяет сжимать размер базы. Другими словами, он уменьшает ее размер при помощи дефрагментации всей таблицы. Данный режим работы не только увеличивает быстродействие программы, но и избавляет ее от ошибок.
- Реструктуризация таблиц информационной базы – это режим работы, благодаря которому выполняется оптимизация структурной составляющей программы. Это позволяет улучшить стабильность и быстродействие выполняемых процессов.
Свертка информационной базы
Главные преимущества данного решения:
Инструмент «Свертка информационной базы» находится в меню «Администрирование» -> «Сервис». Важно помнить, что данный процесс является необратимым. Программа сама будет предлагать выполнить резервное копирование. Следует определить для этого место на жестком диске.
После этого следует выполнить следующее:
- Указать дату, на которую будут формироваться остатки. В этом разделе можно установить галочку напротив «Установить дату запрета изменения данных (рекомендуется)». Ее можно не устанавливать, если необходимо выполнить редактирование сформированного документа с остатками.
- При выполнении учета по нескольким предприятиям, программа будет предлагать выполнять данный процесс по конкретным организациям или сразу по всем.
- Теперь необходимо следовать всем шагам помощника, попутно выполняя настройку по всем доступным регистрам.
Свертка позволяет формировать остатки на конкретную дату, а также удалять старые и ненужные документы. Таким образом, можно уменьшить общий объем информационной базы, чтобы облегчить работу программе 1С.
Настройка антивирусных программ
Бывает так, что антивирусная программа может мешать работе 1С. Но при правильной настройке любого такого вспомогательного софта работоспособности бухгалтерской программы ничего не будет мешать. С использованием стандартных настроек производительность 1С может резко снизиться.
Чтобы избавиться от данной проблемы, необходимо углубиться в дополнительные настройки антивирусной программы. Самым простым и эффективным решением является отключение фонового режима данного софта. Уже сразу будет заметна разница. Программа 1С будет быстрее запускаться, обрабатывать документы, формировать отчеты и тому подобное.
Защитить свой компьютер можно с помощью нашей системы защиты от шифровальщиков-вымогателей.
Специалисты Первого Бита имеют обширный опыт в оптимизации программы 1С. Мы оказываем комплексные услуги «скорой» технической помощи. Чтобы связаться с нами и узнать условия сотрудничества:
- Оставьте заявку на нашем сайте или позвоните нам по телефону;
- Менеджер уточнит причины обращения и зафиксирует проблему;
- Наши специалисты проведут технический аудит и экспертизу;
- Проведут полную оптимизацию 1С.
После проведения оптимизации производительности 1С, значительно повысится производительность программы. Улучшится работа систем, что в свою очередь, повысит эффективность работы всего персонала. Вы сможете, наконец, спокойно заниматься своим любимым и важным делом и не беспокоиться более по поводу зависаний 1С.
Читайте также: