1C v 8.2: Ускорение работы путем переноса кеша и временных файлов пользователей на RAM диск

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

RAM диск - технология позволяющая хранить данные в оперативной как на блочном устройстве (диске), может быть реализована как на уровне железа так и программно, в нашем случае используется программа RAMDisk. Скачать программу можно с офсайта или отсюда (пароль: tmie.ru).

После установки софтинки появляется диск B размером 10% от объема оперативной памяти, туда и будем переносить кеш и временные файлы.

1. Перенос кеша пользователя.

Для переноса кеша требуется выполнить 3 команды:

1. Удаление папки с кешем (по умолчанию: %USERPROFILE%\AppData\Roaming\1C\1Cv82)

rd /s /q "<Путь к папке на жестком диске>"

2. Создание папки на RAM диске:

mkdir "<Путь к папке на RAM диске>"

3. Создание символьной ссылки на папку RAM диска:

mklink /j "<Путь к папке на жестком диске>" "<Путь к папке на RAM диске>"

Данную процедуру нужно проделать для каждого пользователя. Проще всего написать батник вида:


mkdir B:\Users\1c\user1
rd /s /q "C:\Users\user1\AppData\Roaming\1C\1Cv82"
mklink /j "C:\Users\user1\AppData\Roaming\1C\1Cv82" "B:\Users\1c\user1"
mkdir B:\Users\1c\user2
rd /s /q "C:\Users\user2\AppData\Roaming\1C\1Cv82"
mklink /j "C:\Users\user2\AppData\Roaming\1C\1Cv82" "B:\Users\1c\user2"
mkdir B:\Users\1c\user3
rd /s /q "C:\Users\user3\AppData\Roaming\1C\1Cv82"
mklink /j "C:\Users\user3\AppData\Roaming\1C\1Cv82" "B:\Users\1c\user3"


Следует понимать что содержимое RAM диска находится в оперативной памяти и исчезает при выключении\перезагрузке сервера. Не обнаружив папку на диске B 1с выдаст ошибку: "Ошибка при выполнении файловой операции '<Путь к папке с кешем>'" и работать не будет. Поэтому при загрузке сервера каждый аз нужно выполнять создание папок на RAM диске:

mkdir "<Путь к папке на RAM диске>"

Пример батника:


mkdir B:\Users\1c\user1
mkdir B:\Users\1c\user2
mkdir B:\Users\1c\user3


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

gpedit.msc -> Конфигурация компьютера -> Конфигурация Windows -> Автозагрузка.

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

/N"<имя пользователя 1С>"

в дополнительные параметры запуска. Или строчки:

AdditionalParameters=/N"<имя пользователя 1С>" в файл

C:\Users\<Имя пользователя>\AppData\Roaming\1C\1CEStart\ibases.v8i

2. Перенос временных файлов пользователя.

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

Способ 1 Аналогично переносу кеша, только папка будет другой (по умолчанию: %USERPROFILE%\AppData\Local\Temp).

Способ 2. Изменение переменных среды.

Мой компьютер -> Свойства -> Дополнительно -> Переменные среды.

меняем значение %USERPROFILE%\AppData\Local\Temp на B:\Temp

Ту же самую операцию можно сделать импортом файла реестра:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Environment]
"TEMP"="B:\\Temp"
"TMP"="B:\\Temp"


Скачать reg файлик можно отсюда.

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

 
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.50 [1 Голос]

Комментарии   

 
0 #1 Sergei_T 13.12.2015 11:59
Спасибо! Действительно есть прирост по скорости
Цитировать
 

Добавить комментарий