Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 мониторинг производительности связки 1с-MS SQL  [new]
Eagle_84
Member

Откуда: Москва
Сообщений: 1535
коллеги, добрый день

извечная проблема, 1с начали жаловаться, что очень медленно проходят операции. Запустили вчера нагрузочное тестирование
с 17:30 04.04.2013 по 10:10 05.04.2013.

Что показал мониторинг:

Счетчики мониторинга средний максимальный
Batch Requests/sec 149 1009
SQL Compilations/sec 73 905
Buffer cache hit ratio 99.7 99.95
Total Latch Wait Time (ms) 0.19 37.51
Диск "Е"
Среднее время записи на диск 0.008 0.142
Среднее время чтения с диска 0.001 0.165
Обращений записи на диск/c 3.1 483.4
Обращений чтения с диска/c 0.028 10.77
Текущая длина очереди 0.060 19
% активности диска 5.37 531
Диск "D"
Среднее время записи на диск 0.014 0.101
Среднее время чтения с диска 0.007 0.021
Обращений записи на диск/c 70.5 120.43
Обращений чтения с диска/c 69.8 145.78
Текущая длина очереди 1.6 22
% активности диска 151.37 696
Процессорная активность
% загрузки процессора 5.8 15.07
Длина очереди процессора 0.24 2
Использование памяти
Total server memory 23Gb 24.5Gb
Свободноый объем 6.5Gb 4.8Gb


ТОП по ожиданиям
IO_COMPLETION 28792 97.61
WRITELOG 366 1.24
ASYNC_NETWORK_IO 208 0.71


io по дискам
Диск Чтение Запись
D 265802Мб 276983Мб
E 8992Мб 2709Мб


io по файлам
tempdb tempdev_3 29575 29608 D:\MS-SQL-TempDB\tempdb_3.mdf
tempdb tempdev_4 29565 29599 D:\MS-SQL-TempDB\tempdb_4.mdf
tempdb tempdev_5 29561 29596 D:\MS-SQL-TempDB\tempdb_5.mdf
tempdb tempdev_1 29536 29572 D:\MS-SQL-TempDB\tempdb_1.mdf
tempdb tempdev_2 29533 29567 D:\MS-SQL-TempDB\tempdb_2.mdf
tempdb tempdev_6 29512 29547 D:\MS-SQL-TempDB\tempdb_6.mdf
tempdb tempdev 29511 29546 D:\MS-SQL-TempDB\tempdb.mdf
tempdb tempdev_8 29508 29543 D:\MS-SQL-TempDB\tempdb_8.mdf
tempdb tempdev_7 29500 29536 D:\MS-SQL-TempDB\tempdb_7.mdf
tempdb templog 1 10869 D:\MS-SQL-TempDB\templog.ldf
UserDB UserDB 8822 2634 E:\MS_SQL_DATA\UserDB.mdf



Разбивка по дискам:
TempDB - диск D (RAID1)
UserDB - диск Е (RAID 10 из 10 дисков)

Видно, что активно использовался только диск D и на запись и на чтение, на котором находится TempDB.
Есть ли, к примеру, вариант поменять местами пользовательскую базу и TempDB местами?

Не могу понять ожидания IO_COMPLETION, если обратиться к BOL, то "Имеет место при ожидании завершения операций ввода-вывода.Этот тип ожидания обычно не относится к операциям ввода-вывода страниц данных". Т.е. глядя на показатели, все "упирается" на диск с TempDB? Какие будут рекомендации?

Спасибо


Версия СУБД:
Microsoft SQL Server 2005 - 9.00.5057.00 (X64) 


Железо:
IBM 3650M3 2 процессора (E5649), 32Гб памяти
5 апр 13, 13:17    [14140042]     Ответить | Цитировать Сообщить модератору
 Re: мониторинг производительности связки 1с-MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Судя по IOPsам на диске D Вы на пределе его пропускной способности. Переносите tempdb на диск E.
5 апр 13, 13:44    [14140216]     Ответить | Цитировать Сообщить модератору
 Re: мониторинг производительности связки 1с-MS SQL  [new]
Eagle_84
Member

Откуда: Москва
Сообщений: 1535
pkarklin
Судя по IOPsам на диске D Вы на пределе его пропускной способности. Переносите tempdb на диск E.


ок, понял. а базу, как я понял, перенести на диск D?

Еще вопрос:
будет ли лучше, если разбить на несколько raid1 и на них по несколько файлов от tempDB разнести или это уже абсурд с моей стороны? :)
5 апр 13, 13:50    [14140258]     Ответить | Цитировать Сообщить модератору
 Re: мониторинг производительности связки 1с-MS SQL  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33929
