2,6K подписчиков
В этой статье я рассмотрю вопросы связанные с производительностью Microsoft SQL Server в виртуальной среде на примере гипервизора Proxmox и способы её повысить. С какими проблемами можно столкнуться в плане производительности SQL сервера: Повышение производительности достигается изменением следующих параметров и настроек: 1. Первое и самое основное - это проверка Shared Memory, если 1С и MSSQL на одной машине: 2. Блокировка страниц в памяти Решается отключением для учетной записи из под которой работает служба SQL параметра Блокировка страниц в памяти...
1 год назад
720 подписчиков
Как часто тормозит 1С на Вашем предприятии – раз в день или почти каждый час? Возможно, во время работы выскакивают ошибки? В этой статье мы расскажем, как провести ускорение работы файловой базы 1С. Покажем, почему Ваша система учета подвисает, показывает ошибки или отказывается работать. Поделитесь этой статьей с тем, кто работает на 1С или только задумался о внедрении 1С. Он скажет Вам спасибо)) И подпишитесь на наш ТГ-канал "О внедрении и поддержке 1С без ошибок", где мы пишем о потребностях, болях и ошибках бизнеса при автоматизации на 1С, публикуем кейсы готовых внедрений и решений...
6 месяцев назад
9,3K подписчиков
✔ Расскажите про методы увеличения производительности СУБД?

СУБД очень часто становится «узким местом» в производительности веб‑приложений, влияющим на общее быстродействие и устойчивость к высоким нагрузкам.

Масштабирование «железа» и адекватная настройка

• Первое, что стоит сделать, если скорость работы базы данных не удовлетворяет требованиям, это проверить адекватность настройки СУБД относительно имеющихся ресурсов, а также убедиться, что при проектировании БД были учтены используемые запросы. Если, например, для СУБД работает с настройками «из коробки», а при обработке запросов не используются индексы, то надо не масштабировать СУБД, достаточно просто откорректировать конфигурацию работы сервера баз данных и обновить схему используемой базы данных под профиль нагрузки.
• Иногда также проще увеличить выделение ресурсов под сервер баз данных — количество оперативной памяти и скорость работы дисковой подсистемы оказывают существенное воздействие на скорость работы СУБД. Нередко даже небольшое увеличение RAM и переход на SSD увеличивает производительность в разы.

Масштабирование через партиционирование, репликацию и шардинг

В момент, когда даже корректно настроенный сервер баз данных на достаточно мощном железе уже недостаточно хорошо справляется с нагрузками, производится масштабирование при помощи партиционирования, репликации и шардинга. Далее рассмотрим эти способы увеличения производительности СУБД.

Партиционирование (partitioning)
Партиционирование — это разбиение таблиц, содержащих большое количество записей, на логические части по неким выбранным администратором критериям. Партиционирование таблиц делит весь объем операций по обработке данных на несколько независимых и параллельно выполняющихся потоков, что существенно ускоряет работу СУБД. Для правильного конфигурирования параметров партиционирования необходимо, чтобы в каждом потоке было примерно одинаковое количество записей.

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

Репликация (replication)
Репликация — это синхронное или асинхронное копирование данных между несколькими серверами. Ведущие серверы часто называют мастерами (master), а ведомые серверы — слэйвами (slave). Более политкорректные современные названия — Лидер и Фолловер (leader & follower).

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

Например, создание нескольких дополнительных slave‑серверов позволяет снять с основного сервера нагрузку и повысить общую производительность системы, а также можно организовать слэйвы под конкретные ресурсоёмкие задачи и таким образом, например, упростить составление серьёзных аналитических отчётов — используемый для этих целей slave может быть нагружен на 100%, но на работу других пользователей приложения это не повлияет.

Шардинг (sharding)
Шардинг — это прием, который позволяет распределять данные между разными физическими серверами. Процесс шардинга предполагает разнесения данных между отдельными шардами на основе некого ключа шардинга. Связанные одинаковым значением ключа шардинга сущности группируются в набор данных по заданному ключу, а этот набор хранится в пределах одного физического шарда. Это существенно облегчает обработку данных.

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

11 месяцев назад