1с бухгалтерия тормозит по сети. Советы по автоматизации

В данной статье рассматриваются основные факторы: когда 1С тормозит, 1С зависает и медленно работает 1С. Данные подготовлены на основании многолетнего опыта компании SoftPoint по оптимизации крупных IT систем, построенных на связке 1С + MS SQL.

Для начала стоит отметить миф о том, что 1С не предназначена для одновременной работы большого количества пользователей, активно поддерживаемый пользователями форумов, которые находят в этих постах успокоение и причину для того, чтобы оставить всё как есть. При достаточном терпении и уровне знаний можно довести систему до любого количества пользователей. Медленная работа и зависание 1С уже не будет проблемой.

Из практики: Легче всего оптимизировать 1С v7.7 (Оптимизация 1С 8.1, 1С 8.2, 1С 8.3 более сложная задача, так как приложение состоит из 3 звеньев). Довести её до 400 одновременных пользователей – достаточно типовой проект. До 1500 – уже сложный, требующий упорной работы.

Второй миф: чтобы улучшить работу 1С и избавиться от зависаний 1С нужно поставить более мощный сервер. Как правило в проектах оптимизации в 95% случаев удаётся достичь приемлимых показателей либо вообще без апгрейда, либо обновив незначительную часть оборудования, например, добавив оперативную память. При этом нужно отметить, что оборудование всё-таки должно быть серверным, особенно дисковая подсистема. Устаревшая дисковая подсистема - лишь одна из причин, почему медленно работает 1С.

Основное ограничение при многопользовательской работе в 1С – блокировочный механизм. Именно блокировки в 1С, а не оборудование сервера обычно не дают работать в базе большому количеству людей. Чтобы побороть эту беду – приходится хорошенько потрудиться и менять логику блокировок в 1С - опустить их с табличных до построчных. Тогда, например, проведение документа будет блокировать только один, а не все документы в системе.

Рисунок 1. Очередь блокировок 1С в системе мониторинга PerfExpert, с информацией о пользователях 1С, модуле конфигурации и конкретной строке кода в этом модуле.

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

Более опасными с точки зрения блокировок являются групповые обработки, которые могут быть длительными по времени выполнения и в тоже время вызывать блокировки 1С. Любая обработка, меняющая данные, например, восстановление последовательности или групповая обработка документов блокируют таблицы и не дают другим пользователям проводить документы. Естественно, чем быстрее выполняются эти обработки, тем меньше время блокировки и легче работать пользователям.

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

Рисунок 2. Нагрузка на рабочий сервер в разрезе модулей конфигурации, от всех пользоватей. Каждому модулю соответствует свой цвет. Виден явный дисбаланс в создаваемой из 1С нагрузке.

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

Замедлять время выполнения операций и, следовательно, увеличивать интенсивность блокировок 1С помимо запуска тяжёлых отчётов может неоптимальная настройка MS SQL и MS Windows. Эта проблема обнаруживается у 95% клиентов. Нужно отметить, что это сервера серьёзных организаций, их поддержкой и настройкой занимаются целые отделы высоко квалифицированных администраторов.

Основной причиной не правильной настройки сервера является страх администраторов что-либо менять на работающем сервере и правило «Лучшее – враг хорошего». Если администратор поменяет настройки сервера и начнутся проблемы, то весь гнев начальства выльется на нерадивого админа. Поэтому ему выгоднее оставить всё как есть, и не делать ни шагу без распоряжения начальства, чем экспериментировать под свою ответственность.

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

На первый взгляд картина ясна – нужно оптимизировать всё, что тормозит работу сервера 1С. Но давайте представим себя на месте такого оптимизатора – допустим у нас 1С 8.1 8.2 8.3 УПП и одновременно работают 50 пользователей. В один ужасный день пользователи начинают жаловаться, что 1С тормозит, и нам нужно решить эту проблему.

Первым делом смотрим, что происходит на сервере - вдруг там какой-нибудь особо самостоятельный антивирус проводит полную проверку системы. Осмотр показывает, что всё прилично – сервер нагружен под 100%, причём только процессом sqlservr.

Из практики: один из младших администраторов по своей инициативе включил на сервере автообновление, Windows и SQL радостно обновились, и после обновления началось массовое замедление работы пользователей 1С или же попростоу 1С зависает.

Следующий шаг – проверяем, какие программы нагружают MS SQL. Осмотр показывает, что нагрузка создаётся из примерно 20 соединений сервера приложений.

Из практики: зациклилась программа, оперативно обновляющая данные на сайте, и вместо того, что-бы обновлять раз в 4 часа – делала это не переставая, без пауз, сильно нагружая сервер, и блокируя данные.

Дальнейший анализ ситуации сталкивается с большими трудностями. Мы уже выяснили, что нагрузка идёт непосредственно из 1С, но как понять, что именно делают пользователи? Или хотя-бы, кто они. Хорошо, если пользователей 1С в организации 10, тогда можно просто пройтись по ним и узнать, чем они сейчас занимаются, но в нашем случае их полсотни, и раскиданы они по нескольким зданиям.

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

Система логирования – просто незаменимый инструмент в деле оптимизации системы. Если добавить в него ещё и возможность онлайн просмотра текущего состояния – получится система мониторинга состояния сервера. Каждый проект оптимизации начинается со сбора статистики состояний сервера, чтобы выявить узкие места.

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

Возвращаясь к нашему примеру – наиболее вероятный исход: Администратор говорит «Виноваты программисты, которые писали конфигурацию», Программисты в ответ – «У нас всё написано хорошо – это сервер плохо работает». А воз, как говорится, и ныне там. В итоге 1С тормозит, зависает или работает медленно.

В любом случае для решения проблем производительности 1С мы рекомендуем для начала приобрести и использовать мониторинг производительности PerfExpert , это позволит Вам принять правильное управленческое решение и сэкономить деньги. Продукт подходит как для небольших ИС 1С:Предприятие – до 50 пользователей, так и для систем – от 1000 пользователей. С июля 2015 года мониторинг производительности PerfExpert получил сертификат 1С:Совместимо, прошел тестирование в Microsoft и помогает решать проблемы производительности не только для систем 1С, но и для других информационных систем на базе MS SQL Server (Axapta , CRM Dynamics , Doc Vision и прочие).

Если Вам понравилась информация, рекомендуемые дальнейшие действия:

- Если Вы хотите самостоятельно разбираться с техническими проблемами производительности 1С (1С 7.7, 1С 8.1, 1С 8.2, 1С 8.3) и других информационных систем , то для Вас уникальный список технических статей в нашем Альманахе (Блокировки и взаимоблокировки, большая нагрузка на CPU и диски, обслуживание баз данных и индексный тюнинг - лишь малая часть технических материалов, которые Вы там найдете).
.
- Если Вы хотите обсудить с нашим экспертом проблемы производительности или заказать решение мониторинг производительности PerfExpert , то оставьте заявку и мы свяжемся с Вами в кратчайшие сроки.

Ваша «1С» опять тормозит? Теряете время, пока составляется отчет? Надоело пить чай, ожидая обмен данными?

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

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

Почему «1С» может зависать или тормозить?

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

  • плохой совместимости платформы и конфигурации,
  • грубых ошибок начинающих 1С-программистов,
  • огромного размера базы,
  • большого количества пользователей.

Даже ошибки при обычных действиях с 1С — тоже могут привести к ее медленной работе.

Как ускорить 1С?

Мы действуем так:

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

1С запускается по две минуты? Журнал документов открывается по 40 секунд? Документ проводится почти минуту?

Знакомая ситуация, если вы используете файловую версию с сетевым доступом.
Можно, конечно, поставить сервер, и забыть про тормоза, но, если в 1С у вас работает всего 2-3 человека, и тратить деньги на покупку серверных лицензий - нецелесообразно.

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

  • быстрая работа пользователя с базой по сети в монопольном режиме и крайне медленная - при одновременной работе нескольких пользователей.
  • быстрая работа пользователя с локальной базой на сервере и медленная - по сети.
  • процессор на сервере почти не занят.
  • загрузка гигабитной сетевой карты меньше 5%.
  • обращения к файловой системе чуть менее 10 мбайт/сек.
  • При попытке одновременно провести документы один компьютер тупит около минуты, а второй вылетает из 1С с текстом ошибки "не удалось заблокировать таблицу".
  • Запуск 1С длится около 3 минут.

Советы, которые могут помочь ускорению работы файловой базы:

  • Перейти на работу в терминальном доступе. К сожалению, Windows 7 не позволяет штатными средствами превратиться в сервер терминалов - максимум одно активное подключение. При этом остальные сеансы не прекращаются, можно переподключиться под другим пользователем - "выкинув" при этом предыдущего пользователя, но не завершив его сеанс. Поэтому следует перенести 1С на серверную ОС, где таких ограничений нет, либо решить вопрос сторонней утилитой .
  • Отключить использование протокола сети IPv6, настроить адресацию на "старом" IPv4.
  • Добавить процессы 1С в исключения брандмауэра Windows, а также в исключения антивируса, либо отключить их вовсе (более рискованно, но простой тест показал увеличение скорости перепроведения документов при отключенном антивирусе Avast в разы!)
  • Запустить индексацию полнотекстового поиска в 1С либо выключить его вовсе
  • Запустить тестирование и исправление базы, проверку утилитой ChDbfl (расположена утилита в папке "bin" установленной технологической платформы).
  • Запустить в конфигурации пункт "Проверка конфигурации" (если конфигурация не типовая, это может быть полезным).
  • Отключить ненужные функциональные опции (чем меньше лишнего в управляемом интерфейсе - тем, как правило, быстрее он работает).
  • Настроить права пользователям (чем меньше лишнего в управляемом интерфейсе - тем, как правило, быстрее он работает).
  • Запустить пересчет итогов и восстановление последовательности (значительный прирост может быть только в случае, если долгое время итоги не восстанавливались).
  • Указать "Скорость соединения - низкая" в настройках списка баз.
  • Дефрагментация диска с файловой базой.
  • Свертка базы (может оказаться полезной, если база большого объема, например, за несколько лет).
  • Модернизация аппаратной части - более быстрый винчестер (SSD), новый свитч, процессор, память и т.д.
  • Установить на веб-сервер, доступ с помощью тонкого клиента.

После выполнения всех этих шагов файловая база 1С может заработать на порядок шустрее. В некоторых случаях - запуск за 10 секунд, а скорость перепроведения документов увеличивалась в 12 раз.

P.S. В конфигурации УТ 11.1, запустить файловую 1С, используя сетевой доступ к общей папке - нереально, т.к. даше самый шустрый твердотельный диск, оперативная память и процессор утыкаются в сетевые блокировки, и работа более одного пользователя становится фактически невозможна.
Самописные небольшие конфигурации вполне могут работать весьма быстро даже в файловом варианте.

Скорость работы 1С – очень важный фактор, определяющий время доступа к информации в базе и работе с ней. К сожалению, большинство предприятий среднего и малого бизнеса оснащают рабочие места старыми или дешевыми компьютерами, считая, что для ведения бухгалтерии много ресурсов не требуется. Базы могут загружаться по пять минут, а отчеты и ведомости формироваться по паре минут. Когда приходит время закрывать какой-нибудь месяц, пусть там и немного документов – ожидание может длиться до 10 минут, и нужно всё проверить, чтобы не было ошибок и месяц не пришлось перезакрывать.

Ускорить 1С – значит ускорить бизнес-процессы компании, связанные с отражением фактов жизни предприятия в информационной базе. Если 1С работает медленно, то это таки или иначе сказывается на работе всей компании и на получении прибыли.

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

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

Почему тормозит 1С?

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

Все причины можно разделить на две группы относительно программы 1С: внешние и внутренние . Рассмотрим каждую группу причин отдельно и выделим основные моменты, которые стоит проконтролировать и исправить для ускорения 1С.

Внешние причины медленной работы 1С

К внешним причинам, влияющим на скорость работы 1С 8.3 можно отнести аппаратные, операционные и программные факторы.

Аппаратный фактор

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

Мы можем выделить два главных компонента в компьютере, наиболее сильно влияющих на производительность 1С – процессор и оперативная память.

Процессоры бывают с разным количеством ядер и разной тактовой частотой. Количество ядер позволяет обрабатывать несколько процессов одновременно, а частота отвечает за скорость обработки процессов. Чем выше оба показателя – тем лучше.

Оперативная память позволяет хранить данные во временной памяти, позволяя программам работать с ними. Чем больше объем оперативной памяти – тем больше данных могут обрабатываться программой 1С. Увеличение оперативной памяти положительно сказывается на всех ступенях работы с 1С – от загрузки программы до выгрузки отчётов. Однако, положительное влияние увеличения оперативной памяти чувствуется на малых её объемах. При смене 2 Гб на 4 Гб разница чувствуется сильно, однако если увеличить память с 16 Гб до 32 Гб, особого прироста производительности Вы не почувствуете (информация не актуальна для серверов 1С).

Стоит упомянуть и о видеокарте. Здесь можно сэкономить, установив видеокарту бюджетного уровня, поскольку программы 1С оформлены в монотонных цветах без применения излишних спецэффектов.

Какие бы работы не проводились по ускорению 1С, если у Вас мало оперативной памяти (1 Гб) или слабенький процессор (2200 ГГц), навряд ли Вы добьётесь ощутимого прироста скорости. Стоит подумать о модернизации компьютера.

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

Операционный фактор

К операционным факторам можно отнести вид операционной системы и настройки электропитания.

Самыми распространёнными операционными системами являются 32- и 64-битные. Последние системы (Windows 8,10) в большинстве своём 64-битные. 32-битные системы имеют некоторые ограничения, главное из которых – программное ограничение максимально доступного объема оперативной памяти – примерно 3,5 Гб. Даже если физически у вас будет установлено 8 Гб, максимум, которым Вы сможете воспользоваться – 3,5 Гб.

Настройка электропитания подразумевает выбор схемы работы «Максимальная производительность». В разных операционных системах настройка электропитания находится в разных местах, в Windows Вы всегда можете найти её на панели управления.

Программный фактор

К программным факторам можно отнести программы, ограничивающие работоспособность 1С, либо же программы, разделяющие с 1С компьютерные ресурсы.

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

Внутренние причины медленной работы 1С

К внутренним причинам, влияющим на скорость работы 1С, относятся лишние документы, программный кэш, регламентные задания.

Для того чтобы в базе не было ничего лишнего, рекомендуется регулярно удалять помеченные на удаление объекты, проводить свёртку базы за прошлые периоды, а также отключить ненужные функции. В последних версиях 1С на вкладке Администрирование появился раздел Производительность. На нём Вы можете отключить необязательные функции по своему усмотрению и повысить скорость работы 1С.

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

Регламентные и фоновые задания – процессы, запускаемые в фоновом режиме (без отображения и подтверждения пользователя), необходимые для поддержания и актуализации той или иной информации. Например, зачем раз в час обновлять классификатор банков или курс валют, если валютные операции совершаются редко, и по предварительной загрузке актуальных курсов валют? Отключив подобные процессы, мы разгрузим систему и направим все доступные ресурсы на вычисление тех операций, которые нам необходимо запустить.

Клиент-серверные решения 1С

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

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

Выводы

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

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

Ускорьте 1С прямо сейчас!

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

Фактически существует три метода ускорения 1С:

  • Увеличение аппаратных мощностей.
  • Оптимизация настроек операционной системы и СУБД.
  • Оптимизация кода и алгоритмов в 1С.

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

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

Компания 1С на вопрос о том, сколько нужно ресурсов, дает достаточно расплывчатый ответ, о нем мы писали ранее в наших постах. И поэтому приходится самостоятельно проводить эксперименты и разбираться, от чего же зависит производительность 1С. Ниже описаны эксперименты с производительностью программы в компании EFSOL.

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



Таблица 1 - Конфигурации, на которых проводилось первоначальное тестирование

Рабочая станция показывает производительность на 155% больше, чем сервер 1С с превышающими характеристиками. Мы начали разбираться, в чем дело и сужать круг поисков.

Рисунок 1 – Замеры производительности на рабочей стации тестом Гилева

Первое подозрение было, что тест Гилева неадекватен. Замеры открытия форм, проведения документов, формирования отчетов и т.д инструментами КИП показали, что тест Гилева выдает оценку пропорциональную реальной скорости работы в 1С.

Количество и частота ОЗУ

Анализ доступной в интернете информации показал, что многие пишут о зависимости производительности 1С от частоты памяти. Именно от частоты, а не от объема. Решили проверить эту гипотезу, так как у нас на сервере частота ОЗУ 1066 Mhz против 1333 Mhz на рабочей станции, а объем ОЗУ на сервере и так значительно выше. Решили поставить сразу не 1066 Mhz, а 800 Mhz для того, чтобы эффект зависимости производительности от частоты памяти был нагляднее. Результат – производительность упала на 12% и составила 39,37 единиц. На сервер поставили память с частотой 1333 Mhz вместо 1066 Mhz и получили незначительный прирост производительности – около 11%. Производительность составила 19,53 единицы. Соответственно, дело не в памяти, хотя ее частота дает небольшой прирост.

Рисунок 2 – Замеры производительности на рабочей станции после понижения частоты ОЗУ


Рисунок 3 – Замеры производительности на сервере после повышения частоты ОЗУ

Дисковая подсистема

Следующая гипотеза была связана с дисковой подсистемой. Сразу возникло два предположения:

  • SSD лучше, чем SAS диски, пусть даже они в 10 рейде.
  • iSCSI работает медленно или некорректно.

Поэтому в рабочую станцию поставили обычный SATA-диск вместо SSD, то же самое сделали и с сервером – базу разместили на локальном SATA-диске. В результате, замеры производительности никак не изменились. Скорее всего, это происходит, поскольку есть достаточное количество ОЗУ и диски практически никак не задействованы при выполнении теста.

Процессор

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

Рисунок 4 – Замеры производительности на рабочей стации с процессором 1,6 Ghz

Видеокарта

В интернете встречается информация о том, что на производительность 1С может влиять видеокарта. Мы пробовали использовать интегрированное видео рабочей станции, профессиональный адаптер Nvidia NVIDIA® Quadro® 4000 2 Gb DDR5, старую видеокарту GeForce 16MbSDR. Во время проведения теста Гилева какой-либо значительной разницы не заметили. Возможно, видеокарта все-таки влияет, но в реальных условиях, когда нужно открывать управляемые формы и т.д.

В данный момент существует два подозрения, почему рабочая станция работает быстрее даже с заметно худшими характеристиками:

  1. Процессор. Тип процессора на рабочей станции лучше подходит 1С.
  2. Чипсет. При прочих равных условиях наша рабочая станция имеет более новый чипсет, возможно, дело в нем.

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

Этап 1. Настройка системы

Для начала выполним следующие настройки в BIOS и операционной системе:

  1. В BIOS сервера отключаем все настройки по экономии электропитания процессора.
  2. Выбираем в операционной системе план «Максимальная производительность».
  3. Процессор также настраиваем на максимальную производительность. Это можно сделать с помощью утилиты PowerSchemeEd.

Этап 2. Настройка SQL сервера и сервера 1С:Предприятия

Вносим следующие изменения в настройки сервера СУБД и 1С:Предприятия.

  1. Настройка протокола Shared Memory:

    • Shared Memory включится только на платформе начиная с 1С 8.2.17, на более ранних релизах включится Named Pipe – несколько уступающий в скорости работы. Данная технология работает только если службы 1С и MSSQL установлены на одном физическом или виртуальном сервере.
  2. Рекомендуется перевести службу 1С в режим отладки, как не парадоксально это дает прирост производительности. По умолчанию отладка на сервере выключена.
  3. Настройка SQL сервера:

    • Нам нужен только сервер, остальные службы, которые к нему относятся и, возможно, кто-то ими пользуется, только тормозят работу. Останавливаем и отключаем такие службы как: FullText Search (у 1С собственный механизм полнотекстового поиска), Integration Services и т.д.
    • Устанавливаем максимально отведенное серверу количество памяти. Это необходимо для того, чтобы sql-сервер рассчитывал на этот объем и чистил память заблаговременно.
    • Устанавливаем максимальное количество потоков (Maximum worker threads) и выставляем повышенный приоритет сервера (Boost priority).

Этап 3. Настройка рабочей базы данных

После того, как сервер СУБД и 1С:Предприятия оптимизированы, переходим к настройкам баз. Если база еще не развернута из.dt файла, и вы знаете примерный ее размер, то первичному файлу размер инициализации лучше сразу указать «>=» размера базы, но это дело вкуса, он все равно вырастет при развертке. А вот Автоувеличение размера надо обязательно указать: примерно по 200 МБ на базу и по 50 МБ на лог, т.к. значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать. Также хранение файла базы и файла лога лучше указать на разных физических дисках или RAID группах, если используется RAID массив, и ограничить разрастание лога. Рекомендуется выносить файл Tempdb на высокоскоростной массив, так как СУБД к нему довольно часто обращается.

Этап 4. Настройка регламентных заданий

Регламентные задания создаются довольно просто с помощью Maintenance Plan в разделе Management, используя графические инструменты, поэтому подробно описывать, как это делается не будем. Остановимся на том, какие операции необходимо выполнять для повышения производительности.

  • Дефрагментацию индексов и обновление статистики нужно производить ежедневно, т.к. если фрагментированность индексов > 25%, это резко снижает производительность сервера.
  • Дефрагментация и обновление статистики - делается быстро и не требует отключения пользователей. Также рекомендуется делать ежедневно.
  • Полная реиндексация – делается с блокировкой БД, рекомендуется делать хотя бы раз в неделю. Естественно, после полной переиндексации сразу же делается дефрагментация индексов и обновление статистики.

В итоге, с помощью тонких настроек системы, SQL сервера и рабочей базы, нам удалось повысить производительность на 46%. Замеры были проведены с помощью инструмента 1С КИП и с помощью теста Гилева. Последний показал 25,6 единиц против 17,53 которые были изначально.

Краткий вывод

  1. Производительность 1С не сильно зависит от частоты ОЗУ. При достижении достаточного ее объема дальнейшее наращивание памяти не имеет смысла, так как не приводит к увеличению производительности.
  2. Производительность 1С не зависит от видеокарты.
  3. Производительность 1С не зависит от дисковой подсистемы при условии, что не происходит превышения очереди чтения или записи дисков. Если установлены SATA диски и у них не превышена очередь, то установка SSD не приведет к повышению производительности.
  4. Производительность довольно сильно зависит от частоты процессора.
  5. При грамотной настройке операционной системы и MSSQL-сервера возможно добиться увеличения производительности 1С на 40-50% без каких-либо материальных затрат.

ВНИМАНИЕ! Очень важный момент! Все замеры были выполнены на тестовой базе с использованием теста Гилева и инструментов 1С КИП. Поведение реальной базы с реальными пользователями может отличаться от полученных результатов. Например, в тестовой базе мы не обнаружили зависимости производительности от видеокарты и объема ОЗУ. Данные выводы достаточно сомнительны и в реальных условиях эти факторы могут оказывать существенное влияние на производительность. При работе с конфигурациями, использующими управляемые формы, видеокарта важна и мощный графический процессор ускоряет работу с точки зрения прорисовки интерфейса программы, визуально это проявляется в более быстрой работе 1С.

Ваша 1С работает медленно? Закажите ИТ-обслуживание компьютеров и серверов специалистами компании EFSOL с многолетним стажем или перенесите свою 1С на мощный и отказоустойчивый виртуальный сервер 1С .

Системная интеграция. Консалтинг