Производительность 1с+SQL

1. surgeon 05.11.11 17:42 Сейчас в теме
На сервере HP ProLiant DL580 G5 (64Gb ОЗУ) вертится сервер приложений 1С + SQL 2005. ОС windows server 2008 x64.
Винты 8 штук 15к raid 10.
Конфигурация УПП размером 35Гб, одновременно работают порядка 100 или чуть больше пользователей на 2 терминальных серверах. На данный момент не устраивает производительность 1с. Например расчет себестоимости идет около 1 часа и блокирует работу других пользователей. SQL забирает под себя всю оперативную память. Как я понял - скуля не освобождает память, если ее никто не требует. Вообще стоит ли освобождать память(периодический рестарт серверов, служб и т.д)? Каковы рекомендации по настройке сервера приложений 1С? На форумах читал что и для больших баз с большим количеством пользователей используются сервера с меньшим количеством ОЗУ. Один из предложений для повышения производительности - перенос tempdb на ssd винт или ОЗУ. Про гибкие блокировки в курсе(неужели нет других вариантов)?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. loger 09.11.11 16:39 Сейчас в теме
(1) surgeon, периодически перегружать службу MSSQL похоже надо, у самого так - вечер, все базы закрыли, а процесс продолжает занимать примерно столько же оперативки, на следующий день занимаемое количество оперативки может даже немного вырасти.
26. dumper7 01.12.11 18:39 Сейчас в теме
(1) to surgeon,
кстати вы не пробовали перекинуть файл подкачки в память (типа на виртуальный диск)? иногда очень даже помогает.
Но есть высокий риск незагрузки сервера, когда он не может найти диск подкачки (хотя по логике вещей такого быть не должно!!) :))

Если не хотите рисковать- отключите файл подкачки совсем, физической памяти вроде хватает (64 Гб)


На счет самой УПП- это поделие будет тормозить в любом случае, почему- вопрос к разработчкиам из 1с :)))
27. dumper7 01.12.11 18:43 Сейчас в теме
(1) to surgeon,
только счас пришла идея, что на диске С: надо оставить swap метров 50, а остальной разместить на виртуальном диске.
попробуйте, не умрет ли сервер при старте, :)

у меня увы нигде 64 битной не стоит.
37. surgeon 10.01.12 11:19 Сейчас в теме
(27) dumper7, Свап полностью отключен, 256Гб озу вроде должно хватить.
2. tal 06.11.11 20:44 Сейчас в теме
sql обнови, там в последних обновлениях улучшена работа с памятью
3. surgeon 08.11.11 08:25 Сейчас в теме
Глянул текущую версию SQL - 9.00.3042. Как я понимаю SP2. Обновлюсь до SP4.
Также попробую в момент нагрузки погонять счетчики производительности.
4. nikson52 11 08.11.11 16:44 Сейчас в теме
при расчете себестоимости может быть уменьшить количество итераций.
47. surgeon 18.02.12 12:32 Сейчас в теме
В общем произвел переход на новый сервер - база SQL 2008 вертится на таком сервере:
HP ProLiant DL580G7
процессор (4) Intel® Xeon® E7-4870 (2.40GHz/10-core/30MB/130W) Processors
кэш процессора 30MB (1 x 30MB) Level 3 cache
память 256GB PC3-10600R DIMMs (DDR3) installed in (8) memory boards
сетевой адаптер HP NC375i Integrated Quad Port Multifunction Gigabit Server Adapter (4 x 1Gb Port)
контроллер RAID Embedded HP Smart Array P410i/1GB FBWC Controller
дисковая подсистема 8 Hot-plug SFF 2.5" SAS HDD
Рейд в 10 настроен. База весит 35Гб. Рассчет себестоимости проводиться за несколько минут.
На данный момент в УПП еще внедряется еще и ТОиР. Посмотрим как все это будет вертеться.
48. zzz_natali 61 18.02.12 19:54 Сейчас в теме
(47) surgeon,
База-то сама сколько весит?
49. grizly-mas 18.04.12 05:06 Сейчас в теме
surgeon(47) surgeon, раскажи какие манипуляции провел со sql, поделись опытом. И вообще что настраивал. У меня такая же картина, только база весит на порядок больше весит в sql 70 гигов.
5. nsm 08.11.11 16:54 Сейчас в теме
Для повышения быстродействия выключите проверку сертификатов

EXEC sp_fulltext_service 'verify_signature', 0
GO

потом
Перенесите tempdb на быстрый независимый массив/диски (что вы и собирались)
Выключите антивирус на сервере СУБД
После всех настроек посмотрите на рекомендации SQL Server 2005 Best Practices Analyzer они укажут на "тонкое место" вашей структуры.
30. zzz_natali 61 16.12.11 16:24 Сейчас в теме
(5) nsm,
А зачем ваще включать службу полнотекстового поиска, если в 1С она есть своя?
6. tip22 08.11.11 17:31 Сейчас в теме
в УПП вроде уже встроен механизм управляемых блокировок , также можно ЦУМ воспользоваться а вот здесь полезные советы http://infostart.ru/public/65955/
9. surgeon 10.11.11 11:22 Сейчас в теме
На данный момент пробую на новом сервере HP DL580G7 256Gb ОЗУ RAID10 10к. win2008R2+SQL2008R2.
Настроил SQL по полезным советам (6).
SQL Server 2008 R2 Best Practices Analyzer ничего критического не показывает.
В базу УПП 1 пользователь - проведение документа Рассчет себестоимости выпуска заняло более 3 часов. Далее прервал.
11. romansun 193 10.11.11 13:30 Сейчас в теме
(9)
Включите счетчик производительности в отладчике конфы - на чем так сильно проседает? На запросах?
7. romansun 193 08.11.11 18:25 Сейчас в теме
Если начались блокировки (я не в курсе про УПП, нормально ли то, что этот отчет строится так долго и что блокирует юзеров), то тут уже всякими "настройками серверов", боюсь, не обойдёшься, нужно смотреть комплексно - и железо, и настройки, и, главное, код.

В чем заключаются тормоза? В отчетах только или в целом в работе базы? Вообще, час на отчет, имхо, это нереально долго. Нужно смотреть по отчету в чем проблема - в коде, в запросе. По запросам смотреть производительность, например, с помощью ЦУП из корпоративного инструментального пакета.

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

С другой стороны, если это "самый ацкий отчет" УПП и с ним технически всё хорошо, то надо копать именно в сторону спецов по УПП. Спрашивать у них, что да как.
10. klimovss 10.11.11 12:58 Сейчас в теме
Рекомендую отделить сервер баз данных от сервера SQL и разместить их на разных физических серверах. Это во-первых. Во вторых установить 64х битный SQL и выдать на эту железку 16Гб оперативки.
А вообще иногда полезно проводить свертку базы и переиндексацию.
13. surgeon 11.11.11 07:59 Сейчас в теме
(10) klimovss, Сервер 1С и Сервер БД на данный момент разнесены.
На железке из (1) стоит сервер 1С x64, Win2008x64
На железке из (9) стоит SQL 2008 x64,Win2008x64.
Сверка и переиндексация - это средствами 1С тестирование и исправление?

(11) romansun, сегодня попробую.

PS. На DBF версии рассчет себестоимости провел за 20 минут.
14. nikson52 11 11.11.11 09:04 Сейчас в теме
(13)Если на ДБФ проводит все быстро, то нужно копать в сторону SQL, как мне кажется, размер базы и журнала транзакций, были ли пересчитаны статистики перед расчетом, попробовать установить базу в simple. У меня вот в ДБФ по 100мегабитной сетке самым тяжелым отчетом был анализ субконто, потому что данных нужно было по сети тягать много.
15. VDM 14.11.11 08:11 Сейчас в теме
(13) surgeon, свертка делается силами спеца по 1с, тестирование исправления вашими. Из собственного опыта могу предложить попробывать сделать выгрузку, а затем создать пустую БД на SQLе и загрузить туда базу. Такое примитивное действо иногда способно творить чудеса на уровне обращения воды в пиво. И еще вопросец, а как у вас собрана связь между серверами на уровне железа?
12. Cartman 10.11.11 16:01 Сейчас в теме
Я для предприятий где нужна работа по принципу 7х24 делал так. 2 сервера, 2 базы центральная и переферийная.
В центральной выполняем регламентные операции типа расчета себестоимости, создание, перепроведение большого количества документов. В переферийной оперативный документооборот.
В часы наименьшей активности происходит обмен.
45. hvlad77 13 12.01.12 08:55 Сейчас в теме
(12) Cartman,
+1
можно даже вторую базу разместить на этом же сервере.
Главное суть, что пока идет расчет себестоимости в одной базе, во второй все пользователи нормально работают.

А то что расчет идет 1 час, так это еще побожески.
В зависимости от глубины аналитики расчет может идти и сутки. Правда никогда не понимал зачем нужна такая точность в распределении затрат, но это уже вопрос к "экономистам".
46. zzz_natali 61 12.01.12 11:15 Сейчас в теме
(45) hvlad77
Да не разместить базёнку, а на отдельной машинке(можно даже не сервер, а хорошую рабочую станцию), где убрано всё лишнее. Если мамка позволяет, то напихать в нее кучу мозгов (если хватит под базу), создать в оперативке электронный диск и в ней покрутить отчеты на базе. Накрайняк пару SSDшек в нулевой райд запендорить и в ней поднять весь этот хлам.
Понятно, что придется утопить совесть в стакане-другом алкоголя, ибо в этом случае сидеть на ломаной первоэске, и нелицензионной винде/скуле.
16. imp_home 14.11.11 10:01 Сейчас в теме
17. andre_mf 14.11.11 19:40 Сейчас в теме
18. VDM 14.11.11 23:47 Сейчас в теме
Нашел статью с картинками и даже видео, так как самому такое писать ломы, очень похоже, что вам многое из этого пригодится http://www.gilev.ru/1c/mssql/ - дерзайте.
19. IgorTsapko 2 17.11.11 12:32 Сейчас в теме
1. На SQL каждую ночь реиндексация и обновление статистики
2. Проверить, какой процент данных SQL берет из кеша, а какой читает с винта - 95% из кеша это хорошо. Если мало - хорошо бы увеличить объем RAM.
3. Проверить настройки SQL - там есть параметр Minimum server memory и Maximum server memory. Минимум - 0, максимум - объем RAM на серваке минус затраты на ОС и другие задачи.
4. Проверить код 1С - возможно слишком много запросов лишних. Например если к элементу справочника обращаться как ТекущийЭлемент(), то на SQL каждый раз летит запрос select * from scXX where id = 'YYYYYY'. А если сделать ТекЭл = ТекущийЭлемент(); и обращаться уже к ТекЭл, то запрос всего один. Ну и вообще посмотреть через profiler, что там происходит.
20. surgeon 17.11.11 15:47 Сейчас в теме
1) реиндексацию и обновление настроено пару дней назад.
2) объем ОЗУ достаточен
3) параметры мин и макс были подкручены
4) не знаю конечно какой код в 1С написали, но конфа стандартная без исправлений.
Также возникло подозрение что проблема в данных. Документ Рассчет себестоимости выпуска за сентябрь проводиться быстро, а за октябрь долго. И еще пробовал за октябрь с разницей в 2 дня - тоже на ранней медленно, а на новой быстро проводиться.
21. AfterEarth 18.11.11 12:52 Сейчас в теме
А если посмотреть profiler'ом, какой запрос оно выполняет?
22. losdi 20.11.11 08:53 Сейчас в теме
Вообще то УПП по производительности не подарок и для базы 35Г рассчет себестоимости за час не так уж и плохо :=(. Можно попробовать SQL 2008 Enterprise. У него работа с большими объемами памяти сделана довольно неплохо.
23. necus 20.11.11 09:43 Сейчас в теме
у меня зарплата 8.2 в связке windows server2008 64bit+SQL2008 так не пошла,тянет всякую гадость с временных таблиц при расчёте, так же производительность низкая, а вот бухгалтерия 2.0 летает. На windows server 2003 32Bit +SQL2005 ЗИК работает прекрасно.Все обнавления и патчи по sql2008 накатывал, никто не знает в чём проблемма?
24. besenok_x 21.11.11 13:55 Сейчас в теме
попробовал перевести базы dbf на sql - заметно тормознее стало. Формирование отчета по основным средствам заняло 3 мин в sql и почти 50 сек в dbf версиях. Версия 1с 7.7 сборка 25, SQL 2005. Т.е. смысла не имеет переходить?
З.Ы. База в dbf немногим менее 1 гига.
25. dumper7 01.12.11 18:13 Сейчас в теме
(24) besenok_x,
Ясен пень, что зависит от Вашей потребности. Если скорость работы важнее- то остаемся на DBF версии (+терминал).

Как я понял- sql-сервер дает некий эффект только при количестве хомяков от 30 и выше :)
28. KIOSYS 02.12.11 15:05 Сейчас в теме
вопрос, возможно, неуместен, но: рассчитаны ли итоги по регистрам?
Далее из своей практики:
1. проверить фрагментацию файла базы (средствами винды). если фрагментов больше 20 - дефраг диска.
2. упорядочить фрагментацию страниц в базе (сжатие базы с реструктуризацией и оставлением свободного места ок. 15%).
3. проверить размер ЛОГ-файла. если не обрезается обычним сжатием - поиграть с моделями лога - переключить на простую, сжать, переключить на полную, сжать.

Пробовал когда-то разнести tempdb на отдельный физический диск - немного, но помогло.
А вообще УПП очень много ресурсов убивает на расчет партий и с этим ничего не поделаеш. Пришлось полностью отключать партийку. база дожила до 280Г.
29. droniche 15.12.11 10:20 Сейчас в теме
Может конечно и глупость скажу, но спецы 1с всем советуют оракл при кол-ве пользователей около 100, может кто нибудь проконсультировать по этому поводу
31. zzz_natali 61 16.12.11 16:29 Сейчас в теме
Во вторых установить 64х битный SQL и выдать на эту железку 16Гб оперативки.

16 гектар оперативы на скуль - тока-тока на крейсерскую скорость. Если какой форсаж, то мало! Сервер просядет.
32. пользователь 16.12.11 17:20
Сообщение было скрыто модератором.
...
33. safetylab 19.12.11 12:10 Сейчас в теме
Начинать надо с правильной устанвоки видны - надо было сначало диковый масив разбить на файлы для базы и логов
34. zzz_natali 61 19.12.11 12:52 Сейчас в теме
(33) safetylab,
Это вчерашний день. Ща райды крейтят отдельно под базы, под логи, под систему/темповухи/TempDB...
Более того, народ начинает отписывается в форумах об удачной эксплуатации баз на SSD.
38. surgeon 10.01.12 11:21 Сейчас в теме
(34) zzz_natali, логи и база распределены. Но проблема с долгимпри рассчетом себестоимости возникает из за данных в БД.
35. need1cc 07.01.12 19:21 Сейчас в теме
так проверь производительность в отладчике
36. anmal 19 07.01.12 22:54 Сейчас в теме
Кто может дать ссылочку на замеры производительности работы базы УТ11 в PostgreSQL и MSSQL?
39. пользователь 10.01.12 12:24
Сообщение было скрыто модератором.
...
40. Ramzet 10.01.12 13:59 Сейчас в теме
1. Отключить графику на винде. Раздел Быстродействие В Свойствах моего компьютера.
2. Сменить Харды На SAS Скорее всего там узкое место.
41. monax28 10.01.12 16:58 Сейчас в теме
Уважаемые специалисты, может кто подскажет: 1С 7.7 + SQL 2008 + ОС windows server 2008 x64, при попытке зайти монопольно для перевода бух итогов, пишет ошибку не может зайти в однопользовательском режиме
44. hvlad77 13 12.01.12 08:50 Сейчас в теме
(41) monax28,
Прежде всего посмотреть не осталось ли зависших соединений с базой. Смотреть монитором 1с-ки, монитором эскуэля и просмотром подключений к папке соответсвующей базе 1с.
42. sergoff1 5 10.01.12 18:42 Сейчас в теме
Да мне тоже кажется надо искать узкое место,
железо хорошее ,на оборудование денег не жалеют

мы работаем с оборудованием поскромнее , база хоть и не такая большая но один терминальный сервер до 60-80 пользователей держит , хотя идет там только выписка документов и их печать, отчёты формируются в другой базе на другом сервере.
50. ibazh 05.05.12 21:03 Сейчас в теме
Отличный тема, почерпнул ...trancenergy хорошая цитата спасибо
51. Mafoni 07.05.12 17:40 Сейчас в теме
Докрутить индексы в MSSQL которых 1с недостает.
Делается штатными инструментами MSSQL.
Если заинтересует пиши расскажу как.
52. surgeon 07.05.12 18:13 Сейчас в теме
53. Mafoni 07.05.12 19:12 Сейчас в теме
(52) - (52) surgeon,
с Managmet Studio для MSSQL знаком ?
56. pavlo 16.05.12 10:31 Сейчас в теме
(53) Mafoni, уверен, что после следующей реструктуризации базы, у него не улетят все индексы построенные из вне? На счет минимального набора индексов тоже не факт, так как настраивается в конфе, хоть и не все.
57. Vladimir-R 168 04.06.12 11:36 Сейчас в теме
(51) мне тоже было бы интересно почитать Ваши рекомендации по поводу индексов
58. an_2 19 05.06.12 15:27 Сейчас в теме
(57) Балабас,
Рекомендации зависят от того, на каком SQL работаете.
59. Vladimir-R 168 05.06.12 15:38 Сейчас в теме
(58) win2008+sql2008 и все это на Hyper-V
54. goodwin12 10.05.12 11:12 Сейчас в теме
Лучше отделить сервер баз данных от сервера SQL и разместить их на разных физических серверах. Это во-первых. Во вторых установить 64х битный SQL и выдать на эту железку 16Гб оперативки.
А вообще иногда полезно проводить свертку базы и переиндексацию.
55. Mafoni 10.05.12 17:05 Сейчас в теме
(54) - 1. Абсолютно верно 2. На любителя 3. Реиндексация бывает бесполезна когда нет нужных индексов а научным методом доказано что 1с не строит всех необходимых индексов (строятся только минимальный набор) - и бывают ситуации когда ручное создание дополнительных индексов решает проблему производительности.
60. imp_home 05.06.12 22:13 Сейчас в теме
Рекомендуемые меры:
1. Разобраться прежде всего с сетью - по крайней мере, поперфмонить. А вообще - лучше поискать узкие места на каждом из серверов.
Не исключено, что можно решить задачу имеющимися средствами - поправить настройки, перегруппировать задачи на серверах по принципу схожести характера нагрузки на подсистемы - например, вынести всех аналитиков с их базами на отдельный достаточно мощный сервер и т.п.
3. В идеале - приобрести достаточно шустрый современный массив с 1-2 полками 15К винтов, плавно ставить во все серверы FC HBA и переезжать на него; все серверы посадить на гигабит, причем транковать сетевушки, где возможно (до свича, т.е. возможно потребуется приобрести приличествующий свич); добить мозгов, где не хватает.
61. Vladimir-R 168 06.06.12 10:23 Сейчас в теме
(60) imp_home, что Вы подразумеваете под выражением "транковать сетевушки, где возможно (до свича)"?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот