Как ускорить 1С — Протокол Shared Memory

Ускоряем 1С

Будет смешно, если я напишу о том — Зачем нам нужна быстрая 1С? Поэтому сразу перейдём к делу.

Итак, существует два больших лагеря администраторов 1С (Касаемо связки Сервер 1С — Сервер баз данных MS SQL):

  • Первые считают: Серверы 1C и MS SQL должны быть физически расположены на одном хосте (Сервере/Компьютере/Вычислительной машине/ЭВМ в конце концов)))).
  • Вторые считают: Серверы 1C и MS SQL должны быть физически расположены на разных хостах (Серверах/Компьютерах/Вычислительных машинах).

Сразу скажу — Правы и те другие. Нельзя однозначно ответить на вопрос — А как лучше? ОГРОМНОЕ количество факторов оказывают своё влияние на оправданность выбора той или иной схемы (Нагрузка, мощность/архитектура физического сервера/серверов, топология сети и т.д.).

Не буду томить читателя, поэтому сразу выражу своё мнение — 1С Сервер и MS SQL сервер должны быть расположены на одной физической машине.

Хотя бы только потому, что «единая экосистема центра данных 1С» понятнее, легче администрируется… Плюс существует одно ОГРОМНОЕ преимущество при такой схеме — мы можем использовать протокол Shared Memory.

Далее о Shared Memory

В режиме работы, задаваемом по умолчанию, Microsoft SQL Server и сервер приложений «1С:Предприятия» работают друг с другом только через TCP/IP.

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

Но все меняется, когда серверы находятся на одной вычислительной системе: лучше и быстрее использовать оперативную память для обмена данными, используя протокол Shared Memory (общая память). Этот протокол позволяет добиться увеличения скорости обмена данными между серверами за счет отсутствия передачи данных по сети, причём прирост производительности может составлять от 10 до 15%. Особенно заметно ускорение на операциях с частыми вызовами сервера.

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

В других средствах межпроцессового взаимодействия (IPC) обмен информацией между процессами проходит через ядро, что приводит к переключению контекста между процессом и ядром, т.е. к потерям производительности…

Настраиваем Shared Memory в 1С и MS SQL

Что нужно для успешной реализации:

  1. 1С Предприятие выше 8.2.17.
  2. «Сервер 1С» и MS SQL находятся на одном «хосте» (один ПК или Сервер).
  3. Подключение «Сервера 1С» с СУБД установлено через имя хоста (Не IP адрес)!

Сначала проверим, вдруг уже работаем по Shared Memory! ))).

Способ 1

Используя SQL Server Management Studio (SSMS) выполним такой запрос:

или такой запрос:

2-1c-shared-memory Как ускорить 1С - Протокол Shared Memory

Если видим в колонке «program_name» — 1СV83 Server, а напротив Shared Memory, значит уже работает протокол Shared Memory!

Если там «TCP» – значит, Shared Memory не работает!

1-shared-memory-proverka Как ускорить 1С - Протокол Shared Memory

Способ 2

Используя SQL Profiler

  • Заходим в базу 1С (для установления соединения с СУБД).
  • Запускаем SQL Profiler и подключаемся к нашему серверу СУБД.
  • Включаем сбор события ExistingConnection, выполняя следующее:
  1. На закладке «Выбор событий» включаем флаги «Показать все столбцы» и «Показать все события».
  2. Выбираем класс событий «Sessions» и включаем событие «ExistingConnection».
  3. По кнопке «Фильтры столбцов» устанавливаем фильтр на имя приложения.

4-1c-shared-memory Как ускорить 1С - Протокол Shared Memory

При трассировке увидим следующее:

5-1c-shared-memory Как ускорить 1С - Протокол Shared Memory

В нижней части окна должна отображаться надпись: «network protocol: LPC», расшифровывается как «Local Procedure Call».

Это говорит о том, что протокол Shared Memory включен и используется.

Включаем Shared Memory:

На Сервере 1С

На Сервере 1С (Утилита администрирования Сервера 1С) находим в свойствах информационной базы «Сервер баз данных».

1c-server-1 Как ускорить 1С - Протокол Shared Memory

Если там стоит IP вместо имени сервера, тогда пишем либо: localhost или просто имя «хоста» сервера с вкладки «Мой компьютер» -> «Свойства».

1c-server-2 Как ускорить 1С - Протокол Shared Memory

На Сервере MS SQL

  • Запускаем Диспетчер конфигурации SQL Server.
  • Производим следующую настройку SQL Native Client – Клиентские протоколы – Общая память – Включено = Да, нажимаем Ok. (Порядок = 1).
  • Перезапускаем службу SQL сервера.
  • Проверяем работу Shared Memory, как описано выше.

 

1-1c-shared-memory Как ускорить 1С - Протокол Shared Memory

При этом, отключение протокола TCP/IP, необязательно.

Некоторые источники отмечают, что данный протокол не начинал работать, пока в качестве сервера СУБД не прописали localhost для информационной базы «1С:Предприятия».

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

Войти с помощью: