Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
Друзья, обнаружил обидную проблему. Стоял уже старый сервер ML350 G5, 2х4 ядра Хеонов, 12Гб ОЗУ, на нём в 2008р2 поднята виртуалка, в ней стоит СКУЛЬ2008р2, сервер 1с8.2 (только не помню щас х86 или 64бит). Виртуалке отдано 6 гигов памяти и 4 ядра. Отчёт с бухгалтерии за полгода формируется за 287 секунд. При этом процессор на виртуалке загружен на 50% примерно и вся выданная скуль серверу память занята. Пришел мне новый сервер. Красавец ML350p Gen8. 2 по 6 ядер Хеона с НТ, итого 24 потока, 24ГБ памяти, массив побыстрее. Поставил туда без всяких виртуалок 2008р2 и конфигурацией софта аналогично той виртуалке, залил базу и начались чудеса... Тот же самый отчёт, который на старом добре собирается за 287 секунд - на новом собирается за 300 с копейками, так ещё и съедает все доступные ему ядра на сервер. Дал 18 потоков - съел 18. Памяти правда отхватывает меньше выданного, но это чёрт с ним. Непонятно почему процессор весь съедает, а остальное простаивает. Проверял монитором и скуля, и винды - диск не загружен, память не загружена, процессор что-то усиленно считает, причем грузит так его именно скуль сервер, а не 1с или ещё кто. Кто-нибудь сталкивался?
P.S. Пишу это из дома, перед сном, с утра продолжу писать и отвечать на вопросы. Спасибо всем за участие заранее :)
10 июл 12, 21:58    [12847438]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
atheisthax
Непонятно почему процессор весь съедает, а остальное простаивает. Проверял монитором и скуля, и винды - диск не загружен, память не загружена, процессор что-то усиленно считает, причем грузит так его именно скуль сервер, а не 1с или ещё кто. Кто-нибудь сталкивался?
Нужно посмотреть планы запроса (идеально было бы сравнить со старым).
Конечно, такое может быть при смене железа. Можно в принципе попробовать просто статистику обновить.
10 июл 12, 22:02    [12847454]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
alexeyvg,

Хм... ну база один в один, настройки скуля один в один, разница только в количестве доступной памяти и потоков у скуля.
А статистику обновить - это как?
10 июл 12, 22:04    [12847462]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
atheisthax
А статистику обновить - это как?
UPDATE STATISTICS table или настроить в плане обслуживания

А НТ не пробовали отключить?
10 июл 12, 22:17    [12847512]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
alexeyvg, а это актуально для сервера который стоит полдня и единственная база залита из выгрузки 1с, а не из бекапа SQL?
11 июл 12, 06:55    [12848312]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
Nik123
Member

Откуда: Krasnoyarsk
Сообщений: 3
atheisthax,

Если задача снизить загрузку процессора, можно попробовать "max degree of parallelism 1" (производительность некоторых операций может пострадать)
http://partners.v8.1c.ru/forum/thread.jsp?id=683786#683786

Если увеличить скорость, то посмотрите схему питания (Максимальная производительность).
http://support.microsoft.com/kb/2207548
http://partners.v8.1c.ru/forum/thread.jsp?id=1055194#1055194
11 июл 12, 08:52    [12848515]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
atheisthax
alexeyvg, а это актуально для сервера который стоит полдня и единственная база залита из выгрузки 1с, а не из бекапа SQL?
Эээ, вы же написали "база один в один". Я так предполагал, что восстановлена из бакапа...
11 июл 12, 09:18    [12848587]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
SergINI
Member

Откуда: Нью-Васюки
Сообщений: 6787
atheisthax,

Profiler запусти и посмотри какой запрос жрет 100%. Любой криво написанный запрос на другом железе, другой версии SQL Servera может дать другие результаты. А вообще скорее всего на старом сервере был рейд с кэшем, на новом сэкономили. 1с-у не памяти много нужно, а быстрая дисковая система! Докупите HP 2GB P-series Smart Array Flash Backed Write Cache и будет Вам счастье.
11 июл 12, 10:05    [12848798]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
SergINI, дисковая подсистема отдыхает. На новом не сэкономили, 4х300х15К на Р420i 512метров с батарейкой. Кеш на старом был меньше. Профайлер попожже запущу, щас работы навалили.
11 июл 12, 10:17    [12848853]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
SergINI
Member

Откуда: Нью-Васюки
Сообщений: 6787
atheisthax,

Ну без профайлера никак.
11 июл 12, 10:25    [12848905]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
SergINI,

вот теперь самый интересный вопрос - а что в профайлере искать? :)
11 июл 12, 10:30    [12848944]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
SergINI
Member

Откуда: Нью-Васюки
Сообщений: 6787
atheisthax,

Запрос, который дольше всего выполняется и больше всего жрёт ресурсов(CPU и считываемых блоков).
11 июл 12, 10:38    [12849030]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
atheisthax
SergINI, дисковая подсистема отдыхает. На новом не сэкономили, 4х300х15К на Р420i 512метров с батарейкой
Дааа..... Вообще сильно съэкономили. Зачем такой мощный сервер, если для него не покупают диски???

"Отдыхает" - это сколько в цифрах? Дисковая очередь какая?

Хотя понятно, если CPU загружен на 100%, то начинать разбираться нужно с него.
atheisthax
вот теперь самый интересный вопрос - а что в профайлере искать? :)
Вот стандартный шаблон действий ДБА: сначала найдите в нём ваш отчётный запрос, потом запустите запрос из профайлера с просмотром плана и всего остального, что пожелаете

Для первого нужно запустить в профайлере трейс с шаблоном "стандартный" (хотя я делаю свой шаблон, без аудита коннектов).
Для второго нужно сделать шаблон с фильтром по SPID и с показом входов в процедуры и планов.
11 июл 12, 10:42    [12849057]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2008r2 + 1c 8.2 = 100% CPU  [new]
atheisthax
Member

Откуда:
Сообщений: 12
Прошу прощения за пропажу меня :) В общем тогда я из ситуации вышел, но вырыл себе яму, а теперь ещё и лопату выкинул :)
Тогда я разобрался с тормозами немного нелогично. Там я загружал в свежую пустую базу SQL из 1ски выгрузку и после этого база тупила. Потом я просто восстановил базу из SQL бекапа и база завертелась значительно быстрее, правда места стала занимать на 5 гб больше. Но всё это я уже поставил на SQL server 2012, как раз лицензия подошла на него и всё замечательно работало. Пока меня не попросили вернуть старую базу, которая работает на 1с 7.7 и SQL. С 2008р2 я её заводил, она работала, в SQL 2012 уже нет уровня совместимости с SQL 2000, без которого не может работать 1с 7.7. Пришлось удалять 2012 и ставить 2008р2. А он не подхватывает уже базы которые 2012 подхватил из 2008р2. В общем в итоге пришлось мне выгружать базу из 1с выгрузкой и загружать их в чистую базу в SQL 2008r2. А оно тормозит также как я описывал в начале. Индексы перестраивал, статистику обновлял, а результат тот же... :) Как бы её привести в тот вид, в котором оно было до выгрузки из 1с.
19 июл 12, 07:14    [12886399]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить