Имя: Пароль:
IT
Админ
Отъедание 50% загрузки CPU на SQL сервере
0 AlexAbrus
 
07.12.12
16:19
Добрый день!
Версия: 1С 8.2.16.352
Клиент-Сервер: Сервер Терминалов (16 ГБ) + 1С Кластер (8ГБ) + SQL 2008 (48 ГБ), все самостоятельные ноды.
Объем: 4-е базы по 12 ГБ (Бух Про)
Пользователей: 40 (активных)
1С Кластер - 2 раб процесса 1С (Загрузка CPU не более 2%)
С утра (начало работы) всё нормально.
Примерно после 5 часов работы отъедает 50% загрузки CPU на SQL сервере, что приводит к тормозам,
при этом используемая память не подымается выше 20 ГБ.
И так каждый день...
Ночью серваки ребутятся и всё с начала.
Как "поймать"(вернуть) потерянное (50%)?
Спасибо.
1 DEVIce
 
07.12.12
16:23
Регламентные задания не юзаются?
2 DEVIce
 
07.12.12
16:23
У самого скуля никаких заданий в агенте не прописано?
3 Heckfy
 
07.12.12
16:25
"Примерно после 5 часов работы отъедает 50% загрузки CPU на SQL сервере" - какой процесс?
4 AlexAbrus
 
07.12.12
16:29
1. Регламентных - нет
2. У скуля агент работает только ночью (проверял)
3. Процесс - sqlservr (память процесса в среднем 400 000 Кб)

все OS - 2008R2 64
5 Heckfy
 
07.12.12
16:31
Монитор активности SQL сервера смотрел?
6 пипец
 
07.12.12
16:31
активити монитор в руки
7 МихаилМ
 
07.12.12
16:40
что говорят тж  или  ms sql profiler ?
8 floody
 
07.12.12
16:43
1) отъедание 50% загрузки процессора никак не может приводить к тормозам, ибо это никак не 100% загрузки (связь конечно есть, но я клоню к тому, что к тормозам ведет не конкретно загрузка процессора)

2) точно во всех базах стоит галка "включить блокировку регламентных заданий"?

3) какой проц на SQL сервере?
9 Robin iz Robinov
 
07.12.12
16:45
МоЖЕТ помоЖЕТ

http://infostart.ru/public/65955/
10 AlexAbrus
 
07.12.12
16:47
1. у меня средняя загрузка CPU 50% по работе, так что 50+50...
2. Это точно
3. сервер dell R710  CPU - 5503 x2
11 AlexAbrus
 
07.12.12
16:48
(9) По ней и настраивал
12 AlexAbrus
 
07.12.12
16:53
(5) (6) Как в мониторе активности увидеть какой из запросов подвис или ....?
13 floody
 
07.12.12
17:31
В репортах можно посмотреть самые ресурсоемкие запросы, ну или в профайлере просто глянуть.
14 МихаилМ
 
07.12.12
17:35
(0)
может ваш случай
v8: Помогите разобраться с SQL
15 AlexAbrus
 
07.12.12
17:47
(14) Прочитал, поиск отключен всё по статье пофиксено

Настораживает процент загрузки - ИМЕННО 50%
жду когда все пользователи выйдут
может что прояснится

(13)Все запросы в данное время обработаны (но всё равно 50%)
16 AlexAbrus
 
07.12.12
17:50
И ещё в регуляторах ресурсов у default и internal Стоит 100%
17 krbIso
 
07.12.12
17:53
в активити мониторе посмотри wait time и wait type
18 МихаилМ
 
07.12.12
17:54
(15) возможно
Affinity mask выставлена на половину доступных процессоров (ядер)
19 AlexAbrus
 
07.12.12
17:57
(17) 0 оба
(15) А смысл есть? Это только SQL Сервер
20 AlexAbrus
 
07.12.12
17:57
(18) А смысл есть? Это только SQL Сервер
21 МихаилМ
 
07.12.12
18:02
(20)
как правило закрузка процеса на 50 процентов говорит о том,
процесс исползует ПОЛНОСТЬЮ половину доступных ядер.

ваша ветка не про смысл.
не советую от темы откланяться.
22 sanfoto
 
07.12.12
18:09
(0) AlexAbrus
а на ВСЕ в Одном флаконе (SQL+Сервер 1с) пробовали? ))

У меня до 70 он-лайн пользователеq 1с 8.2 УПП. (SQL+Сервер 1с - на одном сервере - общаются по Named Pipe) - все работает норм))
23 sanfoto
 
07.12.12
18:15
Если разделить SQL и "Сервер 1с" - сетью Ethernet Gigabit - предоставляющую в данном случае для обмена максимум 30 Мегабайт/сек
рисунок
http://s51.radikal.ru/i133/1211/40/ee298116320f.jpg
то ясень пень загрузки сети под завязку вы не увидите никогда.

