Помогите пожалуйста с быстродействием

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

Ответить
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Помогите пожалуйста с быстродействием

Сообщение spark »

Добрый день!
Что имеем:
1. Сервер - 2 XEON'а по 4 ядра каждый 2.5 Ггц(E5420). RAID-1. 4Gb RAM(добавить не получается из-за ограничений SBS). Диски SATA.
2. Клиенты в среднем celeron'ы 2Ггц по 512 RAM.
3. ПО на сервере MSSBS 2003, MSSQL 2005 Workgroup.
4. ПО на клиентах Windows XP Pro.

На SQL сервере вертится 9 галактических баз с общими каталогами и таблицами остатков МЦ(Enterprise-архитектура) и База системы IBN(что-то на подобии документооборота, использует IIS).
Так же сервер является домен-контроллером и резервным DNS(не спрашивайте меня хачем =))).

Активное движение идет в 3 базах, больше всего нагружают в плане движения 3 пользователя. В пиковые дни выбивается порядка 200 накладных в каждой из баз. Большинство накладных создаются не руками, а загружаются готовыми, а далее после необходимых корректировок списываются. В среднем в накладных от 5 до 20 строк(но бывают и по 100).
Доходит до того, что отмена списания накладной в 25 позиций занимает порядка 10-15 секунд, а повторное списание может длиться порядка 30 секунд.
Это время совсем неприемлемо, потому что по специфике часто приходится отменять списание, удалять ненужную позицию и вновь списывать.
Когда сервер не нагружен(например вечером) эти прооцессы проходят за 2 секунды.

В целом в течение дня Галактика выглядит в плане скорости очень печально со всеми базами.
Претензий к самой системе пока нет, так как очевидно, что сервер для таких нагрузок крайне слаб.

Вопрос следующий:
Какую конфигурацию сервера нужно рассматривать для приобретения? И самое главное - Как сейчас при том, что есть, оптимизировать то что есть, пока не будет куплен новый сервер? =)
Может есть какие-нибудь тонкости настройки MSSQL, Windows или Галактики, которые помогли бы пока продержаться на более менее приемлемом уровне?

Спасибо! Буду рад любым советам!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Помогите пожалуйста с быстродействием

Сообщение m0p3e »

Крайне не рекомендуется на одной машине держать AD и MSSQL.
Что с дисковой подсистемой? Просто "диски SATA" мало.
Polimer
Местный житель
Сообщения: 489
Зарегистрирован: 27 янв 2006, 12:46
Откуда: Москва

Re: Помогите пожалуйста с быстродействием

Сообщение Polimer »

У нас по жизни, примерно то же самое. SQL сервер+КД. Но, система стоит на "простом" раиде (сата винты), база на SAS раиде(раньше SCSI раид). Так как ОЗУ у вас не в почете, единственный вариант увеличения производительности - покупка САС контроллера с винтами.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Помогите пожалуйста с быстродействием

Сообщение edward_K »

ну есть еще возможности.
Почитать форум, вырубить журнализацию(хотя бы частично), сократить время жизни лога, поставить параллелизм в 1. Дальше если есть возможность разнести логи и журналы на разные физические диски и так далее. Можно еще последить за процессами - возможно можно обратиться в ТП с конкретными предложениями - базы то не большие видать - мож у кого то еще тормозит в тех же местах. Недавно починили например проблему с длинными номерами СФ - один пользователь вешал всех при их ручной правке.
Ну и стандартные - сеть, вирусы и антивирусы, временные файлы(их своевременная автоматическая чистка) и так далее. Также можно поставить usertablelocalcache=on и настроить папки с ним и временными файлами на локал - но это больше для отчетов и зарплаты. Еще могут быть проблемы с аппаратным ключем.
Насчет нового сервера - 2008 сервер(x64) с 16 гигами на борту, SQL2008(тока пока не R2) тоже 64бита, желательно с 2 раидами, ну и все выше сказанное. Если пользователей много, то есть еще пара возможностей.
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Помогите пожалуйста с быстродействием

Сообщение spark »

Polimer писал(а):У нас по жизни, примерно то же самое. SQL сервер+КД. Но, система стоит на "простом" раиде (сата винты), база на SAS раиде(раньше SCSI раид). Так как ОЗУ у вас не в почете, единственный вариант увеличения производительности - покупка САС контроллера с винтами.
Спасибо, что откликнулись! Тоже была мысль, что при невозможности наращивания памяти нужно ускорять дисковую подсистему, но чувствуется что все равно надо менять сервак, поэтому наверное не будем сейчас частично менять железо.
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Помогите пожалуйста с быстродействием

Сообщение spark »

edward_K писал(а):ну есть еще возможности.
Почитать форум, вырубить журнализацию(хотя бы частично), сократить время жизни лога, поставить параллелизм в 1. Дальше если есть возможность разнести логи и журналы на разные физические диски и так далее. Можно еще последить за процессами - возможно можно обратиться в ТП с конкретными предложениями - базы то не большие видать - мож у кого то еще тормозит в тех же местах. Недавно починили например проблему с длинными номерами СФ - один пользователь вешал всех при их ручной правке.
Ну и стандартные - сеть, вирусы и антивирусы, временные файлы(их своевременная автоматическая чистка) и так далее. Также можно поставить usertablelocalcache=on и настроить папки с ним и временными файлами на локал - но это больше для отчетов и зарплаты. Еще могут быть проблемы с аппаратным ключем.
Насчет нового сервера - 2008 сервер(x64) с 16 гигами на борту, SQL2008(тока пока не R2) тоже 64бита, желательно с 2 раидами, ну и все выше сказанное. Если пользователей много, то есть еще пара возможностей.
Спасибо большое за советы!
1. Журнализация выключена, даже подумываем вырубить протект =)
2. Если имеется в виду лог транзакций сиквела, то стоит модель восстановления базы simple, что как я понимаю при каждом бэкапе чистит журнал. Или нет?
3. Встречал уже совет поставить параллелизм в 1. Что вообще делает этот параллелизм и почему его нужно выставлять в 1? Может Вы поясните "физику" процесса?
4. Логи и журналы наверное до покупки нового сервака разнести не сможем. На сервере сейчас первый RAID из двух простых дисков =(
5. Базы пока не большие. Эти три, по которым нагрузка большая, начали работать только с начала года(правда наколбасили уже порядка 1500 накладных в сумме). Но в плане предложений в ТП не с чем сравнивать, они скорее всего сразу свалят все на слабость сервака(что по сути является фактом). Да и так несколько критичных для нас ошибок уже давно висят в ПИРе, постоянно смещаясь по срокам... =\
6. usertablelocalcache=on так и выставленно.
7. Аппаратный ключ кстати находится на этом же сервере. Слышал как-то, что это не есть хорошо, но вразумительных ответов в чем это может выражаться так и не было, поэтому пока его не переносили.

Спасибо за рекомендации по серверу. SQL2008 R2 еще официально не поддерживается или есть какие-то явные косяки при его использовании?
Пользователей сильно нагружающих сервер - 3. Всего 15, то есть не много...

Из того, что пока придумали сделать:
1. Включили в boot.ini параметр /3Gb, чтоб сиквел мог слопать больше двух гигов. Сейчас отжирает где-то 2588Мб.
2. Врубили параметр Boost SQL Server priority. Я так понял это должно сказать сиквелу, чтоб бился за ресурсы до конца! =)
3. Постарались поотключать все службы типа Exchang'а, шарепоинта, windows search и т.д. с целью снять нагрузку на винты и высвободить и без того дефицитную память.

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

А на каких конфигурациях и в каких режимах работает галактика у Вас, если не секрет?
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Помогите пожалуйста с быстродействием

Сообщение spark »

m0p3e писал(а):Крайне не рекомендуется на одной машине держать AD и MSSQL.
Что с дисковой подсистемой? Просто "диски SATA" мало.
Спасибо. Даже не знаю что еще про них сказать... первый рэйд с тремя дисками(один резервный). Сам контроллер говорят хороший, но я честно сказать не смотрел его... почему-то мне показалось, что крутость только контроллера не поможет... или нет?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Помогите пожалуйста с быстродействием

Сообщение m0p3e »

Крутость контроллера конечно не поможет.
Но вот рекомендации по дисковым массивам есть. Под БД желательно иметь независимый RAID 10. В случае MSSQL хороший прирост дает разнесение данных и транзакций на разные дисковые массивы.
Идеал:
Система - RAID1.
MSSQL данные - RAID10.
MSSQL транзакции - другой RAID10.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Помогите пожалуйста с быстродействием

Сообщение edward_K »

параллелизм распределяет выполнение запроса на несколько процессоров, иногда бывает что sql зацикливается на сложных запросах(с кучей вложенных подзапросов), кроме того это позволяет избежать блокировки работы остальных пользователей.
maikl
Местный житель
Сообщения: 1503
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь

Re: Помогите пожалуйста с быстродействием

Сообщение maikl »

edward_K писал(а):параллелизм распределяет выполнение запроса на несколько процессоров, иногда бывает что sql зацикливается на сложных запросах(с кучей вложенных подзапросов), кроме того это позволяет избежать блокировки работы остальных пользователей.
А где эта настройка в SQL ?
Если 4 процессора (16 ядер) сколько параллелей поставить?
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Помогите пожалуйста с быстродействием

Сообщение spark »

maikl писал(а):
edward_K писал(а):параллелизм распределяет выполнение запроса на несколько процессоров, иногда бывает что sql зацикливается на сложных запросах(с кучей вложенных подзапросов), кроме того это позволяет избежать блокировки работы остальных пользователей.
А где эта настройка в SQL ?
Если 4 процессора (16 ядер) сколько параллелей поставить?
Вот оно в свойствах сервера.
Изображение

Но сколько выставлять сам не знаю... вроде это должно помогать серверу справляться с ветвистыми запросами, но это ж галактика... =)
maikl
Местный житель
Сообщения: 1503
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь

Re: Помогите пожалуйста с быстродействием

Сообщение maikl »

Мы в свое время, то же заменили сервер. Купли НР DL580 тот, что рекомендован в документации по Галактике. Памяти 32 ГБ, 4 процессора. Довольны.
Аппараратный ключ на другой машине (на виртуальной).
Когда на старом сервере они были вместе, раз в месяц сервер перезагружался, когда разнесли проблема исчезла.
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: Помогите пожалуйста с быстродействием

Сообщение spark »

maikl писал(а):Мы в свое время, то же заменили сервер. Купли НР DL580 тот, что рекомендован в документации по Галактике. Памяти 32 ГБ, 4 процессора. Довольны.
Аппараратный ключ на другой машине (на виртуальной).
Когда на старом сервере они были вместе, раз в месяц сервер перезагружался, когда разнесли проблема исчезла.
Спасибо! HP DL580 это конечно крутовато... =)
Ответить