1Сv8 + SQL 2005 - помогите найти причину "тормозов"

Вопросы программирования БД, их оптимизации, резервирования и восстановления данных.

Модераторы: Trinity admin`s, Free-lance moderator`s

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

1Сv8 + SQL 2005 - помогите найти причину "тормозов"

Сообщение ignorant » 14 ноя 2006, 14:03

Доброе время суток, господа!
Помогите, плиз, порешать проблему.
Имеем:
1. Сервер 2хXeon 3Гц HT включен, 4Гб RAM, 4 SCSI 10k rpm в RAID10 на контроллере Adaptec SLP-2130
2. Windows 2003 Server SP1, SQL Server 2005 SP1, 1С:Предпирятие 8.0 Сервер предприятия (16-й релиз)
3. База с данными 1С ~20 Гб в Simple mode

При выполнении локально на сервере "тяжелых" операций, например, при массовом перепроведении
документов, наблюдаю "недогруженность" процессоров:
Средний % загруженности процессоров: 25-30
Диски "отдыхают" : 3 - 15 обращений / сек
SQL Server\Buffer cache hit ratio  > 99 %

При этом счетчики
Поставлено в очередь DPC при среднеим значении 80 может достигать максимума 2300
Ошибок страницы/сек (Memory\Page Faults/sec) при среднем значении 350 могут достигать максимума в 2000-2500
Показатель Page Faults/sec для процесса dllhost#1 (Сервер Предприятия) составляет 205 и 500 соответственно

Вопрос.
В чем м.б. причина тормозов?
Куда смотреть, что нужно донастроить в параметрах?

Спасибо за внимание.

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 14 ноя 2006, 15:30

Уфф! У нас штатный борец с такими делами (a_shats) на этой неделе в отпуске :(

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

Сообщение ignorant » 14 ноя 2006, 16:08

gs писал(а):Уфф! У нас штатный борец с такими делами (a_shats) на этой неделе в отпуске :(
"Да... Канешнаа.. Вам хорошо..." (с) х/фильм "Операция 'С Новым Годом!'"

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 14 ноя 2006, 16:28

Эээ... Это ему щас хорошо. А вот оставшимся...

alex_belfast
Junior member
Сообщения: 1
Зарегистрирован: 16 ноя 2006, 13:52
Контактная информация:

Re: 1Сv8 + SQL 2005 - помогите найти причину "тормозов&

Сообщение alex_belfast » 16 ноя 2006, 13:55

Возможно надо почистить таблицы итогов базы SQL от пустых записей.
У меня было 10 500 тыс записей пустых из 10 600 тыс в нескольких таблицах. После чистки база уменьшилась с 25 до 15 Гб. И все стало летать.
Для этого есть обработка , а это как ее юзать:

1. Зайти в базу на том сервере, где установлен сам SQL Server. Это важное ограничение. Если нет инсталляции клиента 1С - придется сделать.
2. Войти в базу.
3. Через меню "Файл - Открыть" запустить обработку.
4. Прописать строку соединения (нажать по кнопке, на первой закладке указать Microsoft OLE DB Provider for SQL Server, на второй админа SQL и саму базу, ту в которую зашли) 5. Галку для начала не ставить.
6. Нажать "Выполнить"
7. В окне сообщений 1С должен появиться TSQL-код вида:
Begin tran t1
Select Count(*) as ВзаиморасчетыСКонтрагентами from _AccumRegTotals3992 where (_Fld3990 = 0)AND (_Fld3991 = 0) ...
Select Count(*) as ЗаказыПокупателей from _AccumRegTotals4107 where
(_Fld4103 = 0)AND (_Fld4104 = 0)AND (_Fld4105 = 0) ...
Commit tran t1
8. Полученный текст скопировать в QUERY ANALYZER и выполнить.

Результат покажет сколько нулевых записей в каждой таблице итогов.
Особо обратить внимание на регистры ЗаказыПокупателей и ТоварыВРезервеНаСкладах !!! В них обычно больше всего "нулей". Посмотреть для этих таблиц общее количество записей, например запустив запрос вида:

Select Count(*) as ЗаказыПокупателей from _AccumRegTotals4107  уже без условий. Сравнить с количеством нулевых.

Сделать резервную копию базы (можно средствами SQL)!!!

Повторить пункты начиная с №5, но с установленной галкой "удаление".
Сформируется новый скрипт для "чистки" пустых записей.

Выполнение скрипта очистки выполняется не долго (1-3 минуты), но может вызывать блокировки у пользователей, поэтому лучше запускать когда нагрузка на базу не критична.

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

Сообщение ignorant » 16 ноя 2006, 15:44

2 alex_belfast
эта ошибка "старых" платформ. 16-й релиз итоги считает вроде как правильно. У нас лечилось обновлением платформы и пересчетом итогов.
Большиой размер не у данных, а у индексов регитсра бухгалтерии "Хозрасчетный". Они "весят" 6Г из 19Г базы (после шринков и прочих регламентных операций).

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 16 ноя 2006, 16:17

Дождитесь понедельника :)
Придет Шац и скажет все, что думает :)

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 20 ноя 2006, 12:35

Шац думает, что надо посмотреть на Output Queue Length у сетевого интерфейса и подозревает, что она имеет безобразно высокие значения :)

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

Сообщение ignorant » 21 ноя 2006, 14:02

Сетевой интерфейс "отдыхает", т.к. (повторюсь) "тяжелые" операции выполняются локально на сервере и по сети в этот момент сервер никто не грузит.
Отражают ли высокие показатели счетчиков Ошибок страницы/сек (Memory\Page Faults/sec) и Поставлено в очередь DPC причину низкой загрузки процессоров или нужно анализировать какие-то ещё счетчики для локализации проблемы?

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 21 ноя 2006, 14:15

А, дошло :gigi:
У Вас 2 Ксеона со включенным HyperThreading, т.е. виртуальных процессора - 4 ?
Ну вот, подобные монопольные операции с БД (типа того же перепроведения документов) загружают фактически на 100% только один процессор. В связи с особенностями виндового шедулера - это выглядит как 50% нагрузки на каждый процессор при 2 или 25% - при 4 виртуальных :) То есть упор - именно в процессоры. В производительность каждого из, если быть точным.

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

Сообщение ignorant » 21 ноя 2006, 14:27

Хотелось бы гарантий:)
Можно ли какими-то счетчиками явно "увидеть" загрузку это процессора? М.б., выключить HT, например...

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 21 ноя 2006, 14:33

Выключите НТ, вытащите один процессор - и увидите загрузку одного процессора на 100% :)

ignorant
Advanced member
Сообщения: 89
Зарегистрирован: 18 фев 2006, 10:56
Откуда: Украина

Сообщение ignorant » 21 ноя 2006, 14:44

Зачем такой фанатизм?
Если просто выключить НТ, будет ли видна реальная нагрузка на процы, когда один на 100 % занят операциями с БД, а другой недогружен?
И вдогонку. Загрузка 1-м процом - это "бока" 1С, но на этом же компьютере работает SQL, он то от чего простаивает?
Как сложно всё ;)

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 21 ноя 2006, 14:47

Равномерная загрузка процов - основная задача виндового планировщика задач. Если задача не параллелится по процессорам, шедулер ее пинает по ним по кругу, добиваясь их равномерной загрузки. Во время генерации отчетов 1С это просто наипоказательнейше.
SQL умеет параллелиться, если на него валится много запросов. Если один толстый отчет - смотря как он написан.

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 21 ноя 2006, 14:48

А почему проставивает сиквел - так может просто 1С от него ничего не просит, а сама переваривает уже полученные данные...

Ответить

Вернуться в «Серверы - ПО, Базы Данных и их использование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей