Помогите понять чего не хватает серверу?

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

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

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Помогите понять чего не хватает серверу?

Сообщение igornov » 08 июн 2006, 16:06

Hi All!

Приобрели новый IBM xSeries 460 4x3,3Ггц L2/L3 1Mb/8Mb RAM 18Gb
Хранилище с DS4300 c 5-ю FC дисками в RAID 5 (общий объём RAID 544GB, разбит на 2 луна и распределён через 2 контроллера).

БД на хранилище 120Gb. Подключается до 160 пользователей. OS MS Windows 2003 Enterprise sp1, MS SQL 2000 sp3 Enterprise.

Сервер сконфигурирован для работы с ~16Gb RAM остальное оставлено системе.

Средние значения дисковых очередей в основном ниже 1. Процессоры иногда нагружаются до 85 процентов.
Смущает низкое значение счётчика Cache Hit Ratio - ниже 50%.

В логах сервер в момент самого низкого значения Cache Hit Ratio написал

WARNING: Failed to reserve contiguous memory of Size= 65536.
Query Memory Manager: Grants=1 Waiting=0 Maximum=108745 Available=108071
Global Memory Objects: Resource=2561 Locks=710
SQLCache=454 Replication=2
LockBytes=2 ServerGlobal=46
Xact=34
Dynamic Memory Manager: Stolen=142403 OS Reserved=19064
OS Committed=19030
OS In Use=18841
Query Plan=153673 Optimizer=0
General=5662
Utilities=60 Connection=989
Procedure Cache: TotalProcs=30177 TotalPages=144276 InUsePages=53822
Buffer Counts: Commited=2176000 Target=2176000 Hashed=2031910
InternalReservation=422 ExternalReservation=482 Min Free=1008
Buffer Distribution: Stolen=4294965626 Free=1490 Procedures=144276
Inram=0 Dirty=12174 Kept=0
I/O=0, Latched=695, Other=2019035


Как лечить столь низкое значение Cache Hit Ratio?

Заранее благодарен.

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

Сообщение a_shats » 02 авг 2006, 18:02

Это бы надо с самим софтом разбираться - чего он так много из базы читает.
И - что-то непонятное у Вас с очередью.
Низкий кэш-хит - сталбыть, мощное чтение с винтов.
А винтов всего 5 на 160 человек. По-хорошему, надо бы 2-3 полки 15К винтов.
Пожалуйста, посмотрите еще счетчики
Physical Disk/диски с базой
Disk reads/sec
Disk Writes/sec
Disk Read bytes/sec
Disk Write bytes/sec
Average Disk Queue Length
Current Disk Queue Length

И - где у Вас расположена tempdb ???

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 21 сен 2006, 14:14

Hi!

Ну наконец-то отозвались

Значит счётчики

База состоит из 5-ти файлов

3 находятся на диске D
2 на диске E

Disk reads/sec D  в среднем 16,000-17,000  max 160,000-170,000
                     E  в среднем  150,000-160,000 max 900,000-1000,000
Disk Writes/sec D в среднем 18,000-20,000 max 94,000-100,000
                      E  в среднем 0,000 max 0,000
Disk Read bytes/sec D в среднем 11,000 -12,000 max 54,000-56,000
                             E в среднем 26,000-40,000 max 340,000-400,000
Disk Write bytes/sec D в среднем 60,000-80,000 max 75,000-100,000
                              E в среднем 0,000 max 0,000
Average Disk Queue Length D в среднем 0,900-1,100 max 43,000-45,000
                                        E в среднем 0,700-1,000 max 2,400-2,450
Current Disk Queue Length D в среднем 0,060-0,100 max 92,000-96,000
                                       E в среднем 0,100-1,500 maх 37,000-38,000

tempdb находится на отдельном контроллере с 2-мя дисками в RAID 1. Там же находится и операционка.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 21 сен 2006, 18:29

igornov писал(а):Average Disk Queue Length D в среднем 0,900-1,100 max 43,000-45,000
                                        E в среднем 0,700-1,000 max 2,400-2,450
Current Disk Queue Length D в среднем 0,060-0,100 max 92,000-96,000
                                       E в среднем 0,100-1,500 maх 37,000-38,000
Эти значения достаточно большие. Андрюха правильно сказал, при такой базе надо бы дисков поболе.

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 22 сен 2006, 09:25

Увеличение дисков даст возможность повысить Cache Hit Ratio?
Но ведь количество оперативной памяти где размещаются планы выполнения запросов от этого не увеличится.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 22 сен 2006, 10:03

igornov писал(а):Увеличение дисков даст возможность повысить Cache Hit Ratio?
Но ведь количество оперативной памяти где размещаются планы выполнения запросов от этого не увеличится.
Честно говоря это не ко мне, Cyberdrake or a_shats могут подсказать. Однако увеличение дисков резко уменьшит очередь к дискам, что должно достаточно сильно увеличить производительность системы в целом.

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

Сообщение a_shats » 22 сен 2006, 11:11

Нет, для повышения Cache Hit Ratio надо увеличить ОЗУ, фиксированно дать большой его объем для SQL и (можно скриптами) запихать в кэш наиболее часто используемые данные :)
А вот чтобы улучшить производительность - я бы рекомендовал закупиться еще одной полочкой (пока они еще есть) и забить полки 15К винтами. Дать под базы RAID10 из макс. возможного в таком конфиге кол-ва винтов и RAID10 под логи из 4 винтов.
Disk Writes/sec D в среднем 18,000-20,000 max 94,000-100,000
Для 5 винтов это ОЧЕНЬ много (винт 10К дает примерно 300 ИОпс, 15К - 450-500 ИОпс, а вот из кэша DS4300 как раз примерно столько и дает). В Вашем случае кэш контроллера (256 МБ) используется, что называется, до упора.
Потому и говорю, что винтов надо сильно больше, и винты нужны шустрые.

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

Сообщение gs » 22 сен 2006, 11:52

Я может чего-то не понял, но мне кажется тут кто-то три лишних нуля нарисовал.

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 22 сен 2006, 14:10

gs писал(а):Я может чего-то не понял, но мне кажется тут кто-то три лишних нуля нарисовал.
после нуля не целые а десятые, сотые и тысячные... значения из системного монитора.

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 22 сен 2006, 14:26

a_shats писал(а):Нет, для повышения Cache Hit Ratio надо увеличить ОЗУ, фиксированно дать большой его объем для SQL и (можно скриптами) запихать в кэш наиболее часто используемые данные :)

А вот чтобы улучшить производительность - я бы рекомендовал закупиться еще одной полочкой (пока они еще есть) и забить полки 15К винтами. Дать под базы RAID10 из макс. возможного в таком конфиге кол-ва винтов и RAID10 под логи из 4 винтов.
Даст ли реальный прирост производительности увеличение памяти на 32-разрядной системе (уже 18Gb!!!)? Увеличится ли от этого Cache hit Ratio?

Что значит пока они ещё есть (полки)? Их что с производства снимают?

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 22 сен 2006, 15:08

igornov писал(а):Что значит пока они ещё есть (полки)? Их что с производства снимают?
DS4300 - массив, который похоже доживет только до конца года. Вместо нее пришел DS4700 весь из себя 4ГБ.

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

Сообщение a_shats » 22 сен 2006, 15:39

1. Да, должен дать - какие бы не были потери производительности от РАЕ, ОЗУ по определению быстрее, чем любая дисковая.
Cache Hit Ratio - отношение количества кэш-хитов к кэш-миссам в процентах :) Чем больше часто используемых данных окажется в кэше - тем выше процент кэш-хитов.
Хотя - это не панацея. Собственно, на эффект собственного желания держать хот-спот базы в ОЗУ  Вы и напоролись. Сервер БД должен быть сбалансирован по подсистемам, в том числе и по дисковой - а она у Вас заведомо недостаточна для решения задачи.
2. DS4300 до конца года будет снят с производства скорее всего, то есть - если нужны JBOD для него (EXP710), то заказывать их нужно сейчас.

edo
Advanced member
Сообщения: 123
Зарегистрирован: 14 фев 2006, 02:40
Откуда: пенза

Сообщение edo » 22 сен 2006, 18:35

на что они напоролись с десятками чтений в секунду и средней очередью меньше единицы (~1.5 с учетом lun)?
afaik контролер может показать себя при очереди запросов близкой к числу дисков (на чтение особенно).

может у вас на локальные диски нагрузка большая? (диск C как я понял).

насчет хитов - ну стоит наверное добить памяти, если средства позволяют. ещё при таких количествах памяти стоит на 64-битную винду и sql переходить (у ms на сайте есть хорошая статья про это, вкратце на 32-х битной системе память только под кэш используется и то pae достаточно неэффективный механизм).

по дисковой - сделали лучше бы на raid 10, у вас доля записи существенная.
диски 15k?

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 26 сен 2006, 09:44

a_shats писал(а):2. DS4300 до конца года будет снят с производства скорее всего, то есть - если нужны JBOD для него (EXP710), то заказывать их нужно сейчас.
Спасибо за информацию...подумаем.

Аватара пользователя
igornov
Advanced member
Сообщения: 194
Зарегистрирован: 15 окт 2002, 14:02
Откуда: Кривой Рог, Украина
Контактная информация:

Сообщение igornov » 26 сен 2006, 10:17

edo писал(а): может у вас на локальные диски нагрузка большая? (диск C как я понял).

насчет хитов - ну стоит наверное добить памяти, если средства позволяют. ещё при таких количествах памяти стоит на 64-битную винду и sql переходить (у ms на сайте есть хорошая статья про это, вкратце на 32-х битной системе память только под кэш используется и то pae достаточно неэффективный механизм).

по дисковой - сделали лучше бы на raid 10, у вас доля записи существенная.
диски 15k?
tempdb находится (как я писал выше) на диске С. Это 2 диска 36Gb SCSI SAS 10K в RAID 1. Там же находится и операционка.

Disk reads/sec С  почти всегда 0 но бывают пики до 100,000-110,000
Disk Writes/sec С в среднем 3,000-4,000 но часто пики  40,000
Disk Read bytes/sec С почти всегда 0 но бывают пики  2000000,000 Disk Write bytes/sec С в среднем 130000,000-160000,000  часто пики  до 2800000,000
Average Disk Queue Length С в среднем 0,008-0,010 max 0,020
Current Disk Queue Length С почти всегда 0 очень редко пики до 0,020

Насчёт 64-битного sql (я бы рад, но)... у нас эксплуатируется Галактика... и она не может работать на 64-битной платформе.

Что касается дисковой попробуем сделать RAID 10... да диски 15K.

Ответить

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

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

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