База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как оптимизировать память SQL и 1С с 32 Гб ОЗУ для 10 пользователей?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34475
      Odineski
      Участник

      на сервере оперативной памяти 32 Гб. На sql сервер выделено 11 Гб. Для 10 пк не хватает памяти. Это нормально или надо делать оптимизацию и как?

    • #34476
      Odin — Одинэсник
      Участник

      Если на сервере 32 Гб ОЗУ, из них 11 Гб выделено под MS SQL Server, а при работе 10 пользователей 1С ощущается нехватка памяти — это повод задуматься об оптимизации, а не просто о добавлении памяти.

      Вот основные моменты и рекомендации:

      1. **Проверка распределения памяти между SQL Server и ОС/1С**
      — Из 32 Гб выделено 11 Гб под SQL Server — это примерно треть. Остальное (21 Гб) должно хватать для ОС и серверных процессов 1С.
      — Если 1С и SQL работают на одном сервере, нужно сбалансировать память так, чтобы SQL не «забирал» слишком много, но и не был ограничен слишком сильно.
      — Рекомендуется выделять SQL памяти примерно равной размеру активных данных базы (файлов БД на диске) + 10-15%. Если база небольшая, 11 Гб может быть избыточно или наоборот мало — зависит от объема данных и нагрузки.

      2. **Оптимизация настроек SQL Server**
      — Проверьте параметр **max server memory** — он должен быть установлен на 11 Гб, чтобы SQL не превышал этот лимит.
      — Установите **min server memory** для SQL, чтобы он не сбрасывал кеш слишком часто.
      — Проверьте параметр **max degree of parallelism** — для 1С рекомендуется ставить 1, чтобы избежать излишней параллельной нагрузки.
      — Включите **AWE** (Address Windowing Extensions) для 32-битных версий SQL, если используется, чтобы SQL мог использовать больше памяти.

      3. **Оптимизация настроек 1С**
      — Настройте кластер 1С: ограничьте максимальный объем памяти для рабочих процессов (rphost), чтобы они не занимали слишком много памяти.
      — Настройте интервал перезапуска рабочих процессов, чтобы избежать утечек памяти.
      — Оптимизируйте количество рабочих процессов и соединений на процесс, чтобы не создавать избыточную нагрузку.

      4. **Анализ нагрузки и запросов**
      — Проверьте, нет ли «тяжелых» или неэффективных запросов в 1С, которые вызывают чрезмерное потребление памяти и процессорных ресурсов.
      — Используйте профилирование и мониторинг SQL Server (например, SQL Profiler, Extended Events) для выявления узких мест.

      5. **Аппаратные и системные моменты**
      — Убедитесь, что файл подкачки Windows настроен корректно (рекомендуется не отключать, а настроить разумный размер).
      — Проверьте, нет ли других процессов, которые потребляют много памяти на сервере.
      — Если сервер виртуальный — проверьте выделение ресурсов гипервизором.

      6. **Рассмотрите разделение ролей**
      — Если нагрузка высокая, имеет смысл выделить отдельные серверы под SQL и под 1С, чтобы они не конкурировали за ресурсы.

      7. **Мониторинг и диагностика**
      — Используйте системные средства мониторинга (Performance Monitor, Resource Monitor) для отслеживания использования памяти, CPU, дисков.
      — Анализируйте логи 1С и SQL на предмет ошибок, связанных с памятью.

      **Итог:**
      11 Гб под SQL из 32 Гб — это не критично, но если 10 пользователей испытывают нехватку памяти, скорее всего, проблема в неправильной настройке SQL и 1С, либо в неэффективных запросах и нагрузке. Оптимизация настроек памяти, рабочих процессов 1С и анализ нагрузки помогут улучшить ситуацию.

      Рекомендую начать с:
      — Проверки и корректировки параметров max server memory в SQL Server.
      — Настройки ограничений памяти и перезапуска рабочих процессов в 1С.
      — Мониторинга нагрузки и выявления «тяжелых» запросов.

      Рекомендую посмотреть здесь:
      https://helpf.pro/faq8/view/1532.html
      https://infostart.ru/1c/articles/626919/

      Настройка памяти в MS SQL для 1С Предприятия

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.