Советы по автоматизации. Тормоза на файловой базе - как избежать (из недавнего опыта) Ускорение работы 1с 8.3 файловая

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

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

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

Потребление ресурсов, первый взгляд

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

Для тестирования мы взяли две виртуальные машины под управлением Windows Server 2012 R2 и Windows 8.1 соответственно, выделив им по 2 ядра хостового Core i5-4670 и 2 ГБ оперативной памяти, что соответствует примерно средней офисной машине. Сервер разместили на RAID 0 массиве из двух , а клиент на аналогичном массиве из дисков общего назначения.

В качестве подопытных баз мы выбрали несколько конфигураций Бухгалтерии 2.0, релиза 2.0.64.12 , которую затем обновили до 3.0.38.52 , все конфигурации запускались на платформе 8.3.5.1443 .

Первое, что обращает на себя внимание, это выросший размер информационной базы "тройки", причем существенно выросший, а также гораздо большие аппетиты к оперативной памяти:

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

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

После применения выбранных действий база резко "похудела", став даже меньше "двойки", которую тоже никто никогда не оптимизировал, также немного уменьшилось потребление ОЗУ.

В последствии, после загрузки новых классификаторов и справочников, создания индексов и т.п. размер базы вырастет, в целом базы "тройки" больше баз "двойки". Однако более важно не это, если вторая версия довольствовалась 150-200 МБ оперативной памяти, то новой редакции нужно уже полгигабайта и из этого значения следует исходить, планируя необходимые ресурсы для работы с программой.

Сеть

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

Что происходит при запуске файловой базы 1С по сети? Клиент скачивает во временные папки достаточно большое количество информации, особенно если это первый, "холодный", запуск. На 100 Мбит/с мы ожидаемо упремся в ширину канала и загрузка может занять значительное время, в нашем случае около 40 секунд (цена деления графика - 4 сек).

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

Как можно заметить из графиков, Бухгалтерия 2.0 загружается при любой скорости сети вдвое быстрее, переход со 100 Мбит/с на 1 Гбит/с позволяет ускорить время загрузки в четыре раза. Разницы между оптимизированной и неоптимизированной базами "тройки" в данном режиме не наблюдается.

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

Здесь уже интереснее, оптимизированная база "тройки" в 100 Мбит/с сети работает с такой же скоростью, как и "двойка", а неоптимизированная показывает вдвое худший результат. На гигабите соотношения сохраняются, неоптимизированная "тройка" также вдвое медленнее "двойки", а оптимизированная отстает на треть. Также переход на 1 Гбит/с позволяет сократить время проведения в три раза для редакции 2.0 и в два раза для 3.0.

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

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

Из проведенных тестов становится очевидно, что сеть не является узким местом для новых конфигураций, а управляемое приложение работает даже быстрее обычного. Также можно рекомендовать переход на 1 Гбит/с если для вас критичны тяжелые задачи и скорость загрузки баз, в остальных случаях новые конфигурации позволяют эффективно работать даже в медленных 100 Мбит/с сетях.

Так почему же 1С тормозит? Будем разбираться дальше.

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

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

Несмотря на относительно большое количество операций ввода-вывода в секунду (IOPS) - 913, длина очереди не превысила 1,84, что для двухдискового массива очень хороший результат. Исходя из него можно сделать предположение, что зеркала из обычных дисков будет достаточно для нормальной работы 8-10 сетевых клиентов в тяжелых режимах.

Так нужен ли SSD на сервере? Лучше всего ответить на этот вопрос поможет тестирование, которое мы провели по аналогичной методике, сетевое подключение везде 1 Гбит/с, результат также выражен в относительных значениях.

Начнем со скорости загрузки базы.

Может быть кому-то и покажется удивительным, но на скорость загрузки базы SSD на сервере не влияет. Основной сдерживающий фактор здесь, как показал предыдущий тест, пропускная способность сети и производительность клиента.

Перейдем к перепроведению:

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

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

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

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

Влияние SSD на скорость работы локально установленной 1С мы разбирали в , многое из сказанного справедливо и для работы в сетевом режиме. Действительно, 1С достаточно активно использует дисковые ресурсы, в том числе и для фоновых и регламентных задач. На рисунке ниже можно видеть, как Бухгалтерия 3.0 довольно активно обращается к диску в течении порядка 40 секунд после загрузки.

Но при этом следует осознавать, что для рабочей станции где активная работа производится с одной - двумя информационными базами ресурсов производительности обычного HDD массовой серии вполне достаточно. Приобретение SSD способно ускорить некоторые процессы, но радикального ускорения в повседневной работе вы не заметите, так как, например, загрузка будет ограничиваться пропускной способностью сети.

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

Оперативная память

Несмотря на то, что оперативка сейчас неприлично дешева, многие рабочие станции продолжают работать с тем объемом памяти, который был установлен при покупке. Вот тут и подстерегают первые проблемы. Уже исходя из того, что в среднем "тройке" требуется около 500 МБ памяти можно предположить, что общего объема оперативной памяти в 1ГБ для работы с программой будет недостаточно.

Мы уменьшили память системы до 1 Гб и запустили две информационные базы.

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

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

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

Теперь уменьшим память до 1 ГБ:

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

При этом даже субъективная работа с двумя открытыми базами на системе с 1 ГБ памяти оказалась крайне некомфортной, справочники и журналы открывались со значительной задержкой и активным обращением к диску. Например, открытие журнала Реализация товаров и услуг заняло около 20 секунд и сопровождалось все это время высокой дисковой активностью (выделено красной линией).

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

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

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

Процессор

Центральный процессор без преувеличения можно назвать сердцем компьютера, так как именно он, в конечном итоге, осуществляет обработку всех вычислений. Чтобы оценить его роль мы провели еще один набор тестов, такой же, как и для оперативной памяти, уменьшив количество доступных виртуальной машине ядер с двух до одного, при этом тест выполнялся два раза с объемами памяти в 1 ГБ и 2 ГБ.

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

Выводы

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

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

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

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

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

  • Теги:

Please enable JavaScript to view the

К нам часто приходят вопросы про то что тормозит 1с, особенно при переходе на версию 1с 8.3, благодоря нашим коллегам из ООО "Интерфейс", мы подробно рассказываем:

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

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

Потребление ресурсов, первый взгляд

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

Для тестирования мы взяли две виртуальные машины под управлением Windows Server 2012 R2 и Windows 8.1 соответственно, выделив им по 2 ядра хостового Core i5-4670 и 2 ГБ оперативной памяти, что соответствует примерно средней офисной машине. Сервер разместили на RAID 0 массиве из двух WD Se, а клиент на аналогичном массиве из дисков общего назначения.

В качестве подопытных баз мы выбрали несколько конфигураций Бухгалтерии 2.0, релиза 2.0.64.12 , которую затем обновили до 3.0.38.52 , все конфигурации запускались на платформе 8.3.5.1443 .

Первое, что обращает на себя внимание, это выросший размер информационной базы "тройки", причем существенно выросший, а также гораздо большие аппетиты к оперативной памяти:

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

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

После применения выбранных действий база резко "похудела", став даже меньше "двойки", которую тоже никто никогда не оптимизировал, также немного уменьшилось потребление ОЗУ.

В последствии, после загрузки новых классификаторов и справочников, создания индексов и т.п. размер базы вырастет, в целом базы "тройки" больше баз "двойки". Однако более важно не это, если вторая версия довольствовалась 150-200 МБ оперативной памяти, то новой редакции нужно уже полгигабайта и из этого значения следует исходить, планируя необходимые ресурсы для работы с программой.

Сеть

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

Что происходит при запуске файловой базы 1С по сети? Клиент скачивает во временные папки достаточно большое количество информации, особенно если это первый, "холодный", запуск. На 100 Мбит/с мы ожидаемо упремся в ширину канала и загрузка может занять значительное время, в нашем случае около 40 секунд (цена деления графика - 4 сек).

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

Как можно заметить из графиков, Бухгалтерия 2.0 загружается при любой скорости сети вдвое быстрее, переход со 100 Мбит/с на 1 Гбит/с позволяет ускорить время загрузки в четыре раза. Разницы между оптимизированной и неоптимизированной базами "тройки" в данном режиме не наблюдается.

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

Здесь уже интереснее, оптимизированная база "тройки" в 100 Мбит/с сети работает с такой же скоростью, как и "двойка", а неоптимизированная показывает вдвое худший результат. На гигабите соотношения сохраняются, неоптимизированная "тройка" также вдвое медленнее "двойки", а оптимизированная отстает на треть. Также переход на 1 Гбит/с позволяет сократить время проведения в три раза для редакции 2.0 и в два раза для 3.0.

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

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

Из проведенных тестов становится очевидно, что сеть не является узким местом для новых конфигураций, а управляемое приложение работает даже быстрее обычного. Также можно рекомендовать переход на 1 Гбит/с если для вас критичны тяжелые задачи и скорость загрузки баз, в остальных случаях новые конфигурации позволяют эффективно работать даже в медленных 100 Мбит/с сетях.

Так почему же 1С тормозит? Будем разбираться дальше.

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

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

Несмотря на относительно большое количество операций ввода-вывода в секунду (IOPS) - 913, длина очереди не превысила 1,84, что для двухдискового массива очень хороший результат. Исходя из него можно сделать предположение, что зеркала из обычных дисков будет достаточно для нормальной работы 8-10 сетевых клиентов в тяжелых режимах.

Так нужен ли SSD на сервере? Лучше всего ответить на этот вопрос поможет тестирование, которое мы провели по аналогичной методике, сетевое подключение везде 1 Гбит/с, результат также выражен в относительных значениях.

Начнем со скорости загрузки базы.

Может быть кому-то и покажется удивительным, но на скорость загрузки базы SSD на сервере не влияет. Основной сдерживающий фактор здесь, как показал предыдущий тест, пропускная способность сети и производительность клиента.

Перейдем к перепроведению:

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

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

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

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

Влияние SSD на скорость работы локально установленной 1С мы разбирали в предыдущем материале, многое из сказанного справедливо и для работы в сетевом режиме. Действительно, 1С достаточно активно использует дисковые ресурсы, в том числе и для фоновых и регламентных задач. На рисунке ниже можно видеть, как Бухгалтерия 3.0 довольно активно обращается к диску в течении порядка 40 секунд после загрузки.

Но при этом следует осознавать, что для рабочей станции где активная работа производится с одной - двумя информационными базами ресурсов производительности обычного HDD массовой серии вполне достаточно. Приобретение SSD способно ускорить некоторые процессы, но радикального ускорения в повседневной работе вы не заметите, так как, например, загрузка будет ограничиваться пропускной способностью сети.

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

Оперативная память

Несмотря на то, что оперативка сейчас неприлично дешева, многие рабочие станции продолжают работать с тем объемом памяти, который был установлен при покупке. Вот тут и подстерегают первые проблемы. Уже исходя из того, что в среднем "тройке" требуется около 500 МБ памяти можно предположить, что общего объема оперативной памяти в 1ГБ для работы с программой будет недостаточно.

Мы уменьшили память системы до 1 Гб и запустили две информационные базы.

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

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

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

Теперь уменьшим память до 1 ГБ:

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

При этом даже субъективная работа с двумя открытыми базами на системе с 1 ГБ памяти оказалась крайне некомфортной, справочники и журналы открывались со значительной задержкой и активным обращением к диску. Например, открытие журнала Реализация товаров и услуг заняло около 20 секунд и сопровождалось все это время высокой дисковой активностью (выделено красной линией).

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

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

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

Процессор

Центральный процессор без преувеличения можно назвать сердцем компьютера, так как именно он, в конечном итоге, осуществляет обработку всех вычислений. Чтобы оценить его роль мы провели еще один набор тестов, такой же, как и для оперативной памяти, уменьшив количество доступных виртуальной машине ядер с двух до одного, при этом тест выполнялся два раза с объемами памяти в 1 ГБ и 2 ГБ.

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

Выводы

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

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

Затем следует обратить внимание на дисковую, покупка SSD вряд ли будет хорошим вложением денег, а вот заменить диск на более современный будет не лишним. Разницу между поколениями жестких дисков можно оценить по следующему материалу: Обзор двух недорогих дисков серии Western Digital Blue 500 ГБ и 1 ТБ.

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

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

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

Часть 3. Производительность 1С

Блокировки в 1С 8.3: поиск и устранение в коде, перевод на управляемые блокировки

Блокировки являются частью механизма ACID. Рассмотрим его концепцию, представленную в виде упрощенной схемы, на примере SQL SERVER

В автоматическом режиме управление блокировками осуществляется самой СУБД. При этом на MS SQL сервере появлялись такие побочные эффекты, как блокировки пустых таблиц и приграничного диапазона данных (уровень Serializable), что создавало дополнительные проблемы в многопользовательской работе. Для решения этих проблем фирма 1С создала управляемые блокировки.

1С Управляемые блокировки

Механизм блокировок был вынесен на сервер 1С, а на уровне СУБД изоляция снизилась до минимума. На MS SQL уровень изоляции был понижен до Read Committed с механизмом разделяемых блокировок на платформе 8.2 и механизмом версионирования строк на платформе 8.3 (так называемый Read Committed Snapshot Isoliation). Точнее, это одноименное свойство базы данных и два режима работы Read Committed, зависящие от этого параметра.

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

СУБД Вид блокировки Уровень изоляции транзакций Чтение вне транзакции
Автоматические блокировки
Файловая База Данных Таблиц Serializable Dirty read
MS SQL Server Записей Dirty read
IBM DB2 Записей Repetable Read или Serializable Dirty read
PostgreSQL Таблиц Serializable Consistent reading
Oracle Database Таблиц Serializable Consistent reading
Управляемые блокировки
Файловая База Данных Таблиц Serializable Dirty read
MS SQL Server 2000 Записей Read Commited Dirty read
MS SQL Server 2005 и выше Read Commited Snapshot Consistent reading
IBM DB2 до версии 9.7 Записей Read Commited Dirty read
IBM DB2 версии 9.7 и выше Записей Read Commited Consistent reading
PostgreSQL Записей Read Commited Consistent reading
Oracle Database Записей Read Commited Consistent reading

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


Блокировки 1С. Пользователь не будет ждать на блокировках, произойдет ускорение работы 1С, если придерживаться определенных правил:

  • Продолжительность транзакций должна быть максимально сокращена по времени. Проведение в транзакции длительных расчетов в 100% случаев приведет к блокировке при работе на OLTP системе.
  • Исключены длительные внешние операции в рамках транзакции, например, отправка и принятие подтверждений по электронной почте, работа с файловой системой и другие дополнительные действия. Все операции должны быть вынесены в отложенные короткие задания.
  • Максимально оптимизированы запросы.
  • Создание индексов должно производиться только по мере необходимости, для обеспечения оптимальной производительности запросов в пределах приложения.
  • Минимизированы включения в кластерный индекс часто обновляемых столбцов. Обновления столбца/ов кластерного ключа индекса требует блокировки, как на кластерном индексе, так и на всех некластеризованных индексах (так как их строка-локатор содержит ключ кластерного индекса).
  • По возможности создан и используется покрывающий индекс для сокращения времени выборки данных.
  • Использование самого низкого уровня изоляции транзакциями, что потребует перехода на режим управляемых блокировок.

Инструменты для диагностики блокировок:

  • Технологический журнал;
  • Центр управления производительностью из инструментария 1С;
  • Облачные сервисы Гилева;

Ниже приведен пример мониторинга системы сервисом Гилева. Общая длительность блокировок ~15 часов. Более 400 активных пользователей. После принятия решений и оптимизации – время таймаутов меньше минуты, а количество блокировок сократилось в ~670раз.

Было:



Стало:


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

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



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


Фрагмент 1

//Блокировки в терминах 1C SELECT * FROM dbo.ReturnLockName1C(DEFAULT,DEFAULT) as t Where TableName1C IS NOT NULL ORDER BY t.Resource

Применение данного механизма позволяет получить полную информацию об имеющихся блокировках на текущий момент. Если в отчете одни S-блокировки, проблема может заключаться в длительном запросе или запросах. Для установления причины и места их появления в коде можно пойти разными путями: использовать объекты DMO SQL-сервера (но учитываем, что данные из них сбрасываются после перезагрузки сервера) или настроить Data Collector, сохранив данные мониторинга в таблицах на определенное время. Главное, получить тексты проблемных запросов.

Использование объектов DMO SQL-сервера

Выводим дату старта сервера для понимания актуальности данных. Разбиваем пакет по рейтингу чтения (физического, логического, нагрузке на процессор). В этом случае используются основные данные из sys.dm_exec_query_stats. Текст запроса переводим в термины 1С. Если по тексту запроса можно понять контекст вызова, то осталось посмотреть план запроса, найти проблемные операторы и понять, что можно сделать.

Фрагмент 2

//время запуска SELECT sqlserver_start_time FROM sys.dm_os_sys_info; //Toп запросов no физическому чтению SELECT TOP (50) (total_physical_reads) AS Итого_физическое_чтение,

Определение проблемных запросов в результате сбора Data Collector

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


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

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

Пример проблемного запроса и образец настройки технологического журнала:



Оптимизация запросов как возможность ускорить 1С 8.3


Последствия неоптимальных запросов могут проявляться в виде длительных проведений документов, мучительно долгого формирования отчетов, «зависания» системы и прочих неприятных событий.

При работе с запросами НЕЛЬЗЯ:

  • Соединять таблицы с подзапросами;
  • Соединять обычные таблицы с виртуальными;
  • Использовать логического «ИЛИ» в условиях;
  • Использовать подзапросы в условиях соединения;
  • Получать данные через точку от полей составного типа без ключевого слова «Выразить».

При работе с запросами МОЖНО:

  • Создать индексы в условиях запроса, полях соединения, агрегации и сортировки;
  • Фильтрацию виртуальных таблиц необходимо производить с использованием параметров отбора.

Использование индексов и их влияние на качество производительности системы

Очень много написано про индексы, о необходимости их использования и влияние на качество работы системы. Постараемся разобраться в тонкостях «устройства» индексов, вариантах применения и преимуществах перед обычными таблицами.

Индексирование является важной частью ядра СУБД. Отсутствующие индексы, или наоборот, их излишнее количество, влияют на скорость выборки, модификацию, добавление и удаление данных. Рассмотрим индексирование на примере наиболее распространенной СУБД компании Microsoft.

Для общего понимания, как это работает, рассмотрим подробности устройства механизмом хранения данных, которые мы обычно представляем в виде таблицы (например, Excel).

Единицей физического хранения данных является страница - модуль размером в 8 Кбайт, принадлежащий только одному объекту (например, таблице или индексу). Страница является наименьшей единицей для чтения и записи. Страницы собраны в экстенты. Экстент состоит из 8 последовательных страниц. Страницы экстента могут принадлежать как одному, так и нескольким объектам. Если страницы принадлежат нескольким объектам, экстент называется «смешанным».

Ее содержимое можно посмотреть ниже:





Получив представление, как устроена единица хранения данных на диске, поговорим подробнее о таблицах и индексах.

По умолчанию, если не использовать специальных операторов T-SQL, пустая таблица создается в виде «кучи» – простого набора страниц и экстентов. Данные в «куче» не имеют никакого логического порядка. Ядро SQL Server отслеживает принадлежность страниц и экстентов к определенному объекту с помощью специальных системных страниц, называемых «картами распределения индекса» (Index Allocation Map). Каждая таблица или индекс имеет по крайней мере одну страницу IAM, называемую «первой страницей IAM».


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


Основные индексы, которые использует платформа 1С

Фрагмент 3

Мифы и реальность:

Миф первый: кластерные индексы и таблица данных – это две разные сущности, хранящиеся отдельно друг от друга.

Миф второй: кластерных индексов в одной таблице может быть много.

Скачал программу для оптимизации СУБД. Создал рекомендованные индексы. Скорость выборки увеличилась на 50%. Изменение и добавление данных замедлилось в 7раз.

Кластеризованный (кластерный) индекс

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

Фрагмент 4

SELECT NAME, TYPE, TYPE_DESC FROM sys.indexes WHERE object_id = OBJECT_ID("ДанныеТрассировки")

Некластеризованный индекс

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

Можно добавить неключевые столбцы на конечный уровень некластеризованного индекса и обойти существующее ограничение на ключи индексов (900 байт и 16 ключевых столбцов), выполняя полностью индексированные запросы.

После добавления некластерного индекса, произошло копирование данных, и появился еще один объект:



Фрагмент 5

SELECT NAME, TYPE, TYPE_DESC FROM sys.indexes WHERE object_id = OBJECT_ID("ДанныеТрассировки")

Схема кластерного индекса после получения его из кучи в виде сбалансированного дерева:



Схема некластерного индекса, полученного из кластерной таблицы (обратите внимание, столбец row locator имеет ключ кластерного индекса):



Влияние индексов на производительность запросов

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

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

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

Инструкция T-SQL, которая выполняет действие по блокированию индекса:

//Блокируем отдельный индекс в таблице -ALTER INDEX _Reference22_ByPredefinedIDNotUniq ON _Reference22 DISABLE; //Включаем нужный индекс -ALTER INDEX _Reference22_ByPredefinedIDNotUniq ON _Reference22 REBUILD;

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

Определение необходимых или лишних индексов для ускорения выполнения запросов

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

Помощник по настройке ядра СУБД (Database Engine Tuning Advisor) анализирует базы данных и составляет рекомендации по оптимизации производительности запросов. Его можно использовать для выбора и создания оптимальных наборов индексов, не обладая экспертным уровнем понимания структуры баз данных или внутренних процессов SQL Server. Помощник по настройке ядра СУБД позволяет выполнять следующие задачи:

  • Устранение неполадок производительности конкретного проблемного запроса;
  • Настройка большого набора запросов в одной или нескольких базах данных.

Объекты DMO (dynamic management objects), к которым относятся динамические административные представления и функции динамического управления. Например, инструкцией T-SQL можно получить все индексы, которые не использовались с момента последнего запуска сервера.



Фрагмент 6

WITH vl as (SELECT OBJECT_NAME(I.object_id) AS objectname, I.name AS indexname, I.index_id AS indexid FROM sys.indexes AS I INNER JOIN sys.objects AS O ON O.object_id = I.object_id WHERE I.object_id > 100 AND I.type_desc = "NONCLUSTERED" AND I.index_id NOT IN (SELECT S.index_id FROM sys.dm_db_index_usage_stats AS S WHERE S.object_id=I.object_id AND I.index_id=S.index_id AND database_id = DB_ID("Имя_базы’))) SELECT objectname,T1.NameTable1C, indexid, indexname FROM vl OUTER APPLY dbo.ReturnTableName1C(objectname) as T1 ORDER BY objectname, indexname;

Инструкция, с помощью которой можно создавать необходимые индексы, которые рекомендует ядро СУБД:



Фрагмент 7

SELECT T1.NameTable1C as Наименование_таблицы_1C, "CREATE INDEX " + " ON "
Оптимизатор запросов во время генерации плана выполнения запроса выявляет необходимость создания недостающего индекса. Эту информацию он сохраняет в XML ShowPlan. Т.к. планы запросов хешируются и инструкции сохраняются (до следующего перезапуска сервера), то их можно извлечь, обработать и получить готовые инструкции создания необходимых индексов для любого плана выполнения в кэше. Стоит обратить внимание на частоту выполнения запроса: чем она выше, тем более актуальными являются результаты выполнения запроса и, соответственно, собранные показатели. Если запрос выполнялся единожды, его результаты не столь показательны.


Фрагмент 8

CROSS APPLY query_plan.nodes(’//StmtSimple") AS stmt(stmt_xml) WHERE stmt_xml.exist("QueryPlan/Missinglndexes") = 1) SELECT TOP 30 DatabaseName as Наименование_базы, TableName as Наименование_таблицы, T1.NameTable1C as Наименование_таблицы_1С, equality_columns as Столбцы_сравнения, include_columns as Столбцы_для_включения,

Фрагмент 9

USE [Имя_базы] GO CREATE NONCLUSTERED INDEX ON .[_Document497] ([_Fld12771_TYPE],[_Fld12771_RTRef]) INCLUDE ([_Date_Time],[_Fld12771_RRRef],[_Fld12782RRef],[_Fld12784]) GO Некоторые особенности индексирования по агрегатным полям и полям сортировки.

Создание индекса на столбцах, указанных в предложении «УПОРЯДОЧИТЬ ПО» (ORDER BY), помогает оптимизатору запроса быстро организовать результирующий набор данных, так как значения столбцов отсортированы в индексе заранее. Внутренняя реализация механизма «СГРУППИРОВАТЬ ПО» (GROUP BY) также сначала сортирует значения столбцов для быстрой группировки необходимых данных.

При использовании типовых рекомендаций стоит проверять результат до и после оптимизации. Приведем пример использования логического объединения «ИЛИ» и его альтернативы (для устранения проблемы типовыми рекомендациями) – методики изменения запроса через синтаксис «ОБЪЕДИНИТЬ ВСЕ».

Сам запрос 1С с «ИЛИ»:

ВЫБРАТЬ Код, Наименование, Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Код = "000000004" ИЛИ Контрагенты.Код = "0074853" ИЛИ Контрагенты.Код = "000000024" ИЛИ Контрагенты.Код = "009679294" ИЛИ Контрагенты.Код = "0074742" ИЛИ Контрагенты.Код = "000000104";

Модификация запроса с «ОБЪЕДИНИТЬ ВСЕ»:

ВЫБРАТЬ Код, Наименование, Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Код = "000000004" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Код, Наименование, Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Код = "0074853" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Код, Наименование, Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Код = "000000024" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Код, Наименование, Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ

Фактический план запроса (для удобства отображения и сравнения производительности, запросы перехвачены и выполнены в SSMS):


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

Основная цель написания статьи — чтобы не повторять очевидные нюансы тем администраторам (и программистам), которые еще не набрали опыта с 1С.

Вторичная цель, если у меня будут какие-то недочеты, — на Инфостарте мне это укажут быстрее всего.

Неким стандартом "де факто" уже стал тест В. Гилева . Автор на своем сайте дал вполне понятные рекомендации, я же просто приведу некоторые результаты, и прокомментирую наиболее вероятные ошибки. Естественно, что результаты тестирования на Вашем оборудовании могут отличаться, это просто для ориентира, что должно быть и к чему можно стремиться. Сразу хочу отметить, что изменения надо делать пошагово, и после каждого шага проверять, какой результат это дало.

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

Исходные данные:

Тестируемый компьютер, основной подопытный кролик: HP DL180G6, в комплектации 2*Xeon 5650, 32 Gb, Intel 362i , Win 2008 r2. Для сравнения, сопоставимые результаты в однопоточном тесте показывает Core i3-2100. Оборудование специально взял не самое новое, на современном оборудовании результаты заметно лучше.

Для тестирования разнесенных серверов 1С и SQL, сервер SQL: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.

Для проверки 10 Gbit сети использовались Intel 520-DA2 адаптеры.

Файловая версия . (база лежит на сервере в расшаренной папке, клиенты подключаются по сети, протокол CIFS/SMB). Алгоритм по шагам:

0. Добавляем на файловый сервер тестовую базу Гилева в ту же папку, что и основные базы. С клиентского компьютера подключаемся, запускаем тест. Запоминаем получившийся результат.

Подразумевается, что даже для старых компьютеров 10 летней давности (Pentium на 775 socket ) время от нажатия на ярлык 1С:Предприятие до появления окна базы должно пройти меньше минуты. (Celeron = медленная работа).

Если у Вас компьютер хуже, чем пентиум на 775 socket с 1 гб оперативной памяти, то я Вам сочувствую, и комфортной работы на 1С 8.2 в файловой версии Вам будет добиться тяжело. Задумайтесь или об апгрейде (давно пора), или о переходе на терминальный (или web, в случае тонких клиентов и управляемых форм) сервер.

Если компьютер не хуже, то можно пинать администратора. Как минимум — проверить работу сети, антивируса и драйвера защиты HASP.

Если тест Гилева на этом этапе показал 30 "попугаев" и выше, но рабочая база 1С все равно работает медленно - вопросы уже к программисту.

1. Для ориентира, сколько же может "выжать" клиентский компьютер, проверяем работу только этого компьютера, без сети. Тестовую базу ставим на локальный компьютер (на очень быстрый диск). Если на клиентском компьютере нет нормального ССД, то создается рамдиск. Пока, самое простое и бесплатное — Ramdisk enterprise .

Для тестирования версии 8.2 вполне достаточно 256 мб рамдиска, и! Самое главное. После перезагрузки компьютера, с работающим рамдиском, на нем должно быть свободно 100-200 мб. Соответственно, без рамдиска, для нормальной работы свободной памяти должно быть 300-400 мб.

Для тестирования версии 8.3 рамдиска 256 мб хватит, но свободной оперативной памяти надо больше.

При тестировании нужно смотреть на загрузку процессора. В случае, близком к идеальному(рамдиск), локальная файловая 1с при работе загружает 1 ядро процессора. Соответственно, если при тестировании у вас ядро процессора загружено не полностью — ищите слабые места. Немного эмоционально, но в целом корректно, влияние процессора на работу 1С описано . Просто для ориентира, даже на современных Core i3 с высокой частотой вполне реальны цифры 70-80.

Наиболее часто встречающиеся ошибки на этом этапе.

а) Неправильно настроенный антивирус. Антивирусов много, настройки для каждого свои, скажу лишь то, что при грамотной настройке ни веб, ни касперский 1С не мешают. При настройках "по умолчанию" - может отниматься примерно 3-5 попугаев (10-15%).

б) Режим производительности. Почему-то на это мало кто обращает внимания, а эффект - самый весомый. Если нужна скорость - то делать это обязательно, и на клиентских и на серверных компьютерах. (Хорошее описание у Гилева . Единственный нюанс, на некоторых материнских платах если выключить Intel SpeedStep то нельзя включать TurboBoost).

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

Включать режим производительности можно (и желательно) в двух местах:

Через BIOS. Отключить режимы C1, C1E, Intel С-state (C2, C3,C4). В разных биосах они называтся по разному, но смысл один. Искать долго, требуется перезагрузка, но если сделал один раз - потом можно забыть. Если в BIOS все сделать правильно, то скорости добавится. На некоторых материнских платах настройками BIOS можно сделать так, что режим производительности Windows роли играть не будет. (Примеры настройки BIOS у Гилева). Эти настройки в основном касаются серверных процессоров или "продвинутых" BIOS, если Вы такое у себя не нашли, и у вас НЕ Xeon - ничего страшного.

Панель управления - Электропитание - Высокая производительность. Минус - если ТО комптютера давно не проводилось, он будет сильнее гудеть вентилятором, будет больше греться и потреблять больше энергии. Это - плата за производительность.

Как проверить, что режим включен. Запускаем диспетчер задач - быстродействие - монитор ресурсов - ЦП. Дожидаемся, пока процессор ничем не занят.

Это - настройки по умолчанию.

В BIOS C-state включены ,

режим энергопотребления сбалансированный


В BIOS C-state включены , режим высокой производительности

Для Pentium и Core на этом можно остановиться,

из Xeon еще можно выжать немного "попугайчиков"


В BIOS C-state выключены , режим высокой производительности.

Если не использовать Turbo boost - именно так должен выглядеть

сервер, настроенный на производительность


А теперь цифры. Напомню: Intel Xeon 5650, ramdisk. В первом случае тест показывает 23.26, в последнем - 49.5. Разница - почти двухкратная. Цифры могут варьироваться, но соотношение остается практически таким же для Intel Core.

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

в) Turbo Boost. Сначала надо понять, поддерживает ли Ваш процессор эту функцию, например . Если поддерживает, то можно еще вполне легально получить немного производительности. (вопросы разгона по частоте, особенно серверов, касаться не хочу, делайте это на свой страх и риск. Но соглашусь с тем, что повышение Bus speed со 133 до 166 дает очень ощутимый прирост как скорости, так и тепловыделения)

Как включать turbo boost написано, например, . Но! Для 1С есть некоторые нюансы(не самые очевидные). Сложность в том, что максимальный эффект от turbo boost проявляется тогда, когда включены C-state. И получается примерно такая картинка:

Обратите внимание, что множитель - максимальный, частота Core speed - красивейшая, производительность - высокая. Но что же будет в результате с 1с?

Множитель

Core speed (частота), GHz

CPU-Z Single Thread

Тест Гилева Ramdisk

файловый вариант

Тест Гилева Ramdisk

клиент-сервер

Без Turbo boost

C-state off, Turbo boost

53.19

40,32

C-state on, Turbo boost

1080

53,13

23,04

А в итоге получается, что по тестам производительности ЦПУ вариант с множителем 23 впереди, по тестам Гилева в файловой версии - производительность с множителем 22 и 23 одинаковая, а вот в клиент-серверной - вариант с множителем 23 ужас ужас ужас (даже, если C-state выставить на уровень 7, то все равно медленнее, чем с выключенным C-state). Поэтому рекомендация, проверьте оба варианта у себя, и выберите из них лучший. В любом случае, разница 49,5 и 53 попугая - достаточно значительная, тем более это без особых усилий.

Вывод - turbo boost включать обязательно. Напомню, что недостаточно включить пункт Turbo boost в биосе, надо еще посмотреть и другие настройки (BIOS: QPI L0s, L1 - disable, demand scrubbing - disable, Intel SpeedStep - enable, Turbo boost - enable. Панель управления - Электропитание - Высокая производительность). И я бы все-таки (даже для файловой версии) остановился на варианте, где c-state выключен, хоть там множитель и меньше. Получится как-то так...

Достаточно спорным моментом является частота памяти. Например вот частота памяти показывается как очень сильно влияющая. Мои же тесты - такой зависимости не выявили. Я не буду сравнивать DDR 2/3/4, я покажу результаты изменения частоты в пределах одной линейки. Память одна и та же, но в биосе принудительно ставим меньшие частоты.




И результаты тестирования. 1С 8.2.19.83, для файлового варианта локальный рамдиск, для клиент-серверного 1С и SQL на одном компьютере, Shared memory. Turbo boost в обоих вариантах выключен. 8.3 показывает сопоставимые результаты.

Разница - в пределах погрешности измерений. Я специально вытащил скрины CPU-Z чтобы показать, что со сменой частоты меняются и другие параметры, те же CAS Latency и RAS to CAS Delay, что нивелирует изменение частоты. Разница будет тогда, когда физически будут меняться модули памяти, с более медленных на более быстрые, но и там цифры не особо значительные.

2. Когда с процессором и памятью клиентского компьютера разобрались, переходим к следующему очень важному месту - сети. Про тюнинг сети написаны многие тома книг, есть статьи на Инфостарте ( , и другие), здесь я на эту тему заострять внимание не буду. Перед началом тестирования 1С просьба убедиться, что iperf между двумя компьютерами показывает всю полосу (для 1 гбит карточек - ну хотя бы 850 мбит, а лучше 950-980), что выполнены советы Гилева . Потом - самой простой проверкой работы будет, как это ни странно, копирование одного большого файла (5-10 гигабайт) по сети. Косвенным признаком нормальной работы на сети в 1 гбит будет средняя скорость копирования 100 мб/сек, хорошей работы — 120 мб/сек. Хочу обратить внимание, что слабым местом (в том числе) может быть и загруженность процессора. SMB протокол на Linux достаточно плохо параллелится, и во время работы он вполне спокойно может «скушать» одно ядро процессора, и больше не потреблять.

И еще. С настройками по умолчанию windows клиент лучше всего работает с windows server (или даже windows рабочая станция) и протоколом SMB/CIFS, linux клиент (debian, ubuntu остальные не смотрел) лучше работает с linux и NFS (с SMB тоже работает, но на NFS попугаи выше). То, что при линейном копировании вин-линукс сервер на нфс копируется в один поток быстрее, еще ни о чем не говорит. Тюнинг debian для 1С - тема отдельной статьи, я к ней еще не готов, хотя могу сказать, что в файловой версии получал даже немного бОльшую производительность, чем Win вариант на этом же оборудовании, но с postgres при пользователях свыше 50 у меня пока еще все очень плохо.

Самое главное , о чем знают "обжегшиеся" администраторы, но не учитывают начинающие. Есть очень много способов задать путь к базе 1с. Можно сделать \\server\share, можно \\192.168.0.1\share, можно net use z: \\192.168.0.1\share (и в некоторых случаях такой способ тоже сработает, но далеко не всегда) и потом указывать диск Z. Вроде бы все эти пути указывают на одно и то же место, но для 1С есть только один способ, достаточно стабильно дающий нормальную производительность. Так вот, правильно делать надо так:

В командной строке (или в политиках, или как Вам удобно) - делаете net use DriveLetter: \\server\share. Пример: net use m: \\server\bases . Я специально подчеркиваю, НЕ IP адрес, а именно имя сервера. Если сервер по имени не виден - добавьте его в dns на сервере, или локально в файл hosts. Но обращение должно быть по имени. Соответственно - в пути к базе обращаться к этому диску (см картинку).

А теперь я на цифрах покажу, почему именно такой совет. Исходные данные: Карты Intel X520-DA2, Intel 362, Intel 350, Realtek 8169. ОС Win 2008 R2, Win 7, Debian 8. Драйвера последние, обновления применены. Перед тестированием я убедился, что Iperf дает полную полосу (кроме 10 гбит карточек, там получилось только 7.2 Gbit выжать, позже посмотрю почему, тестовый сервер еще не настроен как надо). Диски разные, но везде SSD(специально вставил одиночный диск для тестирования, больше ничем не нагружен) или рейд из SSD. Скорость 100 Mbit получена путем ограничения в настройках адаптера Intel 362. Разницы между 1 Gbit медь Intel 350 и 1 Gbit оптика Intel X520-DA2 (полученной путем ограничения скорости адаптера) не обнаружено. Максимальная производительность, турбобуст выключен (просто для сопоставимости результатов, турбобуст для хороших результатов добавляет чуть меньше 10%, для плохих - вообще может никак не сказаться). Версии 1С 8.2.19.86, 8.3.6.2076. Цифры привожу не все, а только самые интересные, чтобы было с чем сравнивать.

Win 2008 - Win 2008

обращение по ip адресу

Win 2008 - Win 2008

Обращение по имени

Win 2008 - Win 2008

Обращение по ip адресу

Win 2008 - Win 2008

Обращение по имени

Win 2008 - Win 7

Обращение по имени

Win 2008 - Debian

Обращение по имени

Win 2008 - Win 2008

Обращение по ip адресу

Win 2008 - Win 2008

Обращение по имени

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1С 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1С 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Выводы (из таблицы, и из личного опыта. Касается только файловой версии):

По сети можно получить вполне нормальные цифры для работы, если эту сеть нормально настроить, и правильно прописать путь в 1С. Даже первые Core i3 вполне могут давать 40+ попугаев, что достаточно неплохо, причем это не только попугаи, в реальной работе разница тоже заметна. Но! ограничением при работе нескольких (больше 10) пользователей уже будет выступать не сеть, тут 1 Гбит еще хватит, а блокировки при многопользовательской работе (Гилев).

Платформа 1C 8.3 в разы требовательнее к грамотной настройке сети. Базовые настройки - см Гилев , но учтите, что влиять может все. Видел ускорение от того, что деинсталлировали (а не просто отключали) антивирус, от убирания протоколов типа FCoE, от смены драйверов на более старую, но microsoft certified версию (особенно касается дешевых карточек типа асусов и длинков), от убирания второй сетевой карточки из сервера. Очень много вариантов, настраивайте сеть вдумчиво. Вполне может быть ситуация, когда платформа 8.2 дает приемленые цифры, а 8.3 - в два или даже больше раз меньше. Попробуйте поиграться с версиями платформы 8.3, иногда получается очень большой эффект.

1С 8.3.6.2076 (может и более поздние, точную версию еще не искал) по сети все-таки настроить попроще, чем 8.3.7.2008. Добиться от 8.3.7.2008 нормальной работы по сети (в сопоставимых попугаях) получилось всего несколько раз, повторить для более общего случая не смог. Сильно не разбирался, но судя по портянкам от Process Explorer там запись не так идет, как в 8.3.6.

Несмотря на то, что при работе на 100Мбит сети график ее загруженности небольшой, (можно сказать что сеть свободная), скорость работы все равно гораздо меньше, чем на 1 гбит. Причина - задержки (latency) сети.

При прочих равных условиях (хорошо работающей сети) для 1С 8.2 соединение Intel - Realtek медленнее на 10%, чем Intel-Intel. А вот realtek-realtek вообще могут дать резкие проседания на ровном месте. Поэтому, если есть деньги - лучше везде держать сетевые карточки Intel, если денег нет - то Intel ставить только на сервер (ваш К.О.). Да и инструкций по тюнингу интелевых сетевых карточек в разы больше.

Настройки антивирусов по умолчанию (на примере drweb 10 версии) отнимают около 8-10% попугаев. Если настроить как надо (разрешить процессу 1cv8 делать все, хоть это и не безопасно) - скорость такая же, как и без антивируса.

Линуксовым гуру НЕ читать. Сервер с samba это здорово и бесплатно, но если на сервер поставить Win XP или Win7 (а еще лучше - серверные ОС), то в файловой версии 1с будет работать быстрее. Да, и samba и стек протоколов и настройки сети и многое многое другое в debian/ubuntu хорошо тюнингуется, но делать это рекомендуется специалистам. Нет смысла ставить линукс с настройками по умолчанию и потом говорить, что он медленно работает.

Достаточно неплохо проверять работу дисков, подключенных через net use, с помощью fio . По крайней мере будет понятно, или это проблемы с платформой 1С, или с сетью/диском.

Для однопользовательского варианта не могу придумать тесты (или ситуацию) ,где была бы видна разница между 1Гбит и 10 Гбит. Единственное, где 10Гбит для файловой версии дал результат лучше - это подключение дисков по iSCSI, но это тема отдельной статьи. Все-таки считаю, что для файловой версии 1 Гбит карточек достаточно.

Почему при 100 Мбит сети 8.3 работает заметно быстрее 8.2 - не понимаю, но факт имел место быть. Все остальное оборудование, все остальные настройки абсолютно одинаковые, просто в одном случае тестируется 8.2, а в другом - 8.3.

Не тюнингованный NFS win - win или win-lin дает 6 попугаев, в таблицу включать не стал. После тюнинга 25 получил, но нестабильно (разбег в измерениях больше 2 единиц). Пока не могу дать рекомендации по использованию windows и NFS протокола.

После всех настроек и проверок запускаем опять тест с клиентского компьютера, радуемся улучшившемуся результату (если получилось). Если результат улучшился, попугаев стало больше 30(а особенно больше 40), пользователей одновременно работает меньше 10 а рабочая база все равно тормозит - практически однозначно проблемы программиста (или Вы уже достигли пика возможностей файловой версии).

Терминальный сервер . (база лежит на сервере, клиенты подключаются по сети, протокол RDP). Алгоритм по шагам:

0. Добавляем на сервер тестовую базу Гилева в ту же папку, что и основные базы. С этого же сервера подключаемся, запускаем тест. Запоминаем получившийся результат.

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

2. Настройка сетевых карточек в случае терминального сервера практически не влияет на работу 1с. Для обеспечения "особого" комфорта, если у вас сервер выдает больше 50 попугаев можно поиграться с новыми версиями RDP протокола, просто для комфорта работы пользователей, более быстрого отклика и скроллинга.

3. При активной работе большого количества пользователей (а здесь уже можно пробовать и 30 человек на одну базу подключить, если постараться) очень желательно поставить SSD диск. Почему-то считается, что диск не особо влияет на работу 1С, но все тесты проводят с включенным на запись кэшем контроллера, что неправильно. Тестовая база маленькая, она вполне помещается в кэш, отсюда и высокие цифры. На реальных (больших) базах все будет совершенно по другому, поэтому для тестов кэш отключен.

Для примера, проверил работу теста Гилева с разными вариантами дисков. Диски ставил из того, что было под рукой, просто тенденцию показать. Разница между 8.3.6.2076 и 8.3.7.2008 небольшая(в варианте Ramdisk Turbo boost 8.3.6 выдает 56.18 а 8.3.7.2008 выдает 55.56, в остальных тестах разница еще меньше). Энергопотребление - максимальная производительность, turbo boost отключен (если не сказано иное).

Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10k

Raid 10 4x SAS 15k

Одиночный SSD

Ramdisk

Включен кэш

RAID контроллера

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1С 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1С 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18

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

Для платформы 8.2 разница в производительности между SATA и SSD вариантами - более чем в два раза. Это не опечатка. Если во время теста на САТА дисках смотреть на монитор производительности. то там явно видно "Активное время работы диска (в%)" 80-95. Да, если включить кэш самих дисков на запись скорость вырастет до 35, если включить кэш рейд контроллера - до 49 (независимо от того, какие диски тестируются в данный момент). Но это - синтетические попугаи кэша, в реальной работе при больших базах никогда не будет 100% write cache hit ratio.

Скорости даже дешевых ССД (я тестировал на Agility 3) вполне хватает для работы файловой версии. Ресурс записи - другое дело, тут смотреть надо в каждом конкретном случае, понятно, что у Intel 3700 он будет на порядок выше, но там и цена соответствующая. И да, я понимаю, что при тестировании SSD диска я тоже тестирую в бОльшей степени кэш этого диска, реальные результаты будут меньше.

Самым правильным (с моей точки зрения) решением будет выделить 2 ССД диска в зеркальный рейд для файловой базы (или нескольких файловых баз), и ничего больше туда не помещать. Да, при зеркале ССД изнашиваются одинаково, и это минус, но хотя бы от ошибок электроники контроллера хоть как-то застрахованы.

Основные плюсы ССД дисков для файлового варианта появятся тогда, когда будет много баз, и в каждой по несколько пользователей. Если баз 1-2, и пользователей в районе 10, то и SAS дисков хватит. (но в любом случае - смотреть на загрузку этих дисков, хотя бы через perfmon).

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

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

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

Клиент-серверный вариант .

Тесты проводил только на 8.2, т.к. на 8.3 все достаточно серьезно зависит от версии.

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

SQL: Xeon E5-2630

SQL: Xeon E5-2630

Fibre channel - SSD

SQL: Xeon E5-2630

Fibre channel - SAS

SQL: Xeon E5-2630

Local SSD

SQL: Xeon E5-2630

Fibre channel - SSD

SQL: Xeon E5-2630

Local SSD

1С: Xeon 5650 =

1С: Xeon 5650 =

Shared memory

1С: Xeon 5650 =

1С: Xeon 5650 =

1С: Xeon 5650 =

16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1С 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

Вроде все интересные варианты рассмотрел,если что-то интересует еще - пишите в комментария, постараюсь сделать.

САС на СХД работает медленнее, чем локальные ССД, даже несмотря на то, что у СХД большие размеры кэша. ССД и локальные и на СХД для теста Гилева работают с сопоставимой скоростью. Какой-то стандартный многопоточный тест (не только записи, а всего оборудования) кроме нагрузочного 1С из ЦУП я не знаю.

Смена сервера 1С с 5520 на 5650 дала практически удвоение производительности. Да, конфигурации серверов не совпадают полностью, но тенденцию показывает (ничего удивительного).

Увеличение частоты на сервере SQL конечно дает эффект, но не такой, как на сервере 1С, MS SQL сервер отлично умеет (если его об этом попросить) использовать многоядерность и свободную память.

Смена сети между 1С и SQL с 1 гбит на 10 гбит дает примерно 10% попугаев. Ожидал большего.

Включение Shared memory эффект все-таки дает, хоть и не 15%, как в описано. Делать обязательно, благо это быстро и просто. Если кто-то при установке дал серверу SQL именованный инстанс, то для работы 1С имя сервера надо указывать не FQDN (будет работать tcp/ip), не через localhost или просто ServerName, а через ServerName\InstanceName, например zz-test\zztest. (Иначе будет ошибка СУБД: Microsoft SQL Server Native Client 10.0: Поставщик общей памяти: Не найдена библиотека общей памяти, использующаяся для установки соединения с SQL Server 2000 . HRESULT=80004005, HRESULT=80004005, HRESULT=80004005, SQLSrvr: SQLSTATE=08001, state=1, Severity=10, native=126, line=0).

Для пользователей меньше 100 единственный смысл для разнесения на два отдельные сервера - это лицензия на Win 2008 Std (и более старые версии), которая поддерживает только 32 Гб ОЗУ. Во всех других случаях - 1С и SQL однозначно надо ставить на один сервер и давать ему побольше (хотя бы 64 Гб) памяти. Давать MS SQL меньше 24-28 Гб ОЗУ - неоправданная жадность (если Вы думате, что у Вас этой памяти ему хватает и все нормально работает - может Вам и файловой версии 1С бы хватило?)

Насколько хуже работает связка 1С и SQL в виртуальной машине - тема отдельной статьи (подсказка - заметно хуже). Даже в Hyper-V все не так однозначно...

Сбалансированный режим производительности - это плохо. Результаты вполне кореллируют с файловой версией.

В многих источниках написано, что отладочный режим (ragent.exe -debug) дает сильное понижение производительности. Ну понижает, да, но 2-3% я бы не назвал значительным эффектом.

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


Оптимизация с помощью обновления 1С

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

Многие давно пользуются возможностью автоматически обновить программу. Хотя этот вопрос легко решается и вручную для 1с Предприятие 8.3, обновление которого не доставит хлопот.

Первый шаг – скачивание последней версии платформы, которая используется в настоящий момент. Это делается либо при помощи диска ИТС, либо через веб-интерфейс, где занимаются постоянной поддержкой пользователей такой программы, как 1с Предприятие 8.3, обновление конфигурации для которой также поставляется официально.

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

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

Осталась только финальная кнопка, которая и предлагает «Установку».

Как ускорить работу 1С, если платформа тормозит

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

Обновление версии 7.7

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

  • Типовые – в данном случае предполагается, что обновление проводят и для регламентированной отчётности.
  • Типовые отраслевые конфигурации – во многом напоминают предыдущие варианты. Важно заранее ознакомиться с инструкцией, которая предлагается разработчиком. Иначе потом не разобраться, почему 1с 8.3 вылетает при обновлении.
  • Модифицированные типовые – у пользователя всегда есть возможность самому доработать приложение так, чтобы оно отвечало текущим потребностям. Ещё один вариант расширения функционала – переход на новые платформы. Например, 8-й версии.

О версии 8.0 и 8.1

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

Возможен вариант, когда внедряется новая типовая конфигурация, а потом в неё переносятся остатки из старых информационных баз.

Что касается версии 8.1, то до неё обновиться можно несколькими способами:

  1. вручную;
  2. в автоматическом режиме;
  3. обращение к специалистам компаний, предоставляющих услуги в данной сфере.

Работа с нетиповыми или модифицированными версиями

Первоначально любая конфигурация относится к типовым разработкам. Она перестаёт быть таковой, если на предприятии вносят определённые изменения. Например, во время установки. Есть два класса, которые выделяются у нетиповых конфигураций:

  1. изменённые;
  2. созданные с нуля, учитывающие потребности конкретного предприятия.

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

Актуальность конфигураций может поддерживаться следующими действиями:

  • Корректировка ошибок.
  • Расширение функционала.
  • Совершенствование.
  • Изменение 1с 8.3, не обновляется конфигурация в случае ошибок в обслуживании.

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

  • Надо помнить о том, что не все версии релизов могут подходить к текущей конфигурации.
  • Если обновления не проводились давно, возможно, придётся скачать сразу несколько файлов или архивов.
  • В списке легко понять, какая нужна версия 1с Предприятие 8.3, обновление выбирается самим пользователем.

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

Дополнительные причины торможения

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

  • Антивирус – при правильной настройке ни один антивирус не будем мешать системе, однако, если пользоваться заводскими параметрами, то производительность 1С может снижаться на 5–10%. Оптимизировать антивирус можно с помощью дополнительных настроек, убрав фоновый режим (при крайней необходимости).
  • Параметры компьютера – зачастую недостаточно мощные компьютеры приводят к сильному снижению производительности 1С. Особенное внимание необходимо уделить видеокарте, оперативной системе и процессору.

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

Как повысить скорость и удобство работы в 1С