![]() |
![]() |
|
Торможения отчетов и регламентных заданий Волшебник, dedmoroz777, vis, ansh15, H A D G E H O G s, АгентБезопаснойНацио, Timon1405, Страждущий, d4rkmesa, Hawk_1c, Fragster, santakomi, Crusher, LuckyStar, JohnGilbert, Гость из Мариуполя, Климов Сергей, banco, piter3, программистище, boozin, shuhard, Мультук, Vstur, dmt, Dен, denk32, Ivanich, yurikmellon2, Толич, dyevgeniy, alexxx961503, Sanchez_22, arsik, laeg, Lama12, , pv94384, evorle145, Fish, pasha_d, zippygrill, p-soft, Евгений АБ, abfm, Fedor-1971, Многолетний Апельсин, timurhv, вым, Prog_man, 2S, Zamestas, segn, obs191, craxx, MWWRuza, ivanov-i-i, nick86, zenik, proger2021, Михаил Козлов, Доминошник, formista2000, RVN, phabeZ, kir-g, SleepyHead, skafandr, mikecool, DemonShinji2
| ☑ | ||
---|---|---|---|---|
0
santakomi
22.09.25
✎
09:00
|
Здравствуйте. На БД (весом 150гб+) начали долго выполняться отчеты и проводиться некоторые операции, а также стали долго отрабатывать регламенты ("Групповое перепроведение ИПЧ", вдруг знакомо).
Проблемы тормозов совпали (?) с переведением БД из "простой" модели восстановления в "полную", с включение обрезки ЖТР MSSQL (по времени, раз в час), а также включением зеркалирования на другой, аналогичный по характеристикам, сервер (немного различается размер кластера диска с БД и ЖТР на основном и зеркальном сервере, т.к. разные диски (NVME SSD), в остальном - идентичные). Вводные: 1. ОС Windows Server 2022 2. MS SQL 2022 Enterprise 3. Версия платформы 8.3.27.1688 4. Конфигурация 1С:УНФ 8. Управление предприятием общепита, редакция 3.0 (3.0.5.184) Какие были попытки решения проблемы: 1. Пауза зеркалирования - не помогло 2. Отключение зеркалирования - не помогло 3. Перезапуск платформы - не помогло 4. Перезапуск платформы с очисткой сеансового кеша - не помогло 5. Отключение прочих БД, которые расположены на том же сервере и подключены к той же СУБД, с отключение регламентов с перезапуском СУБД и платформы - не помогло 6. Перезагрузка сервера полностью - не помогло При этом, если восстановить эту БД на другом сервере (на который осуществлялось зеркалирование) - то всё ок, показательный отчет формируется за 1-1.5 минуты, при том, что на проблемном он формируется 20-25 минут %) Финт с бекапом на проблемном, разверткой на нормальном, и обратным бекапом и разверткой на проблемном - не прокатил, результаты те же, медленно. По словам 1с-программиста, в других базах (а их рядом ещё 3) таких тормозов нет Снова перевел проблемную БД на "простую" модель восстановления в MSSQL (считай вернулся к исходному её состоянию) - также медленно. Рядом с боевой сбойной базой есть такая же, как типа демо, там проблемы воспроизводятся тоже - медленное выполнение отчетов и т.п. На этой проблемной и других БД, подключенных к этому же серверу СУБД, проводится регламенты по реорганизации индексов (если фрагментация более 5%) и перестроение индекса (если фрагментация >30%) с перестроением планов запросов по этим индексам, а также обновление статистики 2 раза в день с очисткой процедурного кеша. Параллельно, на ныне сбойный сервер (будем его называть так) также было сделано зеркалирования с зеркального сервера другой БД. После чего в логах MSSQL появились записи вида: There have been 60160 misaligned log IOs which required falling back to synchronous IO. В журнале ОС соответственно: Имеется 60416 операций ввода-вывода журнала с неверным выравниванием, что привело к необходимости возврата к синхронному вводу-выводу. Примеры сообщений выдернуты в разное время из журналов. После чего проверил параметры дисков на этих двух серверах. На сбойном параметры диска с БЖ и ЖТР такие: C:\Windows\system32>fsutil fsinfo sectorinfo E: LogicalBytesPerSector : 512 PhysicalBytesPerSectorForAtomicity : 4096 PhysicalBytesPerSectorForPerformance : 4096 FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 Выравнивание устройства : Выровнено (0x000) Выравнивание разделов на устройстве : Выровнено (0x000) Без штрафа за поиск Очистка поддерживается Не поддерживает DAX Без тонкой подготовки На нормальном такие: C:\Windows\system32>fsutil fsinfo sectorinfo E: LogicalBytesPerSector : 512 PhysicalBytesPerSectorForAtomicity : 512 PhysicalBytesPerSectorForPerformance : 512 FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 512 Выравнивание устройства : Выровнено (0x000) Выравнивание разделов на устройстве : Выровнено (0x000) Без штрафа за поиск Очистка поддерживается Не поддерживает DAX Без тонкой подготовки Вот собственно и вся разница) попытался форматированием диска Е на сбойном привести размеры соответствие - не вышло, форматированием не решается. Пишут, что особенности используемых дисков. Сейчас все зеркалирования отключены. Также добавлю, что, судя по виндовым счетчикам производительности, большой нагрузки на дисковую подсистему нет. Утилизация дисков минимальна, лишь в редкие моменты подскакивает до больших значений. TempDB MSSQL и ЖР 1С выведены на отдельный, от файлов БД и ЖТР, диск, более быстрый. Нагрузка по ЦПУ и ОЗУ (MSSQL отъедает выделенную ему память) также в норме. Уважаемое сообщество, подскажите, куда ещё можно копнуть? |
|||
1
Волшебник
23.09.25
✎
11:41
|
Пусть программист сделает замер производительности и поймёт, куда тратится время.
Может там лишних циклов понакрутили... |
|||
2
santakomi
23.09.25
✎
12:13
|
Здравствуйте. Сегодня провели замер производительности через платформу, на сбойном сервере проверочный отчет показывает общее время выполнения 450 сек (7.5. минуты), а на деле он выполняется не меньше 1200сек (20 минут), что мы фактически наблюдаем при запуске из клиента.
Чем может заниматься платформа всё неучтённое в замере производительности время?)) При этом на тестовом и эталонном серверах этот же отчет формируется за 151 и 150 сек соответственно, что, в принципе, нормальный результат. Опять же, наблюдая за нагрузкой скуля (через монитор активности) во время замеров, ожидающий процессов и блокировок не насмотрено(( Может быть существуют какие-либо параметры технического журнала 1С, которые можно включить и сбор и уже на них обратить внимание? |
|||
3
H A D G E H O G s
23.09.25
✎
12:28
|
150 секунд - это ненормальный результат, это охереть как долго. Я бы закрыл этот отчет и никогда не использовал, проклянув программистов и пользуя свой запрос в консоли, что я и так делаю, вместо ущербных типовых отчетов от 1С
|
|||
4
H A D G E H O G s
23.09.25
✎
12:30
|
А по теме - надо смотреть, что там за запрос в отчете, вдруг там через точку к ЛюбаяСсылка и mssql охеревает от левых соединений с десятками тысяч таблиц и сваливает все через lazy table spool. Соберите estimated xml plan и все станет понятно
|
|||
5
Fragster
гуру
23.09.25
✎
12:30
|
(2) запустите из отладки и сравните объем передаваемых данных. а также проверьте, процессор сервера находится в режиме performance, а не balanced
|
|||
6
Fragster
гуру
23.09.25
✎
12:32
|
(3) ну заменить на хранение консолидированных данных в РС и расчет регламентом конечно, просится, но вообще, почему нет? сотрудникам ЗП идет, все в плюсе.
|
|||
7
Fragster
гуру
23.09.25
✎
12:45
|
(4) > Соберите estimated xml plan и все станет понятно
ну типа в (0) про реорганизации и переиндексации написано, которые в т.ч. статистику обновляют, ЕМНИП. да и по дефолту авторасчет статистики уже давно включен |
|||
8
santakomi
23.09.25
✎
12:43
|
(6) Здравствуйте. Что касается режима работы процессора, Вы же об этом: GUID схемы питания: 4d166729-9479-47d6-9722-f936d0c805f1 (Максимальная производительность) ?
|
|||
9
santakomi
23.09.25
✎
13:06
|
(4) Здравствуйте. Насколько мне известно, именно в том отчете, который мы берем как мерило теста, таких ссылок нет. Но даже если и есть, то на другом (эталонном) сервере всё выполняется за вменяемое время.
Помимо данного отчета, тормоза проявляются и в регламентных заданиях, типа перепроведения документов (регламентное задание), а это типовая операция. Что касается "Соберите estimated xml plan и все станет понятно" посмотрю в эту сторону, спасибо за наводку. |
|||
10
santakomi
23.09.25
✎
12:49
|
(7) Да, автообновление статистики включено + идет обновление её два раза в день со сбросом процедурного кэша.
|
|||
11
Lama12
23.09.25
✎
12:54
|
(0) Что у вас с распараллеливанием выполнения запросов в настройках серверов СУБД? Одинаковые настройки?
|
|||
12
santakomi
23.09.25
✎
13:07
|
(11) Здравствуйте. Да, настройки MSSQL впринципе одинаковые, вплоть до расположения файлов системных БД и темпдб, ну и пользовательских, разумеется.
Если вы про параметр "Максимальная степень параллелизма", то он выставлен в 1 (как на ИТС и большинстве статей\форумов пишут) |
|||
13
Волшебник
23.09.25
✎
13:12
|
Покажите отчёт: запрос и код обработки данных
|
|||
14
santakomi
23.09.25
✎
13:27
|
(13) По ссылке код отчета и сам отчет: https://lkz51-my.sharepoint.com/:f:/g/personal/ian_nordciti_ru/ElMFw4SeYqRNoQTxWb_13esBZn6CspuRlN4vcEWFN3JvOA?e=mrAQmM
|
|||
15
Волшебник
23.09.25
✎
13:34
|
(14) Запрос громоздкий и тормозной. Нужно оптимизировать. Админу тут делать нечего
|
|||
16
H A D G E H O G s
23.09.25
✎
13:42
|
ВТ_ГрафикиДействующиеСУчетомПериодичности.ГруппаНоменклатуры = ВТ_ДоступнаяНоменклатураСклад.Папка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель
https://vk.com/video-181251284_456240764 |
|||
17
santakomi
23.09.25
✎
13:44
|
(15) Коллега-программист такое же мнение выразил. Но видите какая ситуация, ясное дело, что запрос не оптимизирован, но ранее он хоть выполнялся за вменяемое время, да и на эталонном сервере он продолжает нормально работать. А из изменений, которые были применены к БД был перевод на полную модель (что как бы маст хэв) и включение зеркалирования (что я в первом сообщении в теме расписал)
После обнаружения тормозов всё вернул на место и, более того, даже проверил с откатом на версию платформы 8.3.27.1508 (на которой тормозов не замечалось) - без толку. Что данный отчет, что регламенты - выполнение стремится к бесконечности. Временно принято решение мигрировать БД на сервер, где они нормально работает, но хотелось бы понять изначальную причину возникновения тормозов. Может подскажите, какие параметры в ТЖ 1С стоит указать и обратить на них внимание? На данный момент собираю небольшой ТЖ с такими параметрами: Подробности<?xml version="1.0"?> <config xmlns="http://v8.1c.ru/v8/tech-log <log location="F:\1C_logs\err" history="48"> <event> <eq property="name" value="ATTN"/> </event> <event> <eq property="name" value="ADMIN"/> </event> <event> <eq property="name" value="PROC"/> </event> <event> <eq property="name" value="QERR"/> </event> <event> <eq property="name" value="EXCP"/> </event> <event> <eq property="name" value="EXCPCNTX"/> </event> <event> <eq property="name" value="CLSTR"/> </event> <event> <eq property="name" value="TLOCK"/> <ne property="WaitConnections" value=""/> </event> <event> <eq property="name" value="CALL"/> <ne property="RetExcp" value=""/> </event> <property name="all"/> </log> <log location="F:\1C_logs\ScriptCircRefs" history="48"> <event> <eq property="Name" value="SCRIPTCIRCREFS"/> </event> <property name="All"/> </log> <log history="72" location="F:\1C_logs\locks_sql"> <event> <eq property="Name" value="DBMSSQL"/> <eq property="p:processName" value="erp"/> </event> <property name="t:computerName"/> <property name="t:connectID"/> <property name="Context"/> <property name="Sql"/> <property name="Sdbl"/> <property name="lkaid"/> <property name="lka"/> <property name="lkp"/> <property name="lkpid"/> <property name="lksrc"/> <property name="tableName"/> <property name="Usr"/> <property name="dbpid"/> </log> <dbmslocks/> <scriptcircrefs/> </config> |
|||
18
timurhv
23.09.25
✎
13:44
|
Проблема только с отчетом?
Это пять: ИЛИ ВТ_ГрафикиДействующиеСУчетомПериодичности.ГруппаНоменклатуры = ВТ_ДоступнаяНоменклатураСклад.Папка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель ИЛИ ВТ_ГрафикиДействующиеСУчетомПериодичности.ГруппаНоменклатуры = ВТ_ДоступнаяНоменклатураСклад.Папка.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |
|||
19
Волшебник
23.09.25
✎
13:45
|
(17) Запрос надо переделывать, вдумчиво. Побольше временных таблиц, поменьше соединений и обращений через кучу точек. Убрать эти "января", "февраля". Можно ещё убрать РАЗРЕШЕННЫЕ и выполнять запрос в привилегированном режиме.
|
|||
20
santakomi
23.09.25
✎
13:45
|
(18) Здравствуйте. Нет, проблема не только с данным отчетом. Его используем просто как пример, мерило "производительности". Т.к., одновременно с началом тормозов, он тоже перестал выполняться за вменяемое время.
|
|||
21
santakomi
23.09.25
✎
13:46
|
(19) Спасибо за развёрнутое мнение, передам коллегам.
|
|||
22
Волшебник
23.09.25
✎
13:46
|
(20) Такой запрос нельзя считать "мерилом". Это говнокод.
|
|||
23
santakomi
23.09.25
✎
13:56
|
(22) Если отойти от именно этого примера отчёта, в какие метрики стоит залезть ещё?
Потому как, повторюсь, другой север с аналогичным набором параметров переваривает всё, как должное, благо запас мощности достаточный. Ради ускорения работы данной ИБ даже ушли от виртуализации на полный bare metal-сервера. Но, по какой-то причине, на нормальном сервере, где эта БД крутилась 3 месяца без проблем, начали появляться большие задержки. |
|||
24
Волшебник
23.09.25
✎
13:57
|
(23) Я слышал про некий тест Гилёва, который считается эталонным. Прогоните его
http://www.gilev.ru/tpc1cgilv/ |
|||
25
santakomi
23.09.25
✎
14:01
|
(24) им прогонял, когда на физический сервер приземлял БД) тест был в фиолетовой зоне. Количество попугаев уже не помню.
Но перетестировать никогда не лишнее, спасибо за идею |
|||
26
Волшебник
23.09.25
✎
14:11
|
(25) Гилёв пишет, что на физическом сервере можно ещё настройками BIOS подшаманить.
http://www.gilev.ru/?s=bios&submit=Найти |
|||
27
Timon1405
23.09.25
✎
14:52
|
Gemini говорит что дело в диске### Разбивка вопроса на факты: 1. **Проблема:** Медленное выполнение отчетов и операций, а также длительная отработка регламентов (например, "Групповое перепроведение ИПЧ") в 1С. 2. **Масштаб проблемы:** Затронута одна большая БД (150Гб+) и её "демо" копия на том же сервере. Другие БД на том же сервере работают нормально. 3. **Хронология:** Проблема совпала с переключением модели восстановления БД в "полную", включением обрезки ЖТР MSSQL и настройкой зеркалирования. 4. **Среда:** * ОС: Windows Server 2022 * СУБД: MS SQL 2022 Enterprise * Платформа 1С: 8.3.27.1688 * Конфигурация 1С: УНФ 8. Управление предприятием общепита, редакция 3.0 (3.0.5.184) 5. **Попытки решения (неудачные):** * Пауза/отключение зеркалирования. * Перезапуски платформы, СУБД, сервера. * Очистка сеансового кеша 1С. * Отключение других БД и регламентов. * Восстановление БД на другом сервере (работает быстро), затем бэкап/восстановление обратно на проблемный сервер (снова медленно). * Возврат модели восстановления на "простую". 6. **Успешное тестирование:** При восстановлении проблемной БД на *другом* сервере (ранее зеркальном), производительность нормальная (1-1.5 мин против 20-25 мин). 7. **Настройки СУБД:** * Регламенты по реорганизации/перестроению индексов (фрагментация >5% / >30%). * Обновление статистики 2 раза в день. * Очистка процедурного кеша. 8. **Логи MSSQL:** Появление сообщений "There have been 60160 misaligned log IOs which required falling back to synchronous IO." после настройки зеркалирования другой БД на этот же сервер. 9. **Параметры дисков (fsutil fsinfo sectorinfo):** * **Проблемный сервер:** `PhysicalBytesPerSectorForAtomicity: 4096`, `PhysicalBytesPerSectorForPerformance: 4096`, `FileSystemEffectivePhysicalBytesPerSectorForAtomicity: 4096`. * **Нормальный сервер:** `PhysicalBytesPerSectorForAtomicity: 512`, `PhysicalBytesPerSectorForPerformance: 512`, `FileSystemEffectivePhysicalBytesPerSectorForAtomicity: 512`. * Разница в размере кластера диска с БД и ЖТР на основном и зеркальном серверах (NVME SSD). Попытки форматирования на проблемном диске не изменили параметры. 10. **Текущее состояние:** Зеркалирования отключены. 11. **Мониторинг производительности:** Windows-счетчики показывают низкую утилизацию дисков, CPU и RAM в норме (MSSQL потребляет выделенную память). 12. **Размещение файлов:** TempDB MSSQL и ЖР 1С вынесены на отдельный, более быстрый диск. ### Проверка ответа на соответствие каждому факту: На основе предоставленных фактов, самая явная и критичная проблема, которая **точно** объясняет наблюдаемые симптомы, связана с параметрами дисковой подсистемы и сообщениями об `misaligned log IOs`. **Основная гипотеза:** Проблема связана с неоптимальной конфигурацией дисковой подсистемы на "проблемном" сервере, в частности, с несоответствием размера сектора, что приводит к штрафам производительности при записи логов и данных. **Развернутый ответ и куда копать:** #### 1. Диагностика проблемы с `misaligned log IOs` и размером сектора (Оценка: 10/10) Это сообщение в логах SQL Server: "There have been **misaligned log IOs** which required falling back to **synchronous IO**" является **ключевым**. Оно прямо указывает на то, что SQL Server обнаруживает несовпадение между размером сектора, который он "ожидает" (обычно 512 байт, но современный SQL Server хорошо работает с 4k секторами при правильной конфигурации), и тем, как диск сообщает о своих физических секторах (Advanced Format disks). * **Ваши `fsutil` данные это подтверждают:** * На проблемном сервере: `PhysicalBytesPerSectorForAtomicity : 4096`, `PhysicalBytesPerSectorForPerformance : 4096`. Это означает, что диск физически оперирует 4КБ секторами. * На нормальном сервере: `PhysicalBytesPerSectorForAtomicity : 512`, `PhysicalBytesPerSectorForPerformance : 512`. Это означает, что диск эмулирует 512-байтные сектора. * **Почему это проблема:** Когда SQL Server пытается записать данные или лог-файлы блоками, которые не совпадают с физическим размером сектора диска (например, пишет 512 байт на 4КБ сектор), операционной системе и диску приходится выполнять дополнительную работу: читать весь 4КБ сектор, изменять часть 512 байт, а затем записывать весь 4КБ сектор обратно. Это называется "Read-Modify-Write" цикл и **резко снижает производительность ввода-вывода**, особенно для лог-файлов, которые являются критически важными для производительности транзакций и операций записи. Сообщение "falling back to synchronous IO" означает, что вместо асинхронных, более быстрых операций, SQL Server вынужден ждать завершения каждой операции записи, что еще больше замедляет работу. * **Почему на другом сервере все ок:** Другой сервер, несмотря на то, что у него NVME, каким-то образом (возможно, через драйвер диска, прошивку или настройки контроллера) представляет себя операционной системе как диск с 512-байтными секторами, или же на нем настроена правильная конфигурация для 4КБ секторов, которая не вызывает `misaligned IOs`. * **Почему это проявилось при переходе на полную модель восстановления и зеркалировании:** * **Полная модель восстановления:** Увеличивает объем записей в журнал транзакций (ЖТР), так как все изменения фиксируются для возможности восстановления на момент времени. Это увеличивает нагрузку на дисковую подсистему ЖТР. * **Зеркалирование:** Также увеличивает нагрузку на ЖТР, так как транзакции должны быть отправлены на зеркало. * По сути, эти изменения увеличили объем дисковых операций, что обнажило проблему с `misaligned IOs`, которая, возможно, существовала и раньше, но не была столь критичной. **Рекомендации по этому пункту:** 1. **Подтверждение выравнивания:** Используйте `DISKPART` и команду `list partition` затем `select partition X` и `detail partition` для проверки смещения (Offset) разделов. Для 4K секторов смещение должно быть кратно 4096 байтам (например, 1024 KB = 1048576 байт, что кратно 4096). 2. **Переформатирование:** Если разделы выровнены неправильно, или если системные утилиты не могут корректно работать с 4K секторами, **единственное надежное решение – это пересоздание разделов и переформатирование диска с правильным выравниванием**. Вы сказали, что форматирование не помогло изменить `fsutil` данные, но это не значит, что выравнивание было сделано правильно. Возможно, проблема глубже, на уровне драйверов диска или контроллера. * **Внимание:** Это разрушительная операция. Требуется полный бэкап данных. * При создании разделов убедитесь, что смещение (offset) кратно 4096 байтам (например, 1MB или 8MB). Современные ОС обычно делают это автоматически, но стоит перепроверить. 3. **Обновление драйверов/прошивок:** Проверьте наличие обновлений для драйверов контроллера диска (RAID-контроллера, если есть) и прошивки самих NVME SSD. Производители могут выпускать исправления для проблем с 4K секторами. 4. **Проверка настроек SQL Server:** Убедитесь, что SQL Server установлен на диск, который правильно выровнен. Для SQL Server 2022 это уже не такая частая проблема, как для старых версий, но все же стоит проверить. 5. **Trace Flag 1800 и 1802:** В некоторых случаях (особенно для старых SQL Server или специфических конфигураций) могли помочь Trace Flags 1800 и 1802, которые принуждают SQL Server использовать определенный размер сектора. Однако для SQL Server 2022 это менее вероятно и может привести к другим проблемам, если диск на самом деле не поддерживает этот размер. Лучше решить проблему на уровне ОС/диска. #### 2. Диагностика производительности 1С и SQL Server (Оценка: 8/10) Несмотря на то, что проблема с дисками является наиболее вероятной, стоит также рассмотреть другие аспекты, которые могли быть затронуты. * **Планы запросов:** * На проблемном сервере, после того как вы восстановили БД, SQL Server мог построить неоптимальные планы запросов из-за изменившейся производительности дисковой подсистемы. * Даже при наличии регламентов по перестроению индексов и обновлению статистики, "медленные" диски могут влиять на выбор планов. * **Что делать:** Используйте SQL Server Management Studio (SSMS) для анализа самых медленных запросов 1С. Запустите проблемный отчет и посмотрите, какие запросы выполняются долго. Анализируйте их планы выполнения (Execution Plan) на предмет дорогих операций (например, Table Scan, Key Lookup, Bookmark Lookup) и больших объемов чтения данных. * **Extended Events / Profiler:** Настройте сбор событий SQL Server (например, `sql_statement_completed`, `rpc_completed`) для выявления самых медленных запросов, их длительности и CPU/IO. * **Блокировки и взаимоблокировки (Deadlocks):** * Замедление операций ввода-вывода может увеличить время удержания блокировок, что, в свою очередь, может привести к увеличению блокировок и взаимоблокировок между сеансами 1С. * **Что делать:** Проверяйте логи SQL Server на наличие сообщений о блокировках. Используйте `sp_whoisactive` или другие инструменты для мониторинга активных блокировок во время выполнения медленных операций. * **Особенности 1С:УНФ и "Групповое перепроведение ИПЧ":** * Этот регламент может быть очень ресурсоемким, особенно на больших базах, так как он пересчитывает взаиморасчеты, себестоимость и другие зависимые данные. * **Что делать:** * Проанализируйте, какие именно операции внутри регламента занимают больше всего времени. Возможно, есть конкретные документы или регистры, которые обрабатываются особенно долго. * Возможно, после восстановления на проблемном сервере, состояние данных или индексов стало таким, что этот регламент стал работать медленнее. Стоит сравнить состояние индексов (фрагментацию, статистику) на "нормальном" и "проблемном" серверах. * **Параметры запуска 1С-сервера (ras, rphost):** * Количество рабочих процессов, объем памяти на процесс. Хотя вы указали, что ОЗУ в норме, иногда неоптимальные настройки могут влиять на производительность. * **Что делать:** Проверить настройки кластера серверов 1С. * **Индексы и статистика:** * Вы упомянули регламенты по реорганизации/перестроению индексов и обновлению статистики. Это хорошо. Убедитесь, что они действительно эффективно работают и охватывают все необходимые индексы/таблицы. * **Что делать:** Проверьте актуальность статистики (`DBCC SHOW_STATISTICS`) для крупных таблиц и индексов, участвующих в медленных запросах. #### 3. Мониторинг производительности (Оценка: 9/10) Вы указали, что Windows-счетчики показывают низкую утилизацию дисков. Это может быть обманчиво: * **Низкая утилизация ≠ высокая производительность:** Если диск выполняет операции Read-Modify-Write, он может быть "занят" на низкий процент, но каждая операция будет занимать гораздо больше времени, чем должна. Это проявляется в высоких значениях `Avg. Disk sec/Transfer` (среднее время на передачу) или `Disk Queue Length` (длина очереди диска), даже при низком `Disk % Utilization`. * **Что делать:** * Отслеживайте счетчики производительности диска более детально: * `PhysicalDisk\Avg. Disk sec/Read` * `PhysicalDisk\Avg. Disk sec/Write` * `PhysicalDisk\Current Disk Queue Length` * `PhysicalDisk\Disk Bytes/sec` * `PhysicalDisk\Disk Transfers/sec` * Сравните эти показатели на "нормальном" и "проблемном" серверах во время выполнения одного и того же отчета. Вы, скорее всего, увидите значительно более высокие значения `Avg. Disk sec/Read` и `Avg. Disk sec/Write` на проблемном сервере. * Используйте утилиты типа `Perfmon` или `Resource Monitor` для детального анализа. #### 4. Прочие факторы (Оценка: 7/10) * **Антивирусное ПО:** Убедитесь, что папки с файлами БД, логов и TempDB исключены из сканирования антивирусом. Антивирус может значительно замедлять операции ввода-вывода. * **Энергосбережение:** Проверьте настройки электропитания на сервере. Они должны быть установлены в режим "Высокая производительность" (High Performance). * **Обновления ОС/SQL Server:** Убедитесь, что установлены все последние обновления для Windows Server 2022 и SQL Server 2022. Иногда исправления производительности могут быть в кумулятивных обновлениях. * **BIOS/UEFI:** В некоторых случаях настройки BIOS/UEFI (например, режим работы контроллера диска - AHCI vs RAID, настройки кэша) могут влиять на производительность NVME. ### Заключение: Наиболее вероятная причина ваших проблем – это **misaligned log IOs** из-за несовпадения логического и физического размера сектора на дисках проблемного сервера. Это фундаментальная проблема дисковой подсистемы, которая будет влиять на все операции ввода-вывода, особенно на запись в журнал транзакций, что критично для 1С. **Мой совет:** Сосредоточьтесь в первую очередь на диагностике и решении проблемы с дисками (пункт 1). Если это не поможет, или поможет частично, тогда переходите к детальной диагностике SQL Server и 1С (пункт 2), а также внимательному мониторингу (пункт 3). Неудача с "финтом" бэкапа/развертки подтверждает, что проблема не в данных самой БД, а в окружении, в котором она работает на проблемном сервере. И разница в `fsutil` данных, а также сообщения в логах MSSQL, указывают прямо на диск. |
|||
30
santakomi
23.09.25
✎
16:01
|
(27) Здравствуйте. Я тож с нейронкой, правда ChatGPT, консультировался)
Изначально и копал в сторону дисков, но, после настройки мониторинга виндовых метрик по дискам, понял, что тамм нет особенно нагрузки, а такое секторное разбиение так пагубно влиять не должно. Да и ведь работало оно 3 месяца без нареканий) И, если говорить об ошибке "misaligned log IOs", то, после отключения зеркалирования базы с эталонного сервера, она пропала из логов. Я ещё более внимательно Ваш ответ прочитаю, может получится ещё что-то попробовать |
|||
31
santakomi
23.09.25
✎
16:04
|
(26) в биос доступа нет, так как сервер находится в дц Selectel, но при взятии его в аренду просили ТП настроить в соответствии с требованиями для работы с 1С.
В частности с включением буста для процессора AMD Ryzen 9 7950X |
|||
32
Волшебник
23.09.25
✎
16:05
|
(31) Прогоняешь тест Гилева, получаешь больше 70 попугаев и шлёшь программистов лесом.
|
|||
33
santakomi
23.09.25
✎
17:10
|
(32) у нас что-то порядка 90 было, кажется.
Пока принято решение перенести тормозящую БД на сервер, где ей ОК. Дальше буду копать в окружении "сбойного" сервера, может найдётся чего, заодно потестирую свежим тестом Гилёва. Хоть и синтетика, но в прошлые разы было весьма показательно. Если вдруг будут ещё какие-либо мысли, то буду признателен, если поделитесь. |
|||
34
АгентБезопасной Нацио
23.09.25
✎
18:21
|
(22) этот говнокод - эталон тормозов.
|
|||
35
АгентБезопасной Нацио
23.09.25
✎
18:25
|
(33) попробуй помониторить сервера т.н. "скриптом vde69" (от и тут в базе знаний был, и на нимфостарте). Может, увидишь значимые различия
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |