powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Hardware [игнор отключен] [закрыт для гостей] / Значительное увеличение количества шпинделей
85 сообщений из 85, показаны все 4 страниц
Значительное увеличение количества шпинделей
    #38000536
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая. Имеем учетную систему на базе MS SQL Server.
База крутится на DL380 G6. Две корзины по 8 дисков каждая. Каждая на своем контроллере P410 с памятью и батарейкой.
Система RAID1 2xSAS15K
ФайлБД1 RAID10 4xSAS15k
ФайлБД2 RAID1 2xSSD MLC
ФайлБД3 RAID10 4xSAS15k
Log и TempDB RAID10 4xSAS15k

Итого все слоты заняты. Специфика такова, что чтобы что-то изменить в хранилище - нужно ждать останова производства, а это бывает очень редко. Производство круглосуточное. Остановить сервер я могу на час или на два максимум.

Имеем. Все работает нормально, быстро и т.п., но после запуска новой очень сложной системы посекционного учета получили тормоза у всех пользователей, которые работают с этим блоком. За три месяца в программе оптимизировано все что только можно (будем считать что оптимизировать программу уже некуда). Пользователям всем обновлены компьютеры, переведены на гигабит, проведен анализ узких мест.
После этого некоторая стабильность появилась, но нет роста скорости работы. Просто вот выполняется операция 10 секунд, а нужно чтобы выполнялась 1 секунду.
Насколько я могу судить - просто не хватает скорости работы дисковой системы.
Пример. Есть запрос по остаткам - на пустом сервере выполняется 8 секунд, на загруженном в обычном режиме 20, а нужно чтобы выполнялся за 2.

Анализ всех узких мест по счетчикам и т.п. показывает что все ништяк.

Грешу на дисковую систему.
Теперь самое интересное - как с минимальными затратами протестировать - а правда ли что модификация дисковой подсистемы даст значительный прирост производительности.
Самый классный вариант - это взять в опытно-промышленную эксплуатацию СХД на 24xSAS15k, забить ее ими, сделать RAID10, положить туда базу и посмотреть что произойдет с реальной производительностью. Если она действительно скаканет - купить эту полку. Подкинуть полку и перенести на нее базы это дело нехитрое и не требует останова производства.

Имеется DL380 G7 (резервный сервер). На нем винты под систему 2xRAID1, плюс скоро придут еще 8xSAS15K.
Общаюсь сейчас с поставщиком каким образом сделать чтобы G7 стал для основного G6-ого полкой чтобы протестировать скорость работы.
Покритикуйте пожалуйста меня. Может быть есть какие-то другие способы для моего случая потестировать скорость работы базы на значительно бОльшем количестве шпинделей?

Еще раз обращаю внимание что интересует рост скорости работы скажем так в десять раз, поэтому предложения по поводу того чтобы разложить Log и TempDB на разные диски - не интересны (по ним кстати по счетчикам и анализам проблем нет). Нужно что-то реально действенное, но дешевое на этапе тестирования. Купить мы можем и не дешевое, но нужно понять - будет ли реальный рост.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38000577
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

Имхо, нужно было это в подфорум по MS SQL писать.
По моему опыту, когда говорят "в программе оптимизировано все что только можно", то там остался еще изрядный запас по оптимизации. Не обязательно в самой программе, а, может быть, в настройках СУБД.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38000612
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftKaktus_,

Имхо, нужно было это в подфорум по MS SQL писать.
По моему опыту, когда говорят "в программе оптимизировано все что только можно", то там остался еще изрядный запас по оптимизации. Не обязательно в самой программе, а, может быть, в настройках СУБД.

Я поэтому и акцентирую внимание на том, что программно все что можно - все оптимизировано по максимуму. А даже если где-то и не оптимально, то оптимизация не даст роста производительности на порядок.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38000658
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_miksoftИмхо, нужно было это в подфорум по MS SQL писать.все оптимизировано по максимуму. А даже если где-то и не оптимально, то оптимизация не даст роста производительности на порядок.Все равно лучше туда. Там подскажут как посмотреть узкие места в текущей работе. Может, вы вовсе не в диски упираетесь, а в CPU или в недостаток оперативки? С другими СУБД мне известны случаи, когда увеличение ОП и правильная настройка СУБД для использования увеличенного объема ОП давали многократное увеличение производительности.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38000882
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Еще раз обращаю внимание что интересует рост скорости работы скажем так в десять раз, поэтому предложения по поводу того чтобы разложить Log и TempDB на разные диски - не интересны (по ним кстати по счетчикам и анализам проблем нет).Так надо найти узнкое место...

Во что упирается? Если не в Log и не в TempDB, то просто много чтений с файла базы?
Чтения последовательные или случайные? Большими блоками или маленькими
Из какого файла, из какого из ваших рэйдов?
Очередь большая? Время отклика (Response Time) большое?
Если затык в чтениях из файлов, может увеличить память (если есть возможность)?
Kaktus_Общаюсь сейчас с поставщиком каким образом сделать чтобы G7 стал для основного G6-ого полкой чтобы протестировать скорость работы.
Покритикуйте пожалуйста меня. Может быть есть какие-то другие способы для моего случая потестировать скорость работы базы на значительно бОльшем количестве шпинделей?Да что, идея хорошая, малыми силами потестировать...
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38001346
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,
Я не уверен, что заменой жестких дисков на жесткие диски можно разогнать правильную БД в 10 раз, разве что активное подмножество уляжется в подросшую суммарную буферную память дисков.
Вы для начала проясните хотя бы размеры базы/активного подмножества и тип нагрузки --- OLTP и OLAP лечатся сильно по-разному.
И как вообще установлено, что тормозит именно дисковая подсистема? Скажем, сильно ли растёт/уменьшается число иопсов если вы уменьшаете/увеличиваете размер дискового кэша в СУБД?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38002740
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База данных является обычной учетной системой с 70-ю одновременными пользователями. Бухгалтерия, производственный учет, логистика и т.п.
Пишу сюда, т.к. интересует именно дисковая система.
В общем сервер сейчас выглядит так:
Объем БД 100 Гб.
Загрузка процессора около 17 процентов
Память - Ввод/Вывод страниц в секунду как и должны быть ноль
Кэш - Процент попаданий при отображении как и должен быть 100 процентов
I\Oпсы - если суммирую обращения чтения и удвоенные обращения записи, делю на количество дисков, то для SSD и не превышает 3000 (Это поидее нормально для HP MLC SSD), а для SAS15K не превышает 300, что для них тоже вроде бы нормально.
Среднее время чтения/записи изредка доходит по некоторым дискам до 15мс, а так 2мс.
Очереди по дискам примерно одинаковые. Подскакиваеют до 20-50 пиками. Пики длиной около 5-7 секунд. Расстояние между пиками около 30 секунд.

Распределение нагрузки по дискам (суточная):

Система RAID1 2xSAS15K - Чтение 12 Гб, запись 0.1 Гб (тут лежит только mdf)
ФайлБД1 RAID10 4xSAS15k - Чтение 700 Гб, запись 5 Гб
ФайлБД2 RAID1 2xSSD MLC - Чтение 1500 Гб, запись 1.5 Гб
ФайлБД3 RAID10 4xSAS15k - Чтение 700 Гб, запись 0.2 Гб
Log и TempDB RAID10 4xSAS15k - LogЧтение 2 Гб, LogЗапись 4 Гб, TempDBЧтение 52 Гб, TempDBЗапись 52 Гб.

Большие объемы чтения связаны с тем, что каждые 15 минут формируется разностный бэкап. Полный делается раз в день. Разностный бэкап делается от 10 секунд первый до 3 минут последний, но не замечено никакой связи снятия разностного бэкапа и скорости работы системы.
Разностный и полный бэкап уходят на сетевой диск.

Итак. Получаем не шибко перегруженную систему (на мой взгляд). И работает она нормально. Но нужен значительный рост производительности на порядок. Опять же - сервер останавливать можно только на 1 час максимум чтобы что-то засунуть/высунуть/проверить.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38002771
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Большие объемы чтения связаны с тем, что каждые 15 минут формируется разностный бэкап. Полный делается раз в день. Разностный бэкап делается от 10 секунд первый до 3 минут последний, но не замечено никакой связи снятия разностного бэкапа и скорости работы системы.То есть диски и так не напрягаются, раз лишняя задача на отклик не влияет, верно?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38002818
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruKaktus_Большие объемы чтения связаны с тем, что каждые 15 минут формируется разностный бэкап. Полный делается раз в день. Разностный бэкап делается от 10 секунд первый до 3 минут последний, но не замечено никакой связи снятия разностного бэкапа и скорости работы системы.То есть диски и так не напрягаются, раз лишняя задача на отклик не влияет, верно?

Да, получается так. По крайней мере нет тенденции что увеличивается скажем так частота пиков счетчиков в 0,15,30,45 минут каждого часа.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38003382
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно перенести отчетность на отдельный сервер.

Если не так радикально, то проверить версию MS SQL Server (сервиспаки), даты статистики, фрагментацию индексов, где можно - там подкрутить планы выполнения. Например, если у запроса формируется неверный план, то запрос может выполнятся очень-очень долго, но при этом практически не будет использовать ресурсы оборудования.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38004337
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Еще раз обращаю внимание что интересует рост скорости работы скажем так в десять раз , поэтому предложения по поводу того чтобы разложить Log и TempDB на разные диски - не интересны (по ним кстати по счетчикам и анализам проблем нет). Нужно что-то реально действенное, но дешевое на этапе тестирования. Купить мы можем и не дешевое, но нужно понять - будет ли реальный рост.

В 10 раз. Вы фантазёр...

1. Сеть гигабитная?
2. Оперативы хватает?
3. Лишнее ПО на сервере установлено?
4. Камень на сервере каой?
5. Статистика по ночам считается?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38005258
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KhodKaktus_Еще раз обращаю внимание что интересует рост скорости работы скажем так в десять раз , поэтому предложения по поводу того чтобы разложить Log и TempDB на разные диски - не интересны (по ним кстати по счетчикам и анализам проблем нет). Нужно что-то реально действенное, но дешевое на этапе тестирования. Купить мы можем и не дешевое, но нужно понять - будет ли реальный рост.

В 10 раз. Вы фантазёр...

1. Сеть гигабитная?
2. Оперативы хватает?
3. Лишнее ПО на сервере установлено?
4. Камень на сервере каой?
5. Статистика по ночам считается?

Сеть гигабитная.
Оперативки 16 Гб. На базу 100 Гб. SQL по счетчикам кушает ее правильно всю.
Лишнего ПО вообще ноль. Только антивирус (авира), которая вообще не замечена в съедании ресурсов.
Процессора два XeonQC E5504 2ГГц
Статистика обновляется по десятку основных таблиц каждую ночь. Хм. А может быть обновлять не по десятку таблиц, а по двум-трем. Т.е. расширить список таблиц, которые считаются основными.

Кстати еще одна проблема специфичная. Реиндекс. Полный реиндекс базы идет 2 часа. А т.к. производство круглосуточное - остановить на 2 часа процесс нельзя. Но реиндекс не панацея и как показывала практика предыдущих лет когда работали не круглосуточно - делает работу более стабильной, но не дает прирост на порядок.

Так вот насчет в 10 раз. Фишка в том, что компания готова платить за этот прирост деньги, но я не могу понять как определить узкое место. А может быть его и нет - может быть просто нужно брать новый мощный сервер с EVA. Но это значительные деньги для компании и компания пойдет на это, но при условии что будет обоснование и не окажется что скорость нового сервера такая же как и у старого.

Дайте EVA на недельку. ;)
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38005272
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Оперативки 16 Гб. На базу 100 Гб. SQL по счетчикам кушает ее правильно всю.

Лишнего ПО вообще ноль. Только антивирус (авира), которая вообще не замечена в съедании ресурсов.

Статистика обновляется по десятку основных таблиц каждую ночь. Хм. А может быть обновлять не по десятку таблиц, а по двум-трем. Т.е. расширить список таблиц, которые считаются основными.

Кстати еще одна проблема специфичная. Реиндекс. Полный реиндекс базы идет 2 часа. А т.к. производство круглосуточное - остановить на 2 часа процесс нельзя. Но реиндекс не панацея и как показывала практика предыдущих лет когда работали не круглосуточно - делает работу более стабильной, но не дает прирост на порядок.


Оперативу я всё-таки увеличил бы.
Это не так дорого, а результат может возрасти.

Антивируса быть вообще не должно.
Просто должен быть закрыт доступ ко всему лишнему.

Статистику не скажу.
Тут нужно базу видеть
Возможно, где-то в ней избыточность и/или она полностью не приведена к нормальной форме.
Да и запросы можно попытаться оптимизироовать (иногда скорость возрастает сущестенно).

Ну, реиндекс не так и нужен.
Я бы поднял на одной из машин (хоть и рабочих станций) тестовую базу и поигрался таки бы со статистикой и запросами.
Возможно, нужно сделать дефрагментацию таблиц (я больше знаком с информиксом, оттого и не могу сказать, если такое в мсскл).

И напомледок.
У вас как построение ПО: сервер ДБ -рабочие станции. Есть ли сервер приложений? Сколько серверов приложений?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38005305
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Большие объемы чтения связаны с тем, что каждые 15 минут формируется разностный бэкап. Полный делается раз в день.Не лучше каждые 15 минут делать вместо разностного бакапа бакап лога?
Kaktus_Оперативки 16 Гб. На базу 100 ГбЕсли чтений много без учёта бакапов, то увеличение оперативки поможет

Ну и собственно смотрите на запросы, которые вас не устраивают. Что вы упорно продолжаете решать проблемы, которых нет? Может, у вас проц не справляется при выполнении этих запрсов?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38008484
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем итого что решили сделать.
1. Купить 16 Гб памяти (сейчас на базу 100 Гб 16 Гб оперативки) и посмотреть что из этого получится. Цена вопроса 16 тыс рублей, поэтому проблем нет.
2. Ведем переговоры по поводу того чтобы взять полку (пусть даже и без винтов) в опытно-промышленную эксплуатацию на недельку чтобы протестировать возможное значительное увеличение количества шпинделей.
3. Пишем на форум о полученных результатах чтобы поделиться положительными ли отрицательными результатами. :)

Ну и параллельно оптимизируем код, хотя и так уже дальше некуда, но совершенству нет предела.

По поводу бэкапа лога - спасибо идею тоже рассмотрю.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38008540
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

Вот с памятью и гляненте результат.
Хуже уж точно не будет.

А насчёт оптимизации...
Тот же режим конкетации таблиц может увеличить выполнение запроса в разы.

А про результат услышать интересно будет.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38008575
Kaktus_Вобщем итого что решили сделать.
1. Купить 16 Гб памяти (сейчас на базу 100 Гб 16 Гб оперативки) и посмотреть что из этого получится. Цена вопроса 16 тыс рублей, поэтому проблем нет.
2. Ведем переговоры по поводу того чтобы взять полку (пусть даже и без винтов) в опытно-промышленную эксплуатацию на недельку чтобы протестировать возможное значительное увеличение количества шпинделей.
3. Пишем на форум о полученных результатах чтобы поделиться положительными ли отрицательными результатами. :)

Ну и параллельно оптимизируем код, хотя и так уже дальше некуда, но совершенству нет предела.

По поводу бэкапа лога - спасибо идею тоже рассмотрю.
Графики перфоманс монитора по основным параметрам покажите сначала.
И покажите где и во что упирается. И тут уж ответ будет очевидным, что необходимо оптимизировать.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009559
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
G - зеленый RAID10 из 4 SAS 15K - на нем лежит одна из файлгрупп базы
H,J - синиз RAID10 из 4 SAS 15K - на нем лежит лог и темпдб
C - желтый RAID1 из 2 SAS 15K - на нем лежит mdf-ка
E - красный RAID1 из 2 SSD MLC - на нем лежит одна из файлгрупп базы
F - голубой RAID10 из 4 SAS 15K - на нем лежит одна из файлгрупп базы







На этом примере загружена больше всего одна из файлгрупп (зеленый G). Но такая же загрузка бывает и по другим файловым группам Красной E и голубой F.
Приведенный пример является не максимальной (пиковой) загрузкой сервера, а загрузкой чуть больше чем средней, но и не максимальной.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009723
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

16 гигов ОЗУхи, из них винда показывает выделенных только 5 гигов. Вам точно не надо увеличивать размер дискового буфера в скульсервере? Гигов на пять, для разминки?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009789
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruKaktus_,

16 гигов ОЗУхи, из них винда показывает выделенных только 5 гигов. Вам точно не надо увеличивать размер дискового буфера в скульсервере? Гигов на пять, для разминки?

Да на самом деле SQL видит памяти 12 Гб.

...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009821
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

Что возвращает
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
	type,
	sum(virtual_memory_reserved_kb) as [VM Reserved],
	sum(virtual_memory_committed_kb) as [VM Committed],
	sum(awe_allocated_kb) as [AWE Allocated],
	sum(shared_memory_reserved_kb) as [SM Reserved], 
	sum(shared_memory_committed_kb) as [SM Committed],
	sum(multi_pages_kb) as [MultiPage Allocator],
	sum(single_pages_kb) as [SinlgePage Allocator]
from 
	sys.dm_os_memory_clerks 
group by type
order by type


?

Ну и DBCC MEMORYSTATUS до кучи
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009826
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще тему можно уносить в ветку про MS SQL, потому что затыков по записи на графиках не видно, и стало быть вопрос только в работе с ОЗУхой.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009886
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruKaktus_,

Что возвращает
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
	type,
	sum(virtual_memory_reserved_kb) as [VM Reserved],
	sum(virtual_memory_committed_kb) as [VM Committed],
	sum(awe_allocated_kb) as [AWE Allocated],
	sum(shared_memory_reserved_kb) as [SM Reserved], 
	sum(shared_memory_committed_kb) as [SM Committed],
	sum(multi_pages_kb) as [MultiPage Allocator],
	sum(single_pages_kb) as [SinlgePage Allocator]
from 
	sys.dm_os_memory_clerks 
group by type
order by type


?

Ну и DBCC MEMORYSTATUS до кучи

Первый запрос не работает - может быть потому что у меня MS SQL Server 2000. (Видимо там нет sys.dm_os_memory_clerks

По второму

Buffre Distribution (Buffers)
Stolen 7201
Free 1661
Procedures 17264
Inram 0
Dirty 3593
Kept 0
I/O 2
Latched 1590
Other 433961

Buffer Counts (Buffers)
Commited 465272
Target 465272
Hashed 439146
InternalReservation 1782
ExternalReservation 190
Min Free 960

Procedure Cache (Value)
Commited 465272
Target 465272
Hashed 439146
InternalReservation 1782
ExternalReservation 190
Min Free 960

Dynamic Manager Memory (Buffers)
Stolen 24432
OS Reserved 7056
OS Committed 6997
OS In Use 6623
General 5373
QueryPlan 19928
Optimizer 0
Utilities 138
Connection 818

Glocal Memory Objects (Buffers)
Resource 4237
Locks 1709
XDES 275
SQLCache 697
Replication 2
LockBytes 2
ServerGlobal 52

Query Memory Objects (Value)
Resource 4237
Locks 1709
XDES 275
SQLCache 697
Replication 2
LockBytes 2
ServerGlobal 52

Optimization Queue (Value)
Optimizing 0
Waiting 0
Available 32
Maximum 32
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009925
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Buffre Distribution (Buffers)
Stolen 7201
Free 1661
Procedures 17264
Inram 0
Dirty 3593
Kept 0
I/O 2
Latched 1590
Other 433961

Это по какому обменному курсу буфера к байту похоже на 12 гигов? При 8Kb буферах --- совсем не похоже.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38009958
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruKaktus_Buffre Distribution (Buffers)
Stolen 7201
Free 1661
Procedures 17264
Inram 0
Dirty 3593
Kept 0
I/O 2
Latched 1590
Other 433961

Это по какому обменному курсу буфера к байту похоже на 12 гигов? При 8Kb буферах --- совсем не похоже.

Мне трудно судить, я никогда таким образом память не анализировал. Я глядел чтобы счетчик памяти показывал сколько нужно, плюс ввод/вывод страниц в секунду чтобы стремился к нулю. Сейчас буду глядеть что значат результаты, которые получились с помощью DBCC MEMORYSTATUS (некогда даже о таком не слышал ранее - всегда только про счетчики через профайлер).
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010072
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пришел к тому что результаты DBCC MEMORYSTATUS для меня полный лес и никакого просвета. В документации все описано, но я абсолютно не понимаю какие должны быть оптимальные значения и к чему должны стремиться чтобы понять где у меня узкие места по памяти.

Кто-то может помочь указать явную(ные) проблемы? Буду премного благодарен.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010079
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПервый запрос не работает - может быть потому что у меня MS SQL Server 2000. (Видимо там нет sys.dm_os_memory_clerks
в таком случае у вас может быть выделено максимум 3 гига и то с ключиком /3GB в boot.ini. остальное надо выделять через PAE/AWE и то оно сможет использоваться только под буфера данных..
у вас оно ТОЧНО настроенно?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010081
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор16 гигов ОЗУхи, из них винда показывает выделенных только 5 гигов.
select @@version?
зело похоже на 4 сервис пак без апдейтов.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010087
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и как всегда некисло было бы план запроса со статистикой выполения.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010137
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня Win2003R2 SP2 64bit и MS SQL Server 2000 Enterprise Edition SP3

Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Сервер обновлялся и настраивался три года назад мною и ориентиром было чтобы счетчик Доступно МБ в профайлере показывал 12 Гб памяти. Он это и показывает. Теперь подробнее.

sp_configure 'awe enabled'
возвращает
minimum 0, maximum 1, config_value 0, run_value 0

Получается что AWE не включен.

В boot.ini никаких ключей PAE 3GB нет.

Я правильно понимаю что AWE выключен и PAE выключен. Как тогда профайлер показывает 12 Гб?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010171
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак тогда профайлер показывает 12 Гб?
совершенно беспонятия.
http://support.microsoft.com/?id=271624
попробуйте это.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010174
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
майкрософт говорит "examine the SQL Server: Memory Manager/Total Server Memory (KB) counter in System Monitor"
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010176
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понял что стормозил - в 64bit-ной Win2003 не нужно включать ключ PAE в boot.ini.

Осталось разобраться с AWE.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010187
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://support.microsoft.com/kb/274750
авторNote: To use Address Windowing Extensions (AWE) memory, you must run the SQL Server 2000 database engine under a Windows account that has been assigned the Windows lock pages in memory administrative credentials.
Код: sql
1.
2.
3.
4.
5.
6.
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010280
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Включил AWE. Теперь по счетчику "Доступно МБ" память упала с 12Гб до 3Гб. И не поднимается. Хотя min 9Гб, max 12Гб.

Ну теперь я вообще ничего не понимаю.

Может ли врать счетчик "Доступно МБ"? Как его проверить?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010291
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предвидя возможный вопрос по закреплению страниц в памяти.
Пользователь, под которым запускается SQL Server - это администратор домена и в Локальной политике в Назначении прав пользователя в Закреплении - он есть.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010298
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что сейчас DBCC MEMORYSTATUS говорит в части Buffer Counts и Buffer Distribution?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010323
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Может ли врать счетчик "Доступно МБ"? Как его проверить?

автормайкрософт говорит "examine the SQL Server: Memory Manager/Total Server Memory (KB) counter in System Monitor"
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010454
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Buffer Distribution (Buffers)

Stolen -3593
Free 1070
Procedures 77095
Inram 0
Dirty 9081
Kept 0
I/O 0
Latched 804
Other 1451543

Buffer Counts (Buffers)

Commited 1536000
Target 1536000
Hashed 1461428
InternalReservation 212
ExternalReservation 0
Min Free 512

Интересный момент, что на аналогичном сервере (резервный)
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010461
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторOther 1451543
это примерно
11,07439422607422 гиг буферов. поздравляю.
Other. These are committed pages that do not meet any of the criteria mentioned earlier. Typically, the majority of buffers that meet this criteria are hashed data and index pages in the buffer cache.
посмотри наконец счетчик Total Server Memory
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010487
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowавторOther 1451543
это примерно
11,07439422607422 гиг буферов. поздравляю.
Other. These are committed pages that do not meet any of the criteria mentioned earlier. Typically, the majority of buffers that meet this criteria are hashed data and index pages in the buffer cache.
посмотри наконец счетчик Total Server Memory


Хм. Счетчик не изменился.



Ну и мало ли вдруг что-то прояснит

...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010495
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помоему ты не тот счетчик смотришь. потому что даже графа "выделение памяти " в диспетчере задач, на первом скриншоте 4 гига а щас 14.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010497
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010500
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и графа "экземпляр" должна быть заполнена.

как то так.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010507
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

Да, действительно похоже что память сожрана, но счетчик упрямо показывает 3 гига.

...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010509
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не тот счетчик. ищи там раздел MS SQL
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010516
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowне тот счетчик. ищи там раздел MS SQL

Если честно, то очень стыдно что я пялюсь по памяти не в тот счетчик. Я понял проблему. У меня засада в том, что счетчиков SQL Server-а почему-то в профайлере не видно. Сейчас разберусь с этой проблемой и обязательно отпишусь что получилось в итоге.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38010518
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Other 1451543Во-от. Завтра посмотрите на отклики, и если всё ещё тормоза (что не исключено, потому что мы по-прежнему не знаем загрузки), то воткните ещё 16 памяти и доведите число "дисковых" буферов до трёх миллионов (или трёх с четвертью). Если этот дешёвый способ не поможет, то надо внимательней смотреть будет.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38011055
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думали над переходом на 2012 версию SQL Server`а?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38011077
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикНе думали над переходом на 2012 версию SQL Server`а?

На Win2003R2 SP2 64bit?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38011326
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и винду переставить.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104812
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Постепенно был проведен апгрейд сервера. Отписываюсь по результатам. Возможно кому-то будет интересна практика наращивания мощности сервера с реальными результатами.

1. Сначала была добавлена память. Во первых были задействованы 12 Гб из 16-ти имеющихся вместо четырех, которые (к моему стыду) были задействованы ранее.
2. Переведены на гигабитную сеть все пользователи, которые работают с тяжелыми или требующей большой производительности операциями типа учета документов, формирование сложных документов, построение сложных отчетов.
3. Всем этим пользователям (предположим их 20 из 70-ти) были обновлены компьютеры со среднестатистического "по больнице" Celeron 2.2 512 Гб RAM до I3 2Гб RAM.
4. После этого возникло некоторое облегчение. Т.к. процесс происходил далеко не за один день - изменения мало были заметны, но если сравнить с тем что было изначально - стало чуть стабильнее (меньше блокировок, меньше подвисаний - да и вообще приятнее работать пользователям), хотя скорость работы впринципе визуально не изменилась.
5. Были добавлены еще 16 Гб памяти. Итого сейчас используется 29 Гб, т.е. количество буферов как и рекоммендовали выше доведено до 3 млн.
6. После этого стало еще стабильнее.
7. Приобретена дисковая полка и теперь дисковая система в отличии от того, что было имеет следующую структуру:
Первый контроллер
C: - RAID 1 - 2x72 Гб SAS 15K - система
E: - RAID 1 - 2x200 Гб SSD MLC - самый ненагруженный (судя по статистике) кусок БД
F: - RAID10 - 4x72 Гб SAS 15K - Лог-файл
Второй контроллер
G: - RAID10 - 4x72 Гб SAS 15K - tempdb
Третий контроллер (полка)
K: - RAID10 - 14x146 Гб SAS 15K - файлы БД кроме того, что лежит на E:
Само собой кэширование, память и батарейки везде. 50% чтение, 50% запись.

8. После этого работа стала еще стабильнее, и даже якобы выросла скорость работы процентов на 10-15.

А вот теперь самое интересное.
Вот счетчики состояния среднего по больнице.



Очереди впринципе выше двойки не поднимаются. По картинке не забываем делить на 100 вертикальную шкалу.



Количество обращений к розовому диску (диск К - где лежит БД) впринципе бывает и зашкаливает за 600, но для 14-ти дисков в RAID10 я думаю это вполне уместно с учетом того, что они справляются судя по следующему скрину.



Как я и писал, что судя по среднему времени отклика - диски справляются, т.к. "пила" идет обычно только по розовому диску и не поднимается выше 10 мс.



99% - это самая обычная картина использования памяти. Т.е. почти все что нужно умещается в оперативке.



Ну и проц впринципе особенно не напрягается.


Вот вроде бы все хорошо и замечательно - сервер пустой, машины пользователей не напрягаются.
А где же рост? Ну хоть процентов на 50? (Я уж не говорю "в разы").
Куда дальше рыть?
Как сделать чтобы скорость выполнения запросов значительно увеличилась?
Учетную систему прошу не ругать, она самая обычная. Просто странно что при значительно проапгрейженном сервере и пользовательских машинах я получил только стабильность и рост скорости около 10%.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104831
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_А где же рост? Ну хоть процентов на 50? (Я уж не говорю "в разы").Вероятно, стоит смотреть и исправлять конкретные запросы и конкретные задержки на IPC.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104850
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ru,

Это понятно, но ведь даже если запрос крайне не оптимален, то он должен после такого апгрейда выполняться значительно быстрее, а не только на 10 процентов.

Предположим имеем таблицу без ключей и индексов. Лежит она на диске. Мы делаем курсором пробежку по этой таблице за 500 мс.

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

Вообще в MS SQL заложена функция гибкого торможения. Ее спонсируют производители железа. :)
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104876
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_iv_an_ru,

Это понятно, но ведь даже если запрос крайне не оптимален, то он должен после такого апгрейда выполняться значительно быстрее, а не только на 10 процентов.С чего бы? Если упор происходит в CPU, то ничего не изменится.

И вообще, вы улучшаете систему с точки зрения производительности, а хотите уменьшения времени реакции (что далеко не одно и тоже).

P.S. В Paint-е выставьте размер картинки по-умолчанию поменьше, например, 100*100 пикселей, чтобы не было дурацких белых полей у скриншотов.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104884
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftKaktus_iv_an_ru,

Это понятно, но ведь даже если запрос крайне не оптимален, то он должен после такого апгрейда выполняться значительно быстрее, а не только на 10 процентов.С чего бы? Если упор происходит в CPU, то ничего не изменится.

И вообще, вы улучшаете систему с точки зрения производительности, а хотите уменьшения времени реакции (что далеко не одно и тоже).

P.S. В Paint-е выставьте размер картинки по-умолчанию поменьше, например, 100*100 пикселей, чтобы не было дурацких белых полей у скриншотов.

Да, с картинками закосячил.

Ну вот вы же видите мою систему - узких мест нет. Проц не загружен, винт не загружен, сеть (не вывел скрины, но всеже) не загружена. Машины пользователей также не шибко загружены.
Че он (сервер) делает? Поидее если нет узких мест система должна работать максимально быстро пока не появится узкое место, на нем она должна и тормозить. Но если у системы нет узких мест? :)
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104896
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

Грейс Хоппер неправильно использовала свои медные наносекунды. Она их студентам показывала, а надо было их этими наносекундами пороть. Чтоб хоть так дошло, что такое латентность, откуда берётся, и почему пиковые пропускные способности не имеют ничего общего с производительностью случайного доступа.

Ваш комп сейчас толще того, который готовил все расписания и транспаранты всех спортивных событий в Олимпиаду-2012. То есть если вы в кадре видели титры с именем спортсмена --- они были вынуты с того компа с кучей дополнительной всячины. Это примерно тысяча запросов от приложений-"читателей" в секунду + 30 "писателей" в секунду + репликация, разумеется. И это была четверть от максимальной постоянной нагрузки, которую он обеспечил на нагрузочных тестах.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104946
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Проц не загруженНу как же? одно ядро загружено почти полностью. Если в этот момент выполняется только один запрос, то как раз в это ядро и будет упор.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104960
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Ну вот вы же видите мою систему - узких мест нет. Проц не загружен, винт не загружен, сеть (не вывел скрины, но всеже) не загружена. Машины пользователей также не шибко загружены.
Че он (сервер) делает? Поидее если нет узких мест система должна работать максимально быстро пока не появится узкое место, на нем она должна и тормозить. Но если у системы нет узких мест? :)Ну так найдите узкие места.

Смотрите конкретные проблемы, а не "система должна работать максимально быстро".
То есть смотрите выполнение конкретного запроса, или целиком цепочку, включая приложение (может, проблема в клиенте, который долго отрисовывает?)

Вам же писали. что нужно находить конкретные проблемы и решать их, заниматься перформансом, а не просто проапгрейдить железо и ждать чуда. Может у вас и раньшще мощности сервера хватало.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104991
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruKaktus_,

Грейс Хоппер неправильно использовала свои медные наносекунды. Она их студентам показывала, а надо было их этими наносекундами пороть. Чтоб хоть так дошло, что такое латентность, откуда берётся, и почему пиковые пропускные способности не имеют ничего общего с производительностью случайного доступа.

Ваш комп сейчас толще того, который готовил все расписания и транспаранты всех спортивных событий в Олимпиаду-2012. То есть если вы в кадре видели титры с именем спортсмена --- они были вынуты с того компа с кучей дополнительной всячины. Это примерно тысяча запросов от приложений-"читателей" в секунду + 30 "писателей" в секунду + репликация, разумеется. И это была четверть от максимальной постоянной нагрузки, которую он обеспечил на нагрузочных тестах.

Сейчас померял профайлером количество запросов в секунду (снял фильтр по Duration). Получилось около 2 тысяч запросов (чтение и запись не делил).

Интересная информация даже для меня. У меня в профайлере по Duration всегда было наложено 100 мс - это чтобы контроллировать ситуацию по торможению.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38104995
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftKaktus_Проц не загруженНу как же? одно ядро загружено почти полностью. Если в этот момент выполняется только один запрос, то как раз в это ядро и будет упор.

У меня обычно статистика по процу изредка касается пиками 100%, но никогда достигнув 100% не остается на ней более 1 секунды и то очень очень редко. Просто гипотетически если я воткну более мощные процы и статистика по использованию процессора уменьшится ровно в два раза - я не думаю что получу даже 10%-ый выигрыш общей производительности системы.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105002
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgKaktus_Ну вот вы же видите мою систему - узких мест нет. Проц не загружен, винт не загружен, сеть (не вывел скрины, но всеже) не загружена. Машины пользователей также не шибко загружены.
Че он (сервер) делает? Поидее если нет узких мест система должна работать максимально быстро пока не появится узкое место, на нем она должна и тормозить. Но если у системы нет узких мест? :)Ну так найдите узкие места.

Смотрите конкретные проблемы, а не "система должна работать максимально быстро".
То есть смотрите выполнение конкретного запроса, или целиком цепочку, включая приложение (может, проблема в клиенте, который долго отрисовывает?)

Вам же писали. что нужно находить конкретные проблемы и решать их, заниматься перформансом, а не просто проапгрейдить железо и ждать чуда. Может у вас и раньшще мощности сервера хватало.

Да как найти узкие места? Уже все обычные узкие места отработаны и судя по счетчикам не являются узкими.
Если укрупненно, то
- Очередей нет
- Проц не загружен
- Памяти достаточно
- Сеть не загружена
- Компы пользователей мощны
- Среднее время чтения и записи на диски намного менее 20 мс

Что еще смотреть? У меня нет длинных запросов - у меня каждый запрос выполняется адекватное количество времени, да и выполнялся раньше адекватное количество времени, но я хочу еще ускорить. Как это сделать? Возможности учетной системы считаем исчерпанными. Нечего там больше оптимизировать. А если что-то и оптимизируем, то это не даст нужно роста. Уже много лет оптимизируем. Нечего там уже переписывать. Только жать базу. А этого я не хочу.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105006
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Вот вроде бы все хорошо и замечательно - сервер пустой, машины пользователей не напрягаются.
А где же рост? Ну хоть процентов на 50? (Я уж не говорю "в разы").
Куда дальше рыть?
Как сделать чтобы скорость выполнения запросов значительно увеличилась?
Учетную систему прошу не ругать, она самая обычная. Просто странно что при значительно проапгрейженном сервере и пользовательских машинах я получил только стабильность и рост скорости около 10%.

1. Обновление статистики.
2. Фрагментация таблиц.
3. Топология сети.
4. Оптимальность запросов к базе.
и т.д.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105014
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_miksoftпропущено...
Ну как же? одно ядро загружено почти полностью. Если в этот момент выполняется только один запрос, то как раз в это ядро и будет упор.

У меня обычно статистика по процу изредка касается пиками 100%, но никогда достигнув 100% не остается на ней более 1 секунды и то очень очень редко. Просто гипотетически если я воткну более мощные процы и статистика по использованию процессора уменьшится ровно в два раза - я не думаю что получу даже 10%-ый выигрыш общей производительности системы.Что в вашем понимании "более мощные процы"?
Если будет больше ядер - лучше не станет. А если повысите частоту - лучше станет, но не более, чем на рост частоты.

Кстати, не забывайте, что 100% - это от всех ядер. А поскольку ядер 8, то может происходить упор в CPU уже при 12%.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105044
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕсли будет больше ядер - лучше не станет. А если повысите частоту - лучше станет, но не более, чем на рост частоты.

Даже менее.
И намного.

Хотя насчёт архитектуры вы не правы.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105059
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KhodmiksoftЕсли будет больше ядер - лучше не станет. А если повысите частоту - лучше станет, но не более, чем на рост частоты.

Даже менее.
И намного.

Хотя насчёт архитектуры вы не правы.Что "менее"? какой-такой архитектуры?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105083
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Khod]Kaktus_ Вырезал...

1. Обновление статистики.
2. Фрагментация таблиц.
3. Топология сети.
4. Оптимальность запросов к базе.
и т.д.

Обновление статистики по основным таблицам (порядка 30-ти) происходит ежедневно принудительно. Плюс стоит Auto Update Statistics. Да и после обновления статистики прироста не видно никакого.

Да, фрагментация есть. Подзасираются, но даже полное перестроение всех абсолютно индексов всех таблиц не дает видимого прироста производительности даже в первое время работы с базой после этой процедуры.

Сеть достаточно разветвленная, на площади порядка 70 тыс кв. метров. Около 120 юзеров из которых учетной системой одновременно пользуются около 70-ти. У 20-ти из них (с самой большой нагрузкой) гигабит. Реальный до сервера через гигабитные естественно свичи. Но это все не узкое место. Дело в том, что скорость выполнения запросов на сервере примерно такая же как и у пользователей. Т.е. нельзя сказать что на сервере выполняется даже в полтора раза быстрее.

Ну а оптимизация запросов - это бесконечная история. Длится она уже несколько лет и ну нечего там уже оптимизировать.

Пожалуйста если есть еще какие-то мысли что может быть гипотетическим узким местом - напишите мне. Просто уже все идеи закончились.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105108
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Пожалуйста если есть еще какие-то мысли что может быть гипотетическим узким местом - напишите мне. Просто уже все идеи закончились.Мои мысли про CPU вы принципиально не воспринимаете?

Сколько в среднем сессий у вас находится в активном состоянии (т.е. выполняют какой-нибудь запрос) ?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105121
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftKaktus_Пожалуйста если есть еще какие-то мысли что может быть гипотетическим узким местом - напишите мне. Просто уже все идеи закончились.Мои мысли про CPU вы принципиально не воспринимаете?

Сколько в среднем сессий у вас находится в активном состоянии (т.е. выполняют какой-нибудь запрос) ?

Почему же. Я пока наблюдаю, но действительно не вижу чтобы хотя бы по одному ядру у меня зашкаливала сотня. Обычно даже если и доходит куда-то высоко, то касается сотни и падает, но это редкость. Т.е. ни одно из ядер на мой взгляд не перегружено.
Сессий в активном состоянии чтобы одновременно выполняли запросы... Вот последний раз я снял - у меня 70 тыс запросов в минуту получилось. Выкинем отсюда 20 тысяч запросов - какой-то пользователь запустил видимо какой-то хитрый отчет и получится что за минуту 30 пользователей (по трассе) выполнили 50 тысяч запросов. Получается в секунду было около 900 запросов от не более чем 30 сессий.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105125
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftKaktus_Пожалуйста если есть еще какие-то мысли что может быть гипотетическим узким местом - напишите мне. Просто уже все идеи закончились.Мои мысли про CPU вы принципиально не воспринимаете?

Сколько в среднем сессий у вас находится в активном состоянии (т.е. выполняют какой-нибудь запрос) ?

Еще один нюанс забыл написать в предыдущем сообщении очень важный. Дело в том, что скорость выполнения на скажем так отключенном от сети сервере примерно такая же как и у пользователей (ну максимум на 20-30 процентов быстрее) но не в разы. Об этом я писал кому-то из пользователей выше и поэтому я сейчас вообще в полной растерянности куда рыть.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105144
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_не вижу чтобы хотя бы по одному ядру у меня зашкаливала сотня. Обычно даже если и доходит куда-то высоко, то касается сотни и падает, но это редкость. Т.е. ни одно из ядер на мой взгляд не перегружено.отдельно взятое ядро мало смысла наблюдать. ОС одну потоку может выделять кванты времени на разных ядрах. Т.е. вы можете видеть 12% загрузки по каждому ядру при одном потоке и этот поток будет упираться в CPU. В реальности, конечно, нагрузка раскидывается по ядрам не столь равномерно, но все равно раскидывается.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105148
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Да, фрагментация есть. Подзасираются, но даже полное перестроение всех абсолютно индексов всех таблиц не дает видимого прироста производительности даже в первое время работы с базой после этой процедуры.

Фрагментация и индексирование понятия разные.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105152
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Ну а оптимизация запросов - это бесконечная история. Длится она уже несколько лет и ну нечего там уже оптимизировать.Забавно, но всегда, когда я встречал такие утверждения, потом находились весьма существенные косяки в оптимизации запросов.
Поспрошайте на MS SQL-ном подфоруме на тему обнаружения самых нагружающих базу запросов.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105483
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Возможности учетной системы считаем исчерпанными. Нечего там больше оптимизировать. А если что-то и оптимизируем, то это не даст нужно роста. Уже много лет оптимизируем. Нечего там уже переписывать.
Kaktus_Ну а оптимизация запросов - это бесконечная история. Длится она уже несколько лет и ну нечего там уже оптимизировать.
Kaktus_Сейчас померял профайлером количество запросов в секунду (снял фильтр по Duration). Получилось около 2 тысяч запросов (чтение и запись не делил).

Интересная информация даже для меня . У меня в профайлере по Duration всегда было наложено 100 мс - это чтобы контроллировать ситуацию по торможению.
Судя по последней цитате, вы даже не начинали заниматься оптимизацией?

Как может человек, гуру по оптимизации и знаток своей учётной системы, не знать, сколько запросов выполняется???

Да перед вами листок должен висеть с этой статистикой, вы должны помнить распределение количества обращений к серверу по типам, по затрагиваемым таблицам, не то что общую цифру.

Kaktus_alexeyvgНу так найдите узкие места.

Смотрите конкретные проблемы, а не "система должна работать максимально быстро".
Да как найти узкие места? Уже все обычные узкие места отработаны и судя по счетчикам не являются узкими.Вы говорите про узкие места в смысле каких то синтетических показателей, да ещё и агрегатные, а я говорю о тех местах, которые не устраивают пользователей.

Есть какие то проблемы у пользователей, или всё нормально?

Если есть, то какие? Например, "накладная после двойного клика по ней в списке накладных показывается медленно".

Сделайте полный трейс от двойного клика до отрисовки последнего пикселя. Изучаете, ищете те блоки, которые выполняются медленно, смотрите, почему медленно.

Проблема может быть:
а) не в сервере
б) не в тяжёлых запросах

Да в чём угодно может быть проблема, например, в домене имена долго ресолвятся или получаются привелегии от AD!
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105493
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftKaktus_Ну а оптимизация запросов - это бесконечная история. Длится она уже несколько лет и ну нечего там уже оптимизировать.Забавно, но всегда, когда я встречал такие утверждения, потом находились весьма существенные косяки в оптимизации запросов.
Поспрошайте на MS SQL-ном подфоруме на тему обнаружения самых нагружающих базу запросов.Причина то постепенно проясняется.

Сервер загружен мелкими запросами, 2К/сек (хотя в принципе это не так и много)
Очевидно, каждое приложение на действие пользователя (или даже не на действие, а при например перерисовках) в один поток высыпает кучу последовательных запросов, ну вот оно и медленно. Там элементарно бага может быть, типа заполнение из базы кучи выпадающих комбобоксов из справочников на рефреш экрана, или что то такое.

Нужно как то писать так, что бы одно пользовательское действие в результате приводило к одному, в крайнем случае, к нескольким запросам к серверу. Тогда сотня пользователей будет незаметно для сервера в десяток раз слабее.

А в данном случае, повторю, нужно просто искать причину, а не смотреть на агрегатные счётчики.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38105514
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgСервер загружен мелкими запросами, 2К/сек (хотя в принципе это не так и много)
Очевидно, каждое приложение на действие пользователя (или даже не на действие, а при например перерисовках ) в один поток высыпает кучу последовательных запросов, ну вот оно и медленно. Там элементарно бага может быть, типа заполнение из базы кучи выпадающих комбобоксов из справочников на рефреш экрана, или что то такое.Да, кстати, недавно была такая тема .
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38106762
Kaktus_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все дело в том, что у меня есть учетная система, которую я не хочу в корне переписывать. Я не думаю что разработчики изначально писали всю ее через жэ. К системе добавлено множество блоков, которая ее расширяют - вот их мы оптимизировали, оптимизируем и будем оптимизировать.
Но я хочу ускорить ту систему, что уже есть. Та, что стоит на сотнях тысячах предприятий в мире.
Для этого я и анализирую счетчики и т.п.
У меня был сервер не очень оптимальный и на нем работала учетная система.
Теперь я считаю что у меня отличный сервер судя по всем известным мне счетчикам, но скорость работы системы не увеличилась даже на половину.
Ясен пень что если всю систему переписать заново, выкинув из нее все то, чем мы не пользуемся и переписать на прямые sql-запросы - все будет летать, но я хочу понять как ускорить имеющуюся систему через "железо", а не через переписывание кода.

И вот поэтому я ищу идеи что бы еще такое сделать чтобы ускорить имеющуюся систему.

Я задумался над оперативной памятью. Мы все привыкли к тому, что оперативная память - это супербыстро. А действительно ли это так?
Вот есть у меня запрос - он выполняется 200 мс и я вижу, что он выполняется без физического чтения страниц по счетчику Pages Read / sec из SQL Server:Buffer Manager.
А настолько ли быстра память?
Вот память, которая у меня стоит это DDR3 1333Mhz PC3-10600, т.е. скорость ее работы 10 Гигабит/сек. Не будем считать ее двухканальной, и процессор трехканальным и тот факт что процессоров два. 10 Гигабит / сек это всего 1 Гигабайт / сек.
Скорость работы жесткого диска SAS 15K порядка 300 Мегабайт / сек (давайте про иопсы не будем. У нас один компьютер, один клиент, один проц, одна планка памяти и один запрос в одну единицу времени). Получается что оперативная память работает всего лишь с такой скоростью, как работали бы три диска SAS 15K в RAID0.
Но ведь это медленно очень!
Поправьте меня - в чем я не прав? Наверняка в чем-то не прав, но в чем не прав в корне? Т.к. получается что лучше оставить SQLю минимум памяти и купить EVA с кучей дисков, которые дадут такую производительность, что обгонят оперативку.
А как работают системы с бОльшей нагрузкой? Насколько я понимаю в разы более крутой памяти в обычной продаже пока нет. Нужно увеличивать количество физических процессоров?

Если подытожить - как увеличить скорость выполнения запроса если он запускается на пустом сервере и все данные, необходимые для этого запроса находятся в оперативной памяти?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38106774
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_давайте про иопсы не будем. У нас один компьютер, один клиент, один проц, одна планка памяти и один запрос в одну единицу времениИ ровно один сектор на диске, ага. Головка всегда сама собой оказывается на нужном месте и одному запросу одного клиента никогда не надо тупо ждать, когда же она попадёт туда, где лежит ответ на запрос. И конечно весь ответ лежит в одном месте, поэтому после первого чтения никогда не надо будет ждать перемещения к другому куску данных.

Давайте не будем ни о чём, кроме последовательных и параллельных иопсов, пока вы не уясните, насколько это важно для СУБД.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38106811
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Вот память, которая у меня стоит это DDR3 1333Mhz PC3-10600, т.е. скорость ее работы 10 Гигабит/сек. Не будем считать ее двухканальной, и процессор трехканальным и тот факт что процессоров два. 10 Гигабит / сек это всего 1 Гигабайт / сек.
Скорость работы жесткого диска SAS 15K порядка 300 Мегабайт / сек (давайте про иопсы не будем. У нас один компьютер, один клиент, один проц, одна планка памяти и один запрос в одну единицу времени). Получается что оперативная память работает всего лишь с такой скоростью, как работали бы три диска SAS 15K в RAID0.
Но ведь это медленно очень!Но память не одноканальная, а процессора не два, ну и на поиск нужно время.
Так что не 3 диска :-)
Kaktus_Т.к. получается что лучше оставить SQLю минимум памяти и купить EVA с кучей дисков, которые дадут такую производительность, что обгонят оперативку.Неправильно. Всё равно чтение идёт через память :-)
Kaktus_Если подытожить - как увеличить скорость выполнения запроса если он запускается на пустом сервере и все данные, необходимые для этого запроса находятся в оперативной памяти?Увеличением частоты процессора, увеличением частоты памяти, ывеличением распаралеливания запроса, и уменьшением распаралеливания запроса (последние 2 варианта зависят от запроса, выгодным может быть и то и другое).
Kaktus_И вот поэтому я ищу идеи что бы еще такое сделать чтобы ускорить имеющуюся систему.Много раз писали - для начала найти причину. Может, вам нужно просто какую то опцию сервера переключить?
Kaktus_Но я хочу ускорить ту систему, что уже есть. Та, что стоит на сотнях тысячах предприятий в мире.А, я сначала по вашим словам понял, что это ваша система. А какая, если не секрет?

Тогда вариант - обратиться в службу поддержки разработчиков.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38106856
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Получается что оперативная память работает всего лишь с такой скоростью, как работали бы три диска SAS 15K в RAID0.
Но ведь это медленно очень!
Поправьте меня - в чем я не прав? Наверняка в чем-то не прав, но в чем не прав в корне? Т.к. получается что лучше оставить SQLю минимум памяти и купить EVA с кучей дисков, которые дадут такую производительность, что обгонят оперативку.Вы опять путаете производительность со временем реакции (в терминах HDD это latency). Производительность массивов дисков, действительно, может быть сравнима с производительностью оперативной памяти, но по latency у них разница на многие порядки.
Так и у своего сервера вы улучшили производительность, а не время реакции. Т.е. теперь он сможет обслуживать больше пользователей без видимого ухудшения.

Kaktus_Если подытожить - как увеличить скорость выполнения запроса если он запускается на пустом сервере и все данные, необходимые для этого запроса находятся в оперативной памяти?Оптимизировать запрос, в т.ч. и классическими методами - индексами и т.п.
Иногда, если СУБД такое умеет и если многие объемные курсоры выбираются не полностью, помогает переключение режима оптимизатора для этих запросов в FIRST_ROWS.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38108581
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробую внести свои 5копеек
по наблюдениям в ХР с помощью ProcessExplorer обнаружил, что система может тормозить из-за Hardware Interrupts and DPCs, очень похоже по приведенным картинкам, все не загруженно, а система тормозит
Hardware Interrupts and DPCs должно быть = 0 или очень близко к 0


а судя по диаграммам - система не нагружена, возникает подозрение, что какие-то ожидания , чего-то у железа, у сетевух или еще чего, что-то не согласованно, возможно необходимо оптимизировать сеть (величину пакетов и пр.), процессор больше простаивает (ожидая готовности чего-то) вместо обработки, уж загрузка процессоров к этому очень склоняет.

как пример - сеть передает, но с ошибкой, и пока весь буфер передастся система будет ждать. ведь не UDP протокол.
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38109557
Khod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_Все дело в том, что у меня есть учетная система, которую я не хочу в корне переписывать. Я не думаю что разработчики изначально писали всю ее через жэ. К системе добавлено множество блоков, которая ее расширяют - вот их мы оптимизировали, оптимизируем и будем оптимизировать.

Святая наивность.
Сколько лет системе?
Под какую платформу и железо она написана?

Оптимизировать нужно в комплексе.
А не только одну часть (но не самую главную).
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38109868
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KhodСколько лет системе?
Под какую платформу и железо она написана?Ладно, если много лет, то совсем не обязательно медленно или плохо сделано, наверняка даже наоборот.

Kaktus_Все дело в том, что у меня есть учетная система, которую я не хочу в корне переписывать. Я не думаю что разработчики изначально писали всю ее через жэ. К системе добавлено множество блоков, которая ее расширяют - вот их мы оптимизировали, оптимизируем и будем оптимизировать.Вот интересно - все "сотни тысяч инсталляций" этой системы так плохо работают, или только те, которые вы меняли?
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38111276
Перекотихода
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaktus_,

Вместо Raid 10 сделате Raid 5

Поменяйте БД на промыштенную.
Например на Oracle
...
Рейтинг: 0 / 0
Значительное увеличение количества шпинделей
    #38111806
rahzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВместо Raid 10 сделате Raid 5
На запись и перезапись 5-ка будет медленнее гораздо, чем 10. По чтению примерно равно или чуть хуже.
авторНапример на Oracle
1С например заточена под MS SQL, хоть на Оракле, хоть на дб\2 - ведет себя медленнее.
...
Рейтинг: 0 / 0
85 сообщений из 85, показаны все 4 страниц
Форумы / Hardware [игнор отключен] [закрыт для гостей] / Значительное увеличение количества шпинделей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]