1с tempdb на ram диск

MS SQL. Tempdb на ramdisk?

2. Использую отдельный SSD диск для tempdb. 100% (1)
1. Использую RAM диск для tempdb. 0% (0)
3. Tempdb лежит вместе со всеми базами. 0% (0)
4. Автор, иди в .. школу. 0% (0)

Всего мнений: 1

Во
«в 8.9 раз быстрей операции с времяннками. но мне лучше не верить 😉»

И да, чел этот — Лустин Алексей.

(0) Все как всегда — «все врут». Если люди, предлагающие это, сразу в своих стратьях давали анализ изменения производительности, этой темы не было бы =)

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

You may be able to put the tempdb database on specialty subsystems,
such as RAM disks, solid state, or other high speed implementations
that cannot be used for other databases. However, the key factors
presented in the “More Information” section must be considered when
you evaluate these options.

Источник

Перемещение базы данных TEMPDB

TEMPDB представляет собой системную базу данных Microsoft SQL Server, в которой хранятся временные таблицы, созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB. Однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций.

При работе 1С:Предприятия 8 в режиме клиент-сервер широко используются временные таблицы . Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY , UNION , DISTINCT и т.п.

Проблема

В процессе работы 1С:Предприятия 8 возможно значительное увеличение размера базы данных TEMPDB. Если размер диска, на котором расположена база данных TEMPDB, окажется недостаточным, работа 1С:Предприятия 8 может завершиться аварийно.

Решение

Если эта проблема проявляется регулярно, то рекомендуется переместить TEMPDB на другой диск большего размера.

Эту операцию можно выполнить следующим способом:

  • определить логические имена файлов базы данных TEMPDB (колонка «NAME» результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду:

  • изменить месторасположение файлов базы данных TEMPDB с помощью команды ALTER DATABASE . Для этого нужно в Query Analyzer выполнить следующую последовательность команд:

  1. Перезапустить Microsoft SQL Server.

Более подробное описание и рекомендации по использованию этих команд можно найти в документации по Microsoft SQL Server.

Источник

Перенос данных на рам-диск (или более быстрый диск)

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

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

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

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

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

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

rd /s /q «C:\Users\user1\AppData\Roaming\1C\1Cv82»
rd /s /q «C:\Users\user1\AppData\Local\1C\1cv8»

mklink /j «C:\Users\user1\AppData\Roaming\1C\1Cv82» «B:\Users\1c\user1»
mklink /j «C:\Users\user1\AppData\Roaming\1C\ 1cv8 » «B:\Users\1c\user1»

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

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

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

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

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

Некоторые приложения RAM-дисков http://www.gilev.ru/ram-disk/ позволяют создавать каталоги автоматом.

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

/N» »

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

AdditionalParameters=/N» » в файл

Размещать каталог C:\Users\ AppData\Roaming\1C\1cv8 на рам-диске надо продуманно, так как там хранятся различные настройки.

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

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

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

Каталоги
С:\Temp
C:\Windows\Temp
общесистемных временных файлов также могут быть использованы 1С и их можно переносить на РАМ-диск, но делать надо это острожно, с учетом других приложений на сервере.

3. Перенос журнала регистрации

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

Путь размещения лучше всего посмотреть через ключ D запуска сервера 1С.
Пример размещения C:\Program Files\1cv8\srvinfo\reg_1541\ad4b6360-d5be-4ddf-b55c-4af1496443f2\1Cv8Log

4. Перенос сеансовых данных.

При большом количестве пользователей есть смысл кэшировать сеансовые данные. Подробней здесь http://www.gilev.ru/introsd/ .
Путь размещения лучше всего посмотреть через ключ D запуска сервера 1С.
Пример размещения C:\Program Files\1cv8\srvinfo\reg_1541\snccntx10790324-1e9b-4e2e-bbdc-6d02b2fffd9e

5. если вы используете сверхбыстрые диски nvme (особенно pci 4.0)

Лучше сразу инсталлировать туда сервер 1С (и кластер), субд (MS SQL Server и т.п.), файлы баз данных, логи баз данных, файлы tempdb для MS SQL или pg_xlog/pg_wal для PostgreSQL, также перенести профили пользователей, temp операционной системы.

Все вместе эти файлы не должны занимать более 50% ёмкости SSD.

Источник

Оптимизация сервера для работы с 1С

Ненавижу 1С. Здравствуйте. Когда-то я писал статью:

С тех пор уже многое изменилось, вышли новые версии MSSQL и Windows. Некоторые советы потеряли свою актуальность. Освежим эту статью, уже с конкретными тестами производительности.

Сегодня мы будем оптимизировать физический сервер. Конфигурация тестового стенда:

  • Аппаратная часть
    • Сервер HP ProLiant DL360 Gen9.
    • Два процессора Intel Xeon CPU E5-2650 v4 @ 2.20GHz
    • 256 ГБ оперативной памяти с частотой 2400 МГц
    • Аппаратный RAID контроллер Smart Array P440ar Controller с батарейкой
      • RAID1 из двух HDD под операционную систему
      • RAID1 из двух SSD под базы данных
      • RAID5 из четырёх HDD под всё остальное
  • Программная часть
    • Операционная система Windows Server 2016
    • 1C 8.3
    • MSSQL 2019

1С и MSSQL установлены на одном и том же сервере. Базы данных размещены на SSD массиве. На сервер установлены последние прошивки, все настройки BIOS — по умолчанию.

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

Перед началом работ по оптимизации выполним тест TPC-1C.

И получаем результат: 3.41 попугая. Этот результат не просто плох, он даже хуже. С такими результатами сервер нельзя использовать для 1С. Давайте оптимизируем.

Аппаратная оптимизация

Настроим железо. Каждая марка сервера может настраиваться по-своему, я буду настраивать HP ProLiant DL360 Gen9. Перезагружаем сервер.

Обращаем внимание на профиль рабочей нагрузки. По умолчанию он Balanced Power and Performance. Баланс между производительностью и энергоэффективностью. Нам нужна максимальная производительность. Нажимаем F9 для входа в BIOS.

System Configuration → BIOS/Platform Configuration (RNSU) → Power Management. Устанавливаем Power Profile в Maximum Performance.

System Configuration → BIOS/Platform Configuration (RNSU) → Power Management → Advanced Power Option. Устанавливаем Collaborative Power Control в Disabled. У меня уже так и стояло.

System Configuration → BIOS/Platform Configuration (RNSU) → Performance Options. Устанавливаем Intel(R) Turbo Boost Technology в Enabled. У меня уже так и стояло.

Сохраняем изменения F10 и перезагружаем сервер.

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

Ещё раз выполним тест TPC-1C и посмотрим чего мы добились.

И получаем результат: 5.17 попугаев. Это лучше чем было, но всё равно плохо. Два попугая добавили, но сервер использовать для 1С всё ещё нельзя.

Программная оптимизация

Применим настройки операционной системы и MSSQL для 1С, которые я делал в предыдущей статье.

Установка последнего Service Pack и Cumulative Update

На текущий момент нужно обновиться до CU 15.

Обязательно нужно сделать.

Выравнивание разделов

Рекомендуют выравнивать сектора дисков по границе 1024Кб. Эта рекомендация устарела. Операционная система теперь сама выравнивает раздел как нужно для дисков более 4 ГБ.

Эту настройку не применяем.

Форматирование с размером блока 64Кб

Рекомендуют форматировать файловую систему для БД с размером блока 64Кб.

Стандартный размер кластера (лучше использовать это название) в файловой системе NTFS:

ёмкость до 16 Тб — 4 килобайта
ёмкость от 16 до 32 Тб — 8 килобайт
ёмкость от 32 до 64 Тб — 16 килобайт
ёмкость от 64 до 128 Тб — 32 килобайта
ёмкость от 128 до 256 Тб — 64 килобайта

У меня SSD диск объёмом 1.7 Тб, переформатирую.

Database instant file initialization

Рекомендуют включить возможность Database instant file initialization для пользователя, от которого запущена служба Microsoft SQL Server. Вот только при установке MSSQL 2019 я эту галку уже ставил.

Обратите внимание на галку Grand Perform Volume Maintenance Task privilege to SQL Server Database Engine Service. Полезная штука для оптимизации производительности. Настройка влияет на файл данных. Когда файл автоматически вырастает, то новый кусок заполняется нулями, в этот момент SQL может тормозить. Instant File Initialization (IFI) позволяет отключить это зануление.

Lock pages in memory

Рекомендуют установить разрешение на Lock pages in memory (блокировку страниц в памяти) для пользователя, от которого запущена служба Microsoft SQL Server. Эта политика Windows определяет, какие учетные записи могут сохранять данные в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске.

  1. Запускаем Local Group Policy Editor:
  2. Слева выбираем Local Computer Policy, Computer Configuration, Windows Settings, Security Settings, Local Policies, User Rights Assignment.
  3. Тыкаем в Lock pages in memory.

  • Видим, что политика не настроена. Можно добавить сюда пользователя, от имени которого работает SQL Server, я просто добавляю сюда группу Administrators.
  • Эту настройку применяем. Нужно учитывать, что потребление оперативки возрастёт.

    Power Option: High performance

    По умолчанию план электропитания в Windows Server 2016 — Balanced. Переключаем план на High performance.

    Индексация файлов

    Отключаем индексацию файлов на SSD диске.

    Делаем это на всякий случай. Служба индексации не установлена, но, вдруг, кто-то установит.

    Сжатие содержимого

    Рекомендуют проверить, что галка, отмеченная на картинке выше, снята. Имеется в виду папка, где лежат файлы БД. По умолчанию она снята — рекомендация не нужна.

    Настройка памяти

    Да, память для MSSQL нужно настраивать. По умолчанию сиквел жрёт всё что может, системе начинает не хватать. Как итог — тормоза. Нужно выделить SQL серверу строго определённое количество памяти и пусть не рыпается. Это позволить избежать конкуренции за ресурсы.

    Настройка процессора

    Расположение файлов данных

    Файлы данных и так были на SSD, не меняю.

    Перенести tempdb в RAM

    А вот это нужно сделать.

    Столкнулся с проблемой и решил её:

    При создании RAM диска не используем индексацию файлов.

    Установить параметр Max degree of parallelism = 1

    Устанавливаю по просьбе разработчиков 1С. Хотя считаю, что лучше ставить половину выделенных для SQL сервера процессоров.

    Прирост файлов БД

    Меняем дефолтные настройки прироста размера файлов данных и лога.

    По умолчанию прирост 10%, это никуда не годится. Если база 500 гигабайт, то одномоментно отобранные 50 Гб места могут негативно сказаться на работе.

    Ставим прирост 100 Мб. Естественно, на базу tempdb тоже.

    Флаги трассировки

    4199 — включает исправления оптимизатора из фиксов.

    1118 — использовать разные страницы памяти.

    Проверка статусов флагов трассировки:

    Запускаем SQL Server Configuration Manager. SQL Server Services. SQL Server — правой кнопкой свойства. Вкладка Startup Parameters. Добавляем -T1118 и -T4199.

    Для применения потребуется перезапустить SQL сервер.

    Сетевые протоколы

    Протокол Named pipes необходимо отключить в SQL Server Configuration Manager. Поскольку SQL сервер и 1С сервер находятся на одном сервере, то протокол TCP/IP тоже отключаем.

    Разбить tempdb на несколько файлов по количеству процессоров

    Это неверная рекомендация. Если вы хотите разбить tempdb на несколько файлов, то формула следующая:

    • Если у вас меньше 8 процессоров, то делайте столько файлов, сколько процессоров.
    • Если у вас 8 и более процессоров, то делайте 8 файлов.

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

    Проверка

    Основные настройки сделали. Перезагружаем сервер.

    Ещё раз выполним тест TPC-1C и посмотрим чего мы добились.

    И получаем результат: 13.85 попугаев. Это значительно лучше чем было, уже не плохо, а удовлетворительно. Использовать сервер для 1С уже можно. Но хочется большего.

    Дополнительная оптимизация

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

    Антивирус

    Вспоминаем про то, что в Windows Server 2016 появился встроенный антивирус. Давайте отключим его на дисках с базами данных.

    Windows Settings → Update & security.

    Windows Defender → Exclusions → Add an exclusion.

    • E:\ — диск с базами данных
    • R:\ — RAM диск с базой tempdb

    Ещё раз выполним тест TPC-1C и посмотрим чего мы добились.

    И получаем результат: 32.89 попугаев. Это хорошо. Использовать сервер для 1С однозначно можно. Ай да Windows Defender, вот подстава-то. Можно вообще его снести. По той же самой причине не стоит устанавливать на сервер браузер Google Chrome и прочее ПО с собственным антивирусом на борту.

    Заключение

    Мы настроили аппаратный сервер HP ProLiant DL360 Gen9 для работы с 1С. Оптимизация программной и аппаратной части помогла повысить производительность системы в 10 раз.

    Однопоточный синтетический тест 1С от Гилёва TPC-1C показывает результат «Хорошо», 32.89 баллов, что является прекрасным показателем для сервера с процессорами Intel Xeon CPU E5-2650 v4 @ 2.20GHz.

    В процессе работы были выполнены дополнительные действия, отключены лишние службы и настройки системы. Исправлена ошибка Event ID 10016. Но данные действия не повлияли на результат тестирования, поэтому о них я не стал писать.

    Если у кого-нибудь есть ещё кейсы по разгону, пишите.

    Источник

    Читайте также:  Dvd диск срок хранения
    Поделиться с друзьями
    Шинбург