В данном разделе будут рассмотрены некоторые моменты, касающиеся настроек, которые влияют на быстродействие работы сервера 1С.

И так, рассмотрим некоторые настройки, которые влияют на быстродействие сервера 1С в среде Windows:

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

Для решения этого, необходимо войти в Электропитание и задать высокую производительность:

Так же, для контроля, нужно войти в Настройки схемы электропитания и выбрать Изменить дополнительные параметры электропитания:

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

Это основное, что необходимо сделать в первую очередь. Т.к. этот параметр всегда по умолчанию ставится на «Сбалансированную производительность», что для сервера не есть хорошо.

Теперь небольшие настройки, касающиеся сервера баз данный MsSQL (будем считать, что в среде Windows будет работать именно он).

Запускаем SQL Server Management Studio (или SMS как его теперь называют):

Щелкаем в левой панели по серверу правой кнопкой мыши и выбираем — Свойства, переходим на вкладку Память:

Здесь задаем Максимальный размер памяти, который должен быть как минимум на 4Gb меньше того что установлено на данном сервере. Рассчитывается этот показатель всегда по разному, по этому тяжело дать общие методы, как его рассчитать. Те 4Gb, на которые уменьшен этот размер, отдаются самой системе для работы Windows. Так же нужно будет вычесть размер памяти, который (если у Вас поднят Web сервер для 1С) будет отведен для Web сервера (тут все зависит и от количества подключаемых клиентов, и от размера Ваших баз, и это все можно уже отследить только при нагрузке на Ваш сервер, так что сразу просчитать не получится).

Далее переходим на вкладку Процессоры:

и ставим галочку Поддерживать приоритет SQL Server.

Теперь переходим на вкладку Дополнительно:

Выбираем опцию Максимальная степень параллелизма выставляем в 1. Это очень сильно влияет на скорость работы сервера 1С.

Ну и на последок, когда создается база 1С, нужно что бы файл данных базы автоматически увеличивался (ну скажем) на 512Mb

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

Так же желательно каждый день проводить Очистку логов баз 1С. Для этого создаем задание — Раскрываем Агент SQL Server — щелкаем правой кнопкой мыши Задания — выбираем Создать задание:

Назовем его Очистка логов баз 1С, далее переходим на вкладку Шаги:

Здесь мы и будем создавать задания по очистке базы (для каждой отдельно):

USE "Ваша база"
ALTER DATABASE "Ваша база" SET RECOVERY SIMPLE
DBCC SHRINKFILE ("Ваша база"_log, 7);
ALTER DATABASE "Ваша база" SET RECOVERY FULL

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

DBCC SHRINKDATABASE (TEMPDB);

А теперь оптимизация скорости работы 1С путем перевода журнала работы на старый формат.

Нужно остановить службу «Агент сервера 1С:Предприятия 8.3», после чего удалить/перенести файлы нового журнала и вместо их создать чисты файл 1Cv8.lgf. После чего запустить службу «Агент сервера 1С:Предприятия 8.3».

Располагаются эти файлы чаще всего по пути C:\Program Files\1cv8\srvinfo\reg_1541:

здесь находятся папки с именами равными UUID базы, т.е. каждая папка вида xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx — это рабочая папка конкретной базы, в которой находится папка 1Cv8Log:

Вот вней то (1Cv8Log) и нужно все удалить и создать чистый (нулевой) файл 1Cv8.lgf. И так для всех баз.

Теперь об оптимизации в linux.

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

Можно создать скрипт который будет запускать максимальную производительность временно, только до перезагрузки:

#!/bin/bash
cat set_cpu_performance
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Так же можно попытаться добиться включения максимальной производительности путем следующих команд (после перезагрузки максимальная производительность остается):

sudo apt-get install cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable ondemand

Кстати, что бы проверить на каких частотах в данный момент работает Ваш процессор, дайте в терминале команду:

grep MHz /proc/cpuinfo

Для linux пока больше ни с чем, связанным с оптимизацией по 1С, не сталкивался. Но могу добавить, что проводил эксперименты по скорости работы 1С (тест Гилева). При одинаковых параметра для связки Linux+PostgreSQL и связки Windows + MsSQL , на linux тест показал лучше результат (почти на 20%). Но пока, если честно, в боевом режиме я не использовал связку Linux+PostgreSQL, и связано это в основном с тем, что время от времени (порой), на «тестовых серверах», почему то, вдруг перестает работать PostgreSQL???? Но, правда, возможно это связано с моими тестами, которые я пока провожу (экспериментирую).