Блог
выбирайте:
  • добавить дисков, изменить массив, где лежит tempdb
  • поработать над запросами, вызывающими запись в tempdb (наличие нужных индексов/планы выполнения/статистика)
  • 5 апр 13, 13:52    [14140277]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Maxx
    Member [скрыт]

    Откуда:
    Сообщений: 24290
    Eagle_84
    ок, понял. а базу, как я понял, перенести на диск D?

    нет конечно ,а то следющим будет -вернуть БД на место ,где была до того
    Не думаю что будет выигрыш если нарезать 2 райд1
    Тем более если резать логически
    Физически я так понимаю у вас дисков просто не хватает ,чтоб собрать нормальный рейд под темдб
    5 апр 13, 13:53    [14140287]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 33929
    Блог
    что вернет?

    use [ваша база]
    go
    SELECT TOP 20 
           [Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0),
           avg_user_impact,
           TableName = statement,
           [EqualityUsage] = equality_columns,
           [InequalityUsage] = inequality_columns,
           [Include Cloumns] = included_columns
      FROM sys.dm_db_missing_index_groups g 
      INNER JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle 
      INNER JOIN sys.dm_db_missing_index_details d ON d.index_handle = g.index_handle
      WHERE database_id = DB_ID()
      ORDER BY [Total Cost] DESC;
    
    5 апр 13, 13:55    [14140296]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Eagle_84
    Member

    Откуда: Москва
    Сообщений: 1535
    Maxx
    Eagle_84
    ок, понял. а базу, как я понял, перенести на диск D?

    нет конечно ,а то следющим будет -вернуть БД на место ,где была до того
    Не думаю что будет выигрыш если нарезать 2 райд1
    Тем более если резать логически
    Физически я так понимаю у вас дисков просто не хватает ,чтоб собрать нормальный рейд под темдб


    да, дисков физически не хватает. есть еще один диск (физический RAID 1), на нём логи лежат.
    а "нормальный рейд под темдб" - это какой? 10 с большим кол-вом дисков?
    5 апр 13, 13:56    [14140305]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    pkarklin
    Member

    Откуда: Москва (Муром)
    Сообщений: 74925
    Eagle_84
    ок, понял. а базу, как я понял, перенести на диск D?


    Зачем? Оставьте на месте. Или свободного пространства не хватает?

    Eagle_84
    Еще вопрос:
    будет ли лучше, если разбить на несколько raid1 и на них по несколько файлов от tempDB разнести или это уже абсурд с моей стороны? :)


    Я бы подумал о разнесении файлов данных и лога и пользовательской бд и tempdb по разным массивам, например на текущий диск D логи, на диске E - данные. У Вас всего 12 дисков. Не сильно разгуляешься с кол-вом массивов.
    5 апр 13, 13:57    [14140314]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Eagle_84
    Member

    Откуда: Москва
    Сообщений: 1535
    pkarklin
    Я бы подумал о разнесении файлов данных и лога и пользовательской бд и tempdb по разным массивам, например на текущий диск D логи, на диске E - данные. У Вас всего 12 дисков. Не сильно разгуляешься с кол-вом массивов.


    Так разнесено:
    диск "с" - ОСь и транзакты - RAID1 (два физических диска) - в данном тесте режим Simple, в логах, судя по io операциям, не записывалось ничего...
    диск "D" - TempDB - RAID1 (два физических диска)
    диск "E" - Пользовательские базы - RAID10 (10 физических дисков)

    всего 16 дисков, забито 14.


    [quot Критик]
    сервер сейчас тестовый (но структура по железу практически одинакова), база перенесена с боевого, статистика "плохая", так что смотреть отсутствующие индексы в данном примере нет смысла. На боевом сервере слежу за этим, стараюсь следить :)

    на всякий, вот что вернул скрипт

    1885	36,05	[DB].[dbo].[_Reference36]
    1443	98,42	[DB].[dbo].[_Document211]
    1372	60,85	[DB].[dbo].[_AccumRgT10280]
    1072	50	[DB].[dbo].[_AccumRgT10280]
    776	71,34	[DB].[dbo].[_Document209]
    708	65,04	[DB].[dbo].[_Document209]
    21	79,66	[DB].[dbo].[_Document211]
    14	49,08	[DB].[dbo].[_Document211]
    
    5 апр 13, 14:06    [14140376]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Maxx
    Member [скрыт]

    Откуда:
    Сообщений: 24290
    Eagle_84
    Так разнесено:
    диск "с" - ОСь и транзакты - RAID1 (два физических диска) - в данном тесте режим Simple, в логах, судя по io операциям, не записывалось ничего...
    диск "D" - TempDB - RAID1 (два физических диска)
    диск "E" - Пользовательские базы - RAID10 (10 физических дисков)

    в боевом будет Full небось и настанет вам попа ,уносите логи с С,палюббому
    D -нафиг как по мне
    Добавляйте то,что осталось от D в массив под E и кладите все туда , ИМХО
    5 апр 13, 14:09    [14140403]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Eagle_84
    Member

    Откуда: Москва
    Сообщений: 1535
    в целом с дисками понял, спасибо большое.

    вопрос еще в другом:
    есть ли еще что-то, на что стоит обратить внимание? может какую-то доп. информацию предоставить?
    5 апр 13, 14:14    [14140443]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Maxx
    Member [скрыт]

    Откуда:
    Сообщений: 24290
    Maxx
    Добавляйте то,что осталось от D в массив под E и кладите все туда , ИМХО

    или сорбрать 2 райд 10 по 6 дисков
    5 апр 13, 14:15    [14140454]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    МуМу
    Member

    Откуда:
    Сообщений: 1134
    (0) Решение подобной задачи для 1С8х только апгрейдом железа иногда не имеет решения. Нагрузка на tempdb одна из наиболее критичных проблем в 1С. Это следствие неэффективного и тотального обращения к временным таблицам.(они идут не просто таблицы фильтрации а как огромные, промежуточные срезы данных). Более эффективно заняться тюнингом кода.
    8 апр 13, 12:03    [14150415]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    МуМу
    Member

    Откуда:
    Сообщений: 1134
    (0) http://www.perfexpert.ru/
    Вот ссылка на одно из решений
    8 апр 13, 13:02    [14150870]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    rahzer
    Member

    Откуда:
    Сообщений: 2294
    RAID-контроллер какой установлен? BBU или FlacheCache есть на нем? Если упирается в диски и иопсы, а оно похоже так, менять на более скоростные, увеличивать количество шпиндей или решая почти все вышеперечисленное сразу заменить на SSD (2 в зеркало и будет норм). М3 поддерзживают SSD, но смотря какой контроллер и какая корзина, у Вас я так понимаю на 2,5"
    9 апр 13, 09:21    [14154726]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Eagle_84
    Member

    Откуда: Москва
    Сообщений: 1535
    rahzer
    RAID-контроллер какой установлен? BBU или FlacheCache есть на нем? Если упирается в диски и иопсы, а оно похоже так, менять на более скоростные, увеличивать количество шпиндей или решая почти все вышеперечисленное сразу заменить на SSD (2 в зеркало и будет норм). М3 поддерзживают SSD, но смотря какой контроллер и какая корзина, у Вас я так понимаю на 2,5"


    RAID controller - M5015 с 512Mb.
    корзина плюс корзина расширения на 8 дисков.
    диски да, по 2,5"

    на счет SSD думаем уже.

    Пока выполнили рекомендации, которые были озвучены выше, т.е. все в 10 рейд и файлы базы TempDB перенесли на этот рейд массив. Замерили, % активности диска снизился дл 71% с пиками до 180% (гораздо лучше с предыдущими показателями - % активности диска 151.37 696). Средняя очередь 0,4 в пике 16.

    Вроде бы пока справляемся, SSD уже как предложение сделали :)
    9 апр 13, 16:38    [14157779]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    rahzer
    Member

    Откуда:
    Сообщений: 2294
    автор
    RAID controller - M5015 с 512Mb.

    Аккумулятор то для него есть ака BBU? А то некоторые экономят, в таком случае пофиг на объем памяти ибо она больше для статистики)
    автор
    Пока выполнили рекомендации, которые были озвучены выше, т.е. все в 10 рейд и файлы базы TempDB перенесли на этот рейд массив

    Так это уже в FAQ"и пора заносить, на одном контроллере нет смысла ставить небольшое зеркало и кучу других дисков в 10 рэйд, разница как раз не в пользу разделения и пофиг, что там отедельно шпиндели под одну задачу. Данные все равно через один кеш идут, а 10 ка заруливает по иопсам особенно если не 4 диска а более..
    автор
    SSD уже как предложение сделали :)

    А что по ценам? Интересно со своими сравнить) Прошивочку на контроллер тоже поди надо будет обновить.
    9 апр 13, 17:40    [14158243]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    sergant138
    Member

    Откуда:
    Сообщений: 37
    Добрый день. Хочу проделать такое. Базу держать sas-дисках в raid10, а tempdb+log вынести на ssd диск, у базы "простая" модель восстановления. Потеряю ли какие данные если вдруг этот ssd откажет, и перестанут быть доступными tempdb+log? База впринципе останется на месте. Потеряются незавершенные транзакции и пользователям придется все заново создавать?
    11 апр 13, 12:11    [14166349]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    Maxx
    Member [скрыт]

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

    Recovery Models
    11 апр 13, 12:29    [14166478]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    rahzer
    Member

    Откуда:
    Сообщений: 2294
    А купить еще один SSD и в зеркало, не? Хотя все зависит от Ваших политик простоя, оперативности, бэкапов и т.п.
    11 апр 13, 12:36    [14166538]     Ответить | Цитировать Сообщить модератору
     Re: мониторинг производительности связки 1с-MS SQL  [new]
    sergant138
    Member

    Откуда:
    Сообщений: 37
    Спасибо! Получается, что потеряется все что было сделано после последней резервной копии. В принципе приемлемо с учетом частоты разностных бэкапов.

    Да я просто хочу попробовать сначала на одиночном ssd, а там можно думать и о raid ssd.
    11 апр 13, 12:56    [14166665]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить