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

Откуда:
Сообщений: 17
Доброго всем всего.
Есть проблема, 1с-ка работает не так быстро как хотелось бы. По тесту Гилева (TPС-А) максимум 12 баллов.
Железо:
Два сервера
HP Proliant DL380G7 - 2 X5650 24 логических ядра, сеть - 1GB, дисковый массив HP P2000 G3 MSA соединен оптикой, пропускная способность 8Gb/s, включено кешерование на запись.
В MSSQL-сервере 96GB RAM, 1C - 54GB.
Файл данных боевой БД в отдельном LUN-е, на 15к SAS винтах, объединенных в RAID-10. Файлы данных tempdb в количестве 4 штуки там же.
Файлы логов БД, также в отдельном LUN-е, на 15к SAS винтах, объединенных в RAID-10. Логи самого MSSQL там же.
Размер файлов подкачки установлен от 2 до 96 и 54 GB соответственно.

ПО: Win 2008R2 Ent, MSSQL Server 2008R2 x64 Std

Настройки MSSQL сервера практически ничем не отличаются от дефолтных, за исключением:
  • Ограничено использование памяти до 93GB
  • Cost threshold for parallelism=300
  • Max worker threads=2048
  • Boost SQL priority=true
  • Automatically set processor affinity mask for all processors=true
  • automatically set i/o affinity mask=true

    Настройка боевой базы:
  • Режим восстановления Simple
  • Регламентные процедуры проводятся каждую ночь (Rebuild Index, Update Stat, Freeproccache, Full backup)
  • Первоначальный размер файла данных увеличен до 20GB (сейчас размер базы около 9GB), прирост по 500MB неограничен
  • Лог - 2GB прирост 10% неограничен.

    Что касается счетчиков производительности в момент сильной нагрузки:
    SQL-сервер(среднее/максимум)
  • Avg. Disk sec/Read - 6мс/50мс
  • Avg. Disk sec/Write - 2мс/47мс
  • Processor\% Processor Time - 3.26/11
  • Processor\Interrupts/sec - 6500/10600
  • Server Work Queues\Queue Length - 1/2
  • Memory\ Pages/sec - 0.3/23
  • Memory\Page Faults/sec - 680/22000
    Смущает последний счетчик.

    1с-сервер(среднее/максимум)
  • Avg. Disk sec/Read - 0мс/16мс
  • Avg. Disk sec/Write - 5мс/62мс
  • Processor\% Processor Time - 0.18/5
  • Processor\Interrupts/sec - 1900/4800
  • Server Work Queues\Queue Length - 0.2/1
  • Memory\ Pages/sec - 55/2200
  • Memory\Page Faults/sec - 245/7500
    Смущает предпоследний счетчик.

    Сервера соединены гигабитом через Cisco, не помню какой. Память не выжирается до основания.

    Уважаемые форумчане, подскажите возможно ли что-то где-то подкрутить? И правильно ли я понимаю что узких мест у меня по-большому счету нет?
  • 18 окт 12, 13:41    [13340291]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    tpg
    Member

    Откуда: Novosibirsk
    Сообщений: 23902
    Nick64
    ...ПО: Win 2008R2 Ent, MSSQL Server 2008R2 x64 Std

  • Ограничено использование памяти до 93GB...
  • Стандартная редакция все равно более 64GB не увидит...

    Сообщение было отредактировано: 18 окт 12, 13:53
    18 окт 12, 13:52    [13340409]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Spartakich
    Member

    Откуда: Riga
    Сообщений: 380
    Nick64,

    Avg. Disk sec/Read - 6мс/50мс
    Avg. Disk sec/Write - 2мс/47мс

    многовато
    18 окт 12, 14:13    [13340599]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

    Откуда:
    Сообщений: 17
    tpg, точно, при установки я не заметил. Редакцию можно и сменить.
    18 окт 12, 14:15    [13340614]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5115
    Spartakich
    Nick64,

    Avg. Disk sec/Read - 6мс/50мс
    Avg. Disk sec/Write - 2мс/47мс

    многовато
    относительно чего??
    18 окт 12, 14:58    [13340892]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Spartakich
    Member

    Откуда: Riga
    Сообщений: 380
    Дедушка,

    http://social.technet.microsoft.com/wiki/contents/articles/3214.monitoring-disk-usage.aspx

    Less than 10 ms - very good
    Between 10 - 20 ms - okay
    Between 20 - 50 ms - slow, needs attention
    Greater than 50 ms – Serious I/O bottleneck
    18 окт 12, 15:27    [13341174]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5115
    Spartakich,

    и что?
    18 окт 12, 15:53    [13341463]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    WarAnt
    Member

    Откуда: Питер
    Сообщений: 2423
    Nick64,

    А что меряет тест Гилева и какое этот тест имеет отношение к сиквелу?

    ИМХО самым узким местом тут является 1С.
    18 окт 12, 16:15    [13341655]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

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

    Что такое TPC-1C-GILV
    Это серия независимых тестов , предназначенных для оценки быстродействия платформы 1С:Предприятие 8.1 на вашем компьютере (ах).
    Идея теста TPC-A-local:
    Если развернете конфигурацию в файловых вариант, то в значительной степени тест будет тестировать связку CPU вашего компьютера - HDD где лежит база.
    Если развернете конфигурацию в клиент-серверный вариант, то преимущественно нагрузке подвергнуться CPU сервера приложений - CPU сервера субд - HDD - сервера субд.
    В тесте выполняется интенсивная запись 5000 документов. Глубокого смысла в бизнес-логике кода нет, оцениваться просто условно выбранная за эталон производительность документа Х.

    Ну те условная такая штука, измеряет "крутость" сервера в попугаях :)

    Немного не правильно я измерял
    Avg. Disk sec/Read
    Avg. Disk sec/Write
    по параметру _Total, а как подсказал Spartakich нужно измерять каждый диск отдельно. Вообщем сделаю, отпишусь.

    Кстати, в момент жутких тормозов висит транзакция, порождающая около 11 тыс блокировок, ИМХО не нормально это.
    Видимо действительно узкое место 1С
    18 окт 12, 18:55    [13342795]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    tpg
    Member

    Откуда: Novosibirsk
    Сообщений: 23902
    Ну и порог Cost threshold for parallelism попробуйте сделать побольше - тыщ пять - десять.
    19 окт 12, 06:20    [13344113]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    tpg
    Member

    Откуда: Novosibirsk
    Сообщений: 23902
    tpg
    Ну и порог Cost threshold for parallelism попробуйте сделать побольше - тыщ пять - десять.
    Перед этим гляньте с помощью sys.dm_os_wait_stats, что с ожиданиями.

    Сообщение было отредактировано: 19 окт 12, 06:23
    19 окт 12, 06:23    [13344115]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

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

    как то так
    select * from sys.dm_os_wait_stats order by wait_time_ms desc
    


    wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms
    LAZYWRITER_SLEEP2881227893790023307402230251
    REQUEST_FOR_DEADLOCK_SEARCH8946 44724929500644724929
    XE_TIMER_EVENT2760446993332999944699233
    SQLTRACE_INCREMENTAL_FLUSH_SLEEP1117544697855400621
    LOGMGR_QUEUE2767644664259180950991291
    CHECKPOINT_QUEUE39744444980632970620178
    SLEEP_TASK7391042236705610365398
    BROKER_TO_FLUSH21823223634521031 139
    XE_DISPATCHER_WAIT2495010049501000
    19 окт 12, 07:20    [13344142]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    tpg
    Member

    Откуда: Novosibirsk
    Сообщений: 23902
    Nick64,

    Ну, раз CXPACKET не видать, то порог распараллеливания запросов можно и не повышать.
    19 окт 12, 09:11    [13344340]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

    Откуда:
    Сообщений: 17
    tpg,
    пардон, с утра видимо не проснулся
    wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms
    CXPACKET417008414802886927115224


    Может попробовать сбросить статистику и помониторить пару дней сервер.
    19 окт 12, 09:19    [13344377]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5115
    Nick64
    Немного не правильно я измерял
    Avg. Disk sec/Read
    Avg. Disk sec/Write
    по параметру _Total, а как подсказал Spartakich нужно измерять каждый диск отдельно. Вообщем сделаю, отпишусь.

    Кстати, в момент жутких тормозов висит транзакция, порождающая около 11 тыс блокировок, ИМХО не нормально это.
    Видимо действительно узкое место 1С

    от того, что вы померяете очередных "попугаев" (Avg. Disk sec/RW) вам ни чего не даст...
    имхо, перестать гадать, взять профайлер, найти проблемный код и уже от него идти далее.
    а то ведь можно и святой водицей сервер окропить.
    19 окт 12, 09:23    [13344400]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

    Откуда:
    Сообщений: 17
    Дедушка,

    тут понимаете какое дело, конфигурация у нас нетиповая. Как следствие большинство модулей закрыты. Обслуживающая (она же внедренческая) организация утверждает о неверной настройке ОС и MSSQL, но не могут (не хотят/не знают) дать конкретных рекомендаций.
    Вот и хотелось бы выяснить, проблема все же код 1С или железо+софт.
    19 окт 12, 09:36    [13344475]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Centraloff
    Member

    Откуда: Екатеринбург
    Сообщений: 138
    Nick64,

    Теоретически этого железа вполне хватит чтобы тянуть базу в 9Гб, опять же непонятно сколько пользователей сидит в базе.
    Непонятно как вы тестировали во время работы пользователей с базой или нет.
    Если говорить не про тест а про работу с самой базой, пользователи ощущают тормоза или нет?
    19 окт 12, 10:48    [13344954]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

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

    до 30 пользователей одновременно. Тест Гилева проводился и в часы пик, и в отсутствии пользователей, результаты практически схожи +-0,1.
    Пользователи ощущают тормоза, именно вопли пользователей и подвигают к изысканию решения.
    19 окт 12, 11:03    [13345070]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    MasterZiv
    Member

    Откуда: Питер
    Сообщений: 34705
    Nick64,

    И чего, каждую ночь у тебя все индексы перестраиваются?
    19 окт 12, 11:07    [13345103]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    MasterZiv
    Member

    Откуда: Питер
    Сообщений: 34705
    Nick64,

    Ты молодец проделал большую работу, крутишь все овчарки, и все такое...

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

    Потом, какое бу ни было железо, а оно вполне себе, если приложение висит на локах, или же какие-то документы проводит в один поток, то его производительность никогда не будет большой.
    Вот на приложение и надо обратить внимание, а не на глупую перестройку индексов каждую ночь.
    19 окт 12, 11:18    [13345191]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    MasterZiv
    Member

    Откуда: Питер
    Сообщений: 34705
    Nick64
    Дедушка,

    тут понимаете какое дело, конфигурация у нас нетиповая.

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

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

    Обязаны.
    Вы им деньги платили.

    Вот и хотелось бы выяснить, проблема все же код 1С или железо+софт.


    80% производительности системы заложено в приложении, его архитектуре,
    его правильной реализации.

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

    Проблемы производительности почти всегда конкретные, общие — это 256 Мегабайт памяти, сыпящейся диск или что то ещё такое. Не ваш случай явно.
    19 окт 12, 11:32    [13345321]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    Nick64
    Member

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

    индескы перестраиваются каждую ночь. За рекомендации спасибо. Буду пробовать искать узкое место в коде 1С.
    19 окт 12, 11:33    [13345332]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    _bob
    Member

    Откуда: Москва
    Сообщений: 1654
    Nick64,

    у меня сильно модифицированная УТ вертелась на сервере с 64Гб ОЗУ и рейдом 1+0 на 6 простых сасовских хардах (MSSQL)
    кол-во юзеров доходило до 60, размер базы - 80Гб...там же была и буха (50Гб, 20 юзеров)...не сказать что все летало, но работалось достаточно комфортно...

    думаю, не тормозило потому что MSSQL и сервер приложений работали на разных машинах

    сейчас 25 Гиговая база неплохо вертится вообще на слабенькой машине (8 ОЗУ), поэтому я думаю дело в кривой конфе 1С


    а вообще, обслуживающая (она же внедренческая) организация может продемонстрировать быструю работу своего продукта у других клиентов, где все правильно настроено? если нет - вот вам и ответ
    19 окт 12, 12:08    [13345664]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    MasterZiv
    Member

    Откуда: Питер
    Сообщений: 34705
    Nick64
    MasterZiv,

    индескы перестраиваются каждую ночь. За рекомендации спасибо. Буду пробовать искать узкое место в коде 1С.


    Подумай на досуге, какой в этом смысл...
    19 окт 12, 14:10    [13346807]     Ответить | Цитировать Сообщить модератору
     Re: Низкая производительность MSSQL 2008R2+ 1C 8.2  [new]
    sirCam_кгы
    Guest
    Тут проблема в платформе. 8.2 и ОС.
    Как уменьшить время реакции сервера не понятно.
    7 авг 13, 08:26    [14673468]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / Microsoft SQL Server Ответить