я про то что возможно тормоза не в нагрузке CPU 50%/
Хотя если у вас на сервере Гипер-Трейдинг ВКЛ - то нагрузка одного "виртуального ядра" - свидетельствут о 100% загрузке Физического))
24 sanfoto
 
07.12.12
18:18
Вернее нагрузка на 50% Одного "виртуального ядра" - блокирует работу Второго.
25 prog0101
 
07.12.12
18:22
(0)
поставить все апдейты на винду платформу и скуль и .нет 4.5
настроить клатер на перезапуск
пнуть админа
выяснить наконец где зарыт быдлокод или утечка и переписсать
26 sanfoto
 
07.12.12
18:26
(25) prog0101

не думаю что "утечка" имеет тут место)) грузит Проц-то SQL, а не 1с - по описанию автора.

"быдлокод" - вероятность конечно возможна))
27 AlexAbrus
 
07.12.12
18:27
(21) Affinity mask как увидеть (сорри не нашёл)
с sp_configure не получается

(22) Все в одном - пробывал, но в следствии того что раньше памяти меньше, данный вариант устроил по быстродействию больше

(25) все ап до последнего, кроме платформы (нет возможности)
БД стандартные ПРО Произ. 8.2
28 sanfoto
 
07.12.12
18:31
(27) AlexAbrus
1)на процах Гипер-Трейдинг ВКЛ ?
я про то что Возможно тогда Процы под завязку загружены на самом деле, а не на 100%.

2) Программных RAID- случайно нету? ))
29 sanfoto
 
07.12.12
18:32
тфу а не на 50% ))
30 AlexAbrus
 
07.12.12
18:33
(28) 1. да
2. нет, аппаратный Raid 10
31 prog0101
 
07.12.12
18:35
(26)а ты не думай
ты 1с опусти и посмотри что будет скуль!
32 МихаилМ
 
07.12.12
18:39
(30)
Hyper-threading для ms sql раньше был зло.

Affinity mask в свойствах сервера на закладке процессорс
33 sanfoto
 
07.12.12
18:43
(30)
угу ясно Процы значит на 100% заняты.

я такое наблюдал только на "тяжелых 1с запросах".

т.к. "1С Запрос" <не равен> "чистому SQL запросу",
кто сомневается читайте теорию ORM/

Короче надо искать "1с запросы" - особенно в которых есть много "."

Пример: "ВЫБРАТЬ
Документ.Реализация.Контрагент.ОсновнойДоговорКонтрагента
..................
"
34 sanfoto
 
07.12.12
18:46
короче бухи грузят своим "Отчетами" - однозначно))
35 AlexAbrus
 
07.12.12
18:49
(32) Свойства сервера - Процессоры
стоят галки Маска сложности для всех ЦП и маска привязки ввода-вывода
Максимальное число потоков - 0
все остальное пусто ( не выбрано)

(33) так запросов в мониторе активности нет... чем грузит то?
36 sanfoto
 
07.12.12
18:53
(35) AlexAbrus
"SQL Server Profailer" - запускали?
37 AlexAbrus
 
07.12.12
18:54
Пользователей 15, загрузка CPU 49-60%
49% появляется часто, но в основном 50%


(36) он запущен и сейчас, что глянуть?
(не пользовался никогда (((
38 sanfoto
 
07.12.12
18:58
ща скину картинку
39 sanfoto
 
07.12.12
19:06
http://s020.radikal.ru/i705/1212/69/662d23d0d9a7.jpg
грубая трассировка конечно но примерно можно будет понять.. что там из этого:
Select-ы, Транзакции или UPDATE - преобладают и для какой базы.
40 sanfoto
 
07.12.12
19:11
блин забыл там по CPU надо условие поставить чтобы отсеять то что мало грузит.

Ладно я побег -домой))

короче Гугли на тему трассировок
41 AlexAbrus
 
07.12.12
19:13
(40) ок, спасибо
42 МихаилМ
 
07.12.12
19:16
для оценки batchstarting  будет только мешать.
43 AlexAbrus
 
07.12.12
19:18
поставил CPU больше 10 мс, только запросы ...
44 AlexAbrus
 
07.12.12
19:19
Select
45 sanfoto
 
07.12.12
19:24
(44) AlexAbrus
пока такси жду..отпишусь какое-то время))

>Select - что и требовалось доказать)) - отчеты скорей всего значит. Либо дофига "1С - запросов" - в которых в одной строке много "."
46 sanfoto
 
07.12.12
19:34
AlexAbrus
а Гипер-Трейдин все-таки отключите - толку от него нет,

а вот Вас с толку сбивает ИМХО загрузка CPU на вашем SQL - на самом деле больше чем показывает Диспетчер))
47 AlexAbrus
 
07.12.12
19:40
(46) ок, попробую
Да не только картинка про 50% сбивает, но и "думает" медленнее чем в первую половину дня, хотя количество пользователей не изменяется
48 AlexAbrus
 
07.12.12
20:13
Всем спасибо
Подвис один сеанс на кластере 1С, вот он и выдавал 50%

Не подскажете как избежать это в дальнейшем (регулярность данного происшествия напрягает)?
49 prog0101
 
07.12.12
20:14
(48)
перезапуск процессов настроить писал уже
кластер нужно мониторить
остальное полумеры
посадить специального админа и пусть смотрит )))
50 AlexAbrus
 
07.12.12
20:22
(49) 1. настроено по на докам
    2. а как отличить зависший сеанс от не зависшего?
       каждый пользователь сидит как минимум в 3-х Больших базах?
    3. на выходных апну до последнего релиза платформу
       правда "впн-ки" орать будут, они далеко
    4. круглосуточно ? ))))
51 МуМу
 
08.12.12
11:39
(24),(30) Это ничем не доказанные фантазии. Гипертрейдинг как правило скорее зло, но так что бы показывать 50% нагрузку вместо 100 и что бы настолько просаживать систему - это однозначно сказки. Я наблюдал более 40-а проектов в которых на MSSQL был включен гипертрейдинг, нигде описанных ситуаций не видел.
52 sanfoto
 
08.12.12
15:00
(51) МуМу
а я что и говорю Гипер-Хрень = Зло))

А в диспетчере задач при ВКЛ Гипер-Хрени - не будет видно реальную Загрузку Это факт.
Будет видно например - Например на Каждом "Логическом ядре" нагрузку =50% - это равносильно 100 % загрузке реального физического ядра...

Про какие вы тут фантазии? )) мат часть учите))
53 sanfoto
 
08.12.12
15:06
МуМу
-------------
2 Вирт ядра = 1 физическое

учу математике

нагрузка в %
50%(Вирт1) +50%(Вирт2) = 100%
54 sanfoto
 
08.12.12
15:24
верней Они не равны а пашет за Них в реальности одно Физическое ядро.

А диспетчер задач их считает за Полноценные ядра и получается пишет НЕКОРРЕКТНУЮ общую загрузку в %.
55 МуМу
 
08.12.12
19:33
(54)Покажите мне это!Хочу увидеть собственными глазами подобное поведение диспетчера задач!
56 МуМу
 
08.12.12
19:35
+(55) Еще раз повторяю, видел много гипертрейдингов ,но такого поведения диспетчера задач не видел. Есть неэффективное использование ресурсов, но что бы диспетчер так путался не видел ни разу. Вообщем - не верю!
57 Demiurg
 
08.12.12
21:26
(0) если есть бюджет на несколько часов платных работ, то готовы решить эту проблему

найти долгую транзакцию легко по opentran, активность оценить по объему переданных за последние 5 минут на сервере 1С

если интересно, пишите в личку [email protected]
58 МуМу
 
08.12.12
22:28
(0)http://www.softpoint.ru/perfexpert.php
Эта штука может работать круглосуточно и определить виновника а также функционал приводящий к этой проблеме.
59 sanfoto
 
10.12.12
06:24
(57) Demiurg
у человека с SELECT... была проблема...
притом похоже в Одном сеансе - он его снял и все нормализовалось.

В моей системе было подобное из-за бага в движке 1С - происходил срыв в бесконечный цикл на УП форме. Обошли программно(завели переменные - Флаги и т.п.) + смена релиза движка.
60 sanfoto
 
10.12.12
07:03
(56) МуМу,
читайте Мат часть еще раз рекомендую))
Вот цитата а ниже ссылка MSDN/
---------------------------------------
>Важно отметить, что измерение загруженности процессора через
>Task Manager или Perfmon может вводить в заблуждение.

>Операция, нагружающая процессор лишь из одного потока, >будет
>давать загрузку процессора только на 50%.

> Но, поскольку логические процессоры тесно взаимосвязаны,
>крайне маловероятно, что полная нагрузка обоих процессоров
>приведет к удвоению производительности.
-----------------------------------------
http://msdn.microsoft.com/ru-ru/library/dd335944.aspx
61 МуМу
 
10.12.12
08:10
(60) Давайте не вырывать слова из контекста. Я же ясно написал, что хочу ЭТО увидеть. Вы сможете смоделировать? А делить 100 на два я умею - физфак МГУ как никак.
62 sanfoto
 
10.12.12
08:24
(61) МуМу
самый простой способ смоделировать

1) берем комп с ВКЛ гипер-трейдингом
2)берем Однопоточное приложение - дающее нагрузку по максимуму на.
3)Запускаем - количество Этих программ = Количеству "логических" ядер
4)В диспетчере задач - определяем каждое приложение на свое "логическое" ядро
5)Запускаем все эти приложения.
-----------------------------------
видим результат Все "логические ядра" - загружены на 50% и общую загрузку Диспетчер показывает 50%
--------------------------------------------
теперь Тоже самое при ОТКЛ гипертрейдинге - Диспетчер =100%
63 МуМу
 
10.12.12
17:56
(62) Меня интересует как смоделировать подобную ситуацию на MSSQL?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший