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

Откуда:
Сообщений: 17
Имеем 1С-базу 30 Гб, 25-30 активных пользователей, связку терминального и SQL-сервера по гигабитной сети. Конфа SQL-сервера: PentiumD 3,4 GHz, 4 GB RAM, массив RAID5 на контроллере Adaptec 2130S из 4 дисков SCSI 10 000RPM Fujitsu. Используем SQL 2005 WorkGroup Edition.

Всё это добро в последнее воемя тормозит, блокировки журнала очень часто (по 5-10 секунд).
Делал замер производительности по счётчикам винды: загрузка проца средняя 60%, в пиковые моменты - 100. Средняя длина очереди диска - 200 (максимальная больше 1000), в основном очередь на запись, счётчик очереди по чтению поменьше. SQL использует 3 гига памяти.

Подскажите пожалуйста, какие счётчики посмотреть, какие замеры сделать чтобы определить узкое место. Нужно решить - делать апгрейд железа (что брать?) чтобы тормоза уменьшились или это железо потянет если сосредоточиться на оптимизации. Если какую-то информацию не сообщил - исправлюсь, спрашивайте.
15 сен 09, 16:30    [7662714]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Glory
Member

Откуда:
Сообщений: 104760
А у вас на вашем RAID5 все-все-все ? Т.е. и базы и журналы и своп и система ?
15 сен 09, 16:35    [7662760]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
iljy
Member

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

у вас RAID5 - этим все сказано. Разбивайте и разносите log, данные и tempdb.

А счетчики производительности надо смотреть скульные, они более информативны.
15 сен 09, 16:35    [7662762]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
Да, один массив на всё. Вычитал рекомендации, что лог лучше класть на RAID10, а данные на RAID1, это верно?

iljy, какие счётчики стоит посмотреть?
15 сен 09, 16:41    [7662803]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Glory
Member

Откуда:
Сообщений: 104760
pavel_tr

iljy, какие счётчики стоит посмотреть?

Да вон у вас "Средняя длина очереди диска - 200 (максимальная больше 1000)".
15 сен 09, 16:43    [7662818]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
Просто такими замерами раньше не занимался, хотел убедиться, что узкое место - диски. Проц-то тоже не простаивает, и у него средняя нагрузка большая, тогда как очередь к диску подскакивает только в моменты "подвисаний" (когда блокируется журнал)
15 сен 09, 16:49    [7662875]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
iljy
Member

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

диски узкие, даже не сомневайтесь. и что подвисает на записи в журнал - тоже понятно. RAID очень плох при случайном доступе, и чем больше разнородной активности вы на один физический массив вешаете - тем ему хуже, и увеличение числа дисков не спасет. Так что разбивайте ваш RAID, а на что - тут зависит от. В первую очередь - какие требования по бесперебойности работы, по времени простоя, по сохранности данных.
15 сен 09, 16:54    [7662920]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
Ясно. Значит диски. Требований особых нет, важно чтоб данные не потерялись, если диск из массива вылетит. Бесперебойность и простой: работаем 5 дней в неделю по 8 часов, оставшиеся 2 дня - в удалённом офисе 4 человека через терминал.

Посоветуйте как организовать массив для лучшей производительности. Всего у нас 5 дисков (в первом посте опечатка). Может докупить/поменять их на что-то? Ещё вопрос: в контроллере нет батарейки, соответственно кэширование записи отключено. Если её поставить - эффект будет?
15 сен 09, 17:04    [7663013]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
iljy
Member

Откуда:
Сообщений: 8711
pavel_tr
Ясно. Значит диски. Требований особых нет, важно чтоб данные не потерялись, если диск из массива вылетит. Бесперебойность и простой: работаем 5 дней в неделю по 8 часов, оставшиеся 2 дня - в удалённом офисе 4 человека через терминал.

По бесперебойности - непонятно. Что будет если сервак остановится посреди рабочего дня, в смысле через сколько времени прибудет расстрельная команда?

pavel_tr

Посоветуйте как организовать массив для лучшей производительности. Всего у нас 5 дисков (в первом посте опечатка). Может докупить/поменять их на что-то? Ещё вопрос: в контроллере нет батарейки, соответственно кэширование записи отключено. Если её поставить - эффект будет?

рекомендации самые общие, как всегда - лог на RAID 1, дальше возможны варианты.

если поставить батарейку - эффект возможно будет, а возможно и нет, тут как повезет.
15 сен 09, 17:20    [7663134]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
iljy
По бесперебойности - непонятно. Что будет если сервак остановится посреди рабочего дня, в смысле через сколько времени прибудет расстрельная команда?

Думаю, час-два. Но тоже не совсем понятно. Как это - встанет? Даже если винт вылетит, ведь только производительность ухудшится, но хоть как-то ведь работать будет, разве нет? У нас из RAID5 пару раз вываливался на другом серваке (терминал + контроллер домена) - так даже не заметили, только сервак запищал.

iljy
рекомендации самые общие, как всегда - лог на RAID 1, дальше возможны варианты.
если поставить батарейку - эффект возможно будет, а возможно и нет, тут как повезет.

При наличии 5 дисков каковы ваши рекомендации?
Как оцениваете варианты:
1. Отключение свопа у системы (читал, что ругается, но при достаточном объёме памяти крутится шустрее).
2. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных и систему.
3. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных + SATA винт под систему (на встроенном контроллере, либо ещё один RAID1 из SATA винтов).
4. Замена винтов на новые с 15 000 оборотов.
15 сен 09, 17:47    [7663341]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
iljy
Member

Откуда:
Сообщений: 8711
pavel_tr
iljy
По бесперебойности - непонятно. Что будет если сервак остановится посреди рабочего дня, в смысле через сколько времени прибудет расстрельная команда?

Думаю, час-два. Но тоже не совсем понятно. Как это - встанет? Даже если винт вылетит, ведь только производительность ухудшится, но хоть как-то ведь работать будет, разве нет? У нас из RAID5 пару раз вываливался на другом серваке (терминал + контроллер домена) - так даже не заметили, только сервак запищал.

правильно, но речь-то идет о том, чтобы RAID5 разбить! И поэтому вопрос - нужно ли дублировать диски или у вас будет время на холодную замену и перезапуск сервера.
pavel_tr

iljy
рекомендации самые общие, как всегда - лог на RAID 1, дальше возможны варианты.
если поставить батарейку - эффект возможно будет, а возможно и нет, тут как повезет.

При наличии 5 дисков каковы ваши рекомендации?
Как оцениваете варианты:
1. Отключение свопа у системы (читал, что ругается, но при достаточном объёме памяти крутится шустрее).
2. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных и систему.
3. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных + SATA винт под систему (на встроенном контроллере, либо ещё один RAID1 из SATA винтов).
4. Замена винтов на новые с 15 000 оборотов.


1. думаю будет весьма полезно, т.к. скуль вообще говоря всячески противодействует вытеснению его в своп. насчет ругаться - не знаю, вроде нормально работает. Но все проблемы не решит.
4. врядли что даст. проблемы думаю не в скорости вращения, а именно в случайном доступе.
2-3. а зачем вам под логи RAID10??? думаете RAID1 не хватит? У вас не такая суровая нагрузка!

может вам стоит сделать 1 RAID1 под лог, 1 RAID1 под данные (систему - думаю на любой из них, если у вас только скуль на сервере к ней обращений очень мало), и одиночный диск под tempdb. Можно под tempdb тоже RAID1, но только если нельзя остановиться, заменить слетевший винт и пересоздать на нем tempdb. Остальные диски можно заменять на ходу если контроллер позволяет.
15 сен 09, 18:01    [7663455]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Igor Glushaev
Member

Откуда:
Сообщений: 176
pavel_tr
Имеем 1С-базу 30 Гб, 25-30 активных пользователей, связку терминального и SQL-сервера по гигабитной сети. Конфа SQL-сервера: PentiumD 3,4 GHz, 4 GB RAM, массив RAID5 на контроллере Adaptec 2130S из 4 дисков SCSI 10 000RPM Fujitsu. Используем SQL 2005 WorkGroup Edition.

Всё это добро в последнее воемя тормозит, блокировки журнала очень часто (по 5-10 секунд).
Делал замер производительности по счётчикам винды: загрузка проца средняя 60%, в пиковые моменты - 100. Средняя длина очереди диска - 200 (максимальная больше 1000), в основном очередь на запись, счётчик очереди по чтению поменьше. SQL использует 3 гига памяти.

Подскажите пожалуйста, какие счётчики посмотреть, какие замеры сделать чтобы определить узкое место. Нужно решить - делать апгрейд железа (что брать?) чтобы тормоза уменьшились или это железо потянет если сосредоточиться на оптимизации. Если какую-то информацию не сообщил - исправлюсь, спрашивайте.


Могу предложить следующую конфигурацию винтов: 1 загрузочный, отдельно, 2 под базы в RAID-1, 2 под журнал в RAID-1. Если будет возможность отдельный винт под tempdb.

Кроме того, необходимо выполнить то, что описано в статье по ссылке http://www.gilev.ru/1c/hardware/RAID.html
Эффективность проверена на себе...
15 сен 09, 18:34    [7663652]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
iljy
правильно, но речь-то идет о том, чтобы RAID5 разбить! И поэтому вопрос - нужно ли дублировать диски или у вас будет время на холодную замену и перезапуск сервера.

А, вот о чём речь. Нужно расчитывать на холодную замену, всемя найдём. Сейчас хотелось выяснить, что следует изменить.

iljy
1. думаю будет весьма полезно, т.к. скуль вообще говоря всячески противодействует вытеснению его в своп. насчет ругаться - не знаю, вроде нормально работает. Но все проблемы не решит.

Попробую тогда его отключить при возможности.

iljy
2-3. а зачем вам под логи RAID10??? думаете RAID1 не хватит? У вас не такая суровая нагрузка!

В принципе согласен, 10ка более надёжна при том же уровне производительности, насколько я понимаю, потому и хочу её использовать. Ещё вопрос - RAID10 на 6, к примеру, винтах быстрее RAID1? А на 8 винтах? Не нашёл таких сравнений

Igor Glushaev, спасибо за рекомендации, очень дельная статья!
16 сен 09, 10:09    [7665443]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31194
pavel_tr
При наличии 5 дисков каковы ваши рекомендации?
Как оцениваете варианты:
1. Отключение свопа у системы (читал, что ругается, но при достаточном объёме памяти крутится шустрее).
2. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных и систему.
3. 4 винта - в RAID10 под лог, 1 оставшийся + 1 докупаем - в RAID1 под файл данных + SATA винт под систему (на встроенном контроллере, либо ещё один RAID1 из SATA винтов).
4. Замена винтов на новые с 15 000 оборотов.
Лучьше RAID1 под лог и систему, RAID10 (если докупать 1 диск) или RAID5 (если докупать 2 диска) под данные.

Более качественные рекомендации по вашему случаю нужно спрашивать у спецов по 1С
16 сен 09, 10:18    [7665491]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Для "база 30 Гб, 25-30 активных пользователей" RAID10 по-моему из пушки по воробьям

2 диска в RAID1 - данные
2 диска в RAID1 - журналя лога
1 диск - tempdb, система и прочая. Можно докупить еще 1 диск и сделать тоже RAID1
16 сен 09, 10:25    [7665554]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
pavel_tr
Member

Откуда:
Сообщений: 17
Спсаибо врем за рекомендации, будем думать
16 сен 09, 10:27    [7665563]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Albatross
Member

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

То есть в общем случае систему лучше ставить на диск с tempdb?
Или всё-таки на диск с логом?
Или общего случая не существует?

А ещё - куда pagefile системы класть?
16 сен 09, 10:44    [7665710]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31194
Glory
Для "база 30 Гб, 25-30 активных пользователей" RAID10 по-моему из пушки по воробьям
Вроде для 1С это не такая-уж и маленькая нагрузка, причём в первую очередь именно по дискам.
16 сен 09, 10:49    [7665757]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Albatross
Glory,

То есть в общем случае систему лучше ставить на диск с tempdb?
Или всё-таки на диск с логом?
Или общего случая не существует?

А ещё - куда pagefile системы класть?


Еще важно знать характер нагрузки. Если OLTP - одно, если OLAP -то по-другому.
Но интересно послушать, что скажет Glory на этот счет.
16 сен 09, 11:01    [7665842]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Albatross
Glory,

То есть в общем случае систему лучше ставить на диск с tempdb?
Или всё-таки на диск с логом?
Или общего случая не существует?

А ещё - куда pagefile системы класть?

Мой ответ был не для варианта "лучше всего", а для варианта "лучше для имеющихся дисков"
Для идеального случая разумеется все файлы разносятся не то, что на отдельные массивы, но еще и на отдельные контроллеры. Или все диски массивов входят в одну корзину.
16 сен 09, 11:17    [7665960]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Glory
Member

Откуда:
Сообщений: 104760
alexeyvg
Glory
Для "база 30 Гб, 25-30 активных пользователей" RAID10 по-моему из пушки по воробьям
Вроде для 1С это не такая-уж и маленькая нагрузка, причём в первую очередь именно по дискам.

Возможно. Я не знаком так близко с 1С
16 сен 09, 11:20    [7665989]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
iljy
Member

Откуда:
Сообщений: 8711
Albatross
Glory,

То есть в общем случае систему лучше ставить на диск с tempdb?
Или всё-таки на диск с логом?
Или общего случая не существует?

А ещё - куда pagefile системы класть?


не буду бить себя пяткой, но мне все-таки кажется, что систему лучше положить на RAID1. на какой- все равно, не дает она большой нагрузки, что надо - в памяти висит (если вы конечно туда не поставите контроллер домена, VPN, и прочая ). А надежность получается выше, не надо систему переставлять если что. А pagefile - по моему все-таки лучше отключать вообще, скулю он не нужен (или все-таки есть ситуации, когда он им активно пользуется? кто знает - просветите плз, но мне казалось он свои временные данные при необходимости спулит в tempdb). Темпдб - лучше на отдельный диск, и тут RAID1 нужен только для hotswap, если не надо и есть лишние диски - лучше просто ее (темпдб) на два блина разнесите, даже без RAID0.
16 сен 09, 11:30    [7666075]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
Igor Glushaev
Member

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

Вообще-то в идеале систему на отдельный диск. Но если с дисками напряг - то на одном tempdb и система. На диски с базой и с логом лучше вообще ничего не ложить. У самих аналогичная ситуация была. Эксперементальным путем была найдена та дисковая конфигурация, которую я писал выше.
16 сен 09, 11:42    [7666166]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31194
Igor Glushaev
Albatross,

Вообще-то в идеале систему на отдельный диск.
Разве это идеал? Вы отбираете у баз диск для системы, которая к нему вообще не будет обращаться...

Если только завалялся одиночный иде-шный диск, который к остальному не приспособишь.
16 сен 09, 13:19    [7666985]     Ответить | Цитировать Сообщить модератору
 Re: как найти узкое место?  [new]
thorn
Member

Откуда: Москва
Сообщений: 115
pavel_tr,
Buffer Manager - Buffer cache hit ratio
покажите ваш
16 сен 09, 13:55    [7667273]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить