🖥️ Windows + MS SQL Server – сбор параметров и диагностика ← На главную
⚠️ Внимание: Команды PowerShell требуют запуска от имени Администратора. Для sqlcmd необходимо подключение к SQL Server с правами sysadmin.
🗂️ Тип конфигурации 1С: Влияет на расход RAM сервера приложений (БП: ~2 ГБ/польз., УТ/ЗУП: ~2.5 ГБ/польз., ERP/КА: ~3.5 ГБ/польз.)
⚡ Результат теста Гилёва (TPC-1C): (оп/с – условных операций в секунду)
ПараметрКоманда PowerShell / sqlcmdЗначениеНорма / примечание
👥 Активных пользователей (пик) оцените по журналу 1С ключевой параметр
💾 Размер всех БД (ГБ) sqlcmd -Q "SELECT CAST(SUM(CAST(size AS bigint)*8)/1024.0/1024 AS DECIMAL(10,1)) FROM sys.master_files WHERE database_id>4" -W влияет на кэш
⚡ Интенсивность нагрузки анализ типовых операций тяжёлая +40% ресурсов
🖥️ Логических ядер CPU (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors для 1С+MSSQL ≥4 ядер
📈 Загрузка CPU (%) (Get-CimInstance Win32_Processor | Measure-Object -Property LoadPercentage -Average).Average <70% в пик
💿 Общий RAM (ГБ) [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory/1GB,0) ≥16 ГБ для малых БД
🧠 Свободно RAM (ГБ) [math]::Round((Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory/1024/1024,1) >10% от общего
🔄 Используемый pagefile (ГБ) [math]::Round((Get-CimInstance Win32_PageFileUsage).CurrentUsage/1024,1) 0 – идеал, >2 – проблема
💽 Очередь диска (avg) (Get-Counter '\PhysicalDisk(_Total)\Avg. Disk Queue Length').CounterSamples.CookedValue
Если ошибка на Windows 10/11: используйте Диспетчер задач → Производительность → диск и введите значение вручную. Для восстановления счетчиков: lodctr /r (требует админа)
<2 – норма; ≥2 – высокая очередь. Для Windows Server команда работает, для клиентских ОС – через Диспетчер задач.
💾 Латентность диска (мс) (Get-Counter '\PhysicalDisk(_Total)\Avg. Disk sec/Transfer').CounterSamples.CookedValue * 1000
Если ошибка на Windows 10/11: оцените визуально в Диспетчере задач → Производительность → диск (время отклика). Для восстановления счетчиков: lodctr /r (требует админа)
NVMe <2 мс, SSD <10 мс, HDD <20 мс. Для Windows Server команда работает, для клиентских ОС – через Диспетчер задач.
🖥️ Тип дискового массива Get-PhysicalDisk | Select FriendlyName,MediaType,BusType | Format-Table Влияет на пороги латентности
📊 SQL Server Buffer cache hit % sqlcmd -Q "SELECT ROUND((a.cntr_value*1.0/b.cntr_value)*100,2) FROM sys.dm_os_performance_counters a JOIN sys.dm_os_performance_counters b ON a.object_name=b.object_name WHERE a.counter_name='Buffer cache hit ratio' AND b.counter_name='Buffer cache hit ratio base'" -W >98% – отлично
📈 Page Life Expectancy (сек) sqlcmd -Q "SELECT cntr_value FROM sys.dm_os_performance_counters WHERE counter_name='Page life expectancy' AND object_name LIKE '%Buffer Manager%'" -W >300 с – норма, >1000 – отлично
🐢 Медленные запросы sqlcmd -Q "SELECT TOP 5 total_elapsed_time/execution_count/1000 AS avg_ms, text FROM sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_sql_text(sql_handle) ORDER BY avg_ms DESC" -W требуют индексов/статистики
🌐 Сетевые ошибки Get-NetAdapterStatistics | Select-Object Name, OutboundErrors, InboundErrors
(посмотрите на наличие ненулевых ошибок)
должны быть 0
⚙️ Подбор сервера на планируемую нагрузку
💡 Расширенные рекомендации (Windows + MS SQL Server)
Антивирус: Добавьте каталоги данных SQL Server (.mdf, .ldf, .ndf), рабочие каталоги 1С, а также tempdb в исключения. Сканирование этих файлов в реальном времени критически снижает производительность.
tempdb: Разместите tempdb на отдельном NVMe-диске. Создайте несколько файлов данных tempdb (рекомендуется: min(количество ядер CPU, 8) файлов одинакового размера). Включите флаг трассировки TF 1117 и TF 1118.
Max Server Memory: Всегда ограничивайте. Оставьте для ОС: 4 ГБ при ≤16 ГБ RAM, 10% при >32 ГБ (минимум 4 ГБ). Пример: при 64 ГБ RAM → Max Server Memory = 57 ГБ.
MAXDOP (степень параллелизма): Для OLTP-нагрузки 1С установите MAXDOP = 1 или 2. 1С плохо параллелит запросы, и высокий MAXDOP может привести к деградации производительности. Рекомендуем MAXDOP = 1, при необходимости – 2. Cost Threshold for Parallelism = 50.
Регламентные задания: Обслуживание индексов (reorganize/rebuild), обновление статистики, резервное копирование – только в нерабочее время через SQL Server Agent.
Дисковая подсистема сервера приложений: Для сервера 1С достаточно SSD (SATA) объёмом от 100 ГБ. RAID 1 – для отказоустойчивости. Производительность диска на этом узле не критична, основная нагрузка на ввод-вывод ложится на SQL Server.
Разделение серверов: При 30+ пользователях разделите сервер 1С и SQL Server. При 80+ – кластер серверов 1С (2+ узла).
Высокая доступность: AlwaysOn Availability Groups – для чтения/записи (не требует shared storage). FCI – для отказоустойчивого экземпляра (требует shared storage: SAN, S2D).