Производительность в 1С (ч. 1)

Когда мы оптимизируем производительность, речь всегда идет об оборудовании.

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

Процессор и производительность в 1С

Основная задача – это вычисления и расчет, формулы, алгоритмы, циклы и сортировка.

Курс 1С: Эксперт. Производительность и оборудование
Производительность и оборудование. Процессор.

Наши приоритеты

  1. Избегать циклы
  2. Избегать сортировки
  3. Избегать сложные вычисления, кэшировать результаты.

Где лучше вычислять: в запросе или в цикле после получения результата запроса?

  1. Если есть возможность вычислить в запросе, лучше в запросе.
  2. Если можно обойтись без сортировки, то лучше без нее.

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

Какие параметры мы мониторим

  1. Загруженность процессора
  2. Очередь к процессору (не более 2).

Оперативная память и производительность в 1С

Основная задача – это быстрый доступ к данным, т.к. чтение из  оперативки в тысячи раз быстрее. Это второе по скорости чтения/записи данных оборудование после препроцессорного кэша.

Оперативка отвечает за все, что кэшируется и НЕ скидывается на жесткий диск. Но важный нюанс – это RAM на виртуальном сервере, т.к. он может быть без физического доступа к самой памяти, а реализован через жесткий диск (виртуальная оперативка).

RAM разбивается на страницы по 4Кб и эти страницы перемещаются, выделяются, резервируются и т.д. Если какие-то области памяти заняты, но долго не используются, то они скидываются на жесткий диск в виртуальную (swap-файл).

Курс 1С: Эксперт. Производительность и оборудование. Оперативная память.
Производительность и оборудование. Оперативная память.

Когда оперативка заканчивается, ОС скидывает образ  RAM на жесткий диск (swap-файл). Т.е. идет так называемое скидывание страниц с данными на жесткий диск, что в свою очередь крайне замедляет работу ОС и выполнение операций + добавляет нагрузку и на сам жесткий диск.

Курс 1С: Эксперт. Производительность и оборудование. Swap file
Производительность и оборудование. Swap file

Основные проблемы

  • Утечка памяти – это когда область RAM выделяется, но по окончании операции не высвобождается, тем самым разрастается. Такое бывает из-за циклических ссылок, использования процедур в циклах.
  • Фрагментация – это когда невозможно выделить непрерывный блок области RAM, потому что выполняется слишком интенсивное выделение и освобождение областей.

Наши приоритеты

  1. Стараться использовать оперативку, а не жесткий диск.
  2. Не допускать утечек.
  3. Контролировать ошибки, связанные со страницами.
  4. Не использовать вызов процедур в циклах.

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

В целом если нет утечек, то с RAM проблем практически не бывает, потому что если ее не хватает, то ее достаточно легко и не дорого масштабировать/добавить.

Какие параметры мы мониторим:

  1. Количество свободной памяти
  2. Количество страниц, которые скидываются на жесткий диск
  3. Количество страниц с ошибками
  4. На 32 битных ОС могут быть фрагментации адресного пространства.
Данная тема подробно рассматривается в пакете видео-курса "Секреты 1С: Эксперта" Шаг 1. Занятие 01-01. Знакомство с 1С.
Курс 1С: Эксперт. Производительность и оборудование. Процессор и RAM.
Производительность и оборудование. Процессор и RAM.

КОНСТАНТИН ЕФИМОВ
Комментарии и вопросы