Добрый день. Есть база 1с Усо в клиент-серверном варианте.
Объем базы 5 гигов
Пользователей 70-100 человек
Сервер sql 2xXeon x7560 , 64 гига оперативки, жесткие работаю в рейде на фабриченеле
Сервер 1с 2xXeon x5690 , 64 гига оперативки, жесткие работаю в рейде на фабриченеле
Сервер терминалов 2xXeon x5696 , 64 гига оперативки, жесткие работаю в рейде на фабриченеле
соединено sql соединен c сервером 1с все через 3 сетевых интерфейса с балансировкой сетевой нагрузки
Вроде железо не слабое, но проведение документов в файловом документе в файлом варианте делается одну минуту, а в клиент-серверном варианте 6 минут
Помогите что можно поискать? Уже кучу инфы перелопатил, применял разные методы настройки, ничего не помогает
(1) ftm, полагаю нагрузку на сервер самой 1с вы проверили? Если там проблем нет, то копать придется ms sql. У нас были подобные проблемы. Чаще всего связаны с взаимоблокировкой транзакций или любимой фишкой от 1С: созданием сотен временных таблиц ради одного запроса. Долго боролись, в конце концов ушли на Oracle. Если у вас есть спецы по MS SQL, то имеет смысл отследить в логах блокировки и постараться оптимизировать их обработку на стороне сервера.
Вариантов много, а что сделано?
Для начала можно
обрезать логи в скуле,
переиндексировать базу средсвами 1с или скуля, кому как нравится,
Поставить увеличение файла базы скуля не в мегабайтах (по умолчанию), а в процентах
Перевести базу из FULL в Simple (у меня так сделано, но это тоже на вкус и цвет)
Помню как-то с месяц с базой ничего не делал, а потом запустил реиндексацию + реструктуризацию (средствами 1С) так проведение больших документов сократилось раза 1,5-2 (это при том что MS SQL каждую ночь по расписанию делает индексацию).
Ещё можно поискать на сайте статьи по настройке MS SQL, покопаться с самим сервером. Что-то мне кажется что проблема с файловой подсистемой, любит 1С читать/записывать постоянно. Посмотрите как файлы базы фрагментированы, может стоит с ними поколдовать. Вот этот совет в (2) про увеличение базы в процентах хорош, только вполне можно оставить и мегабайты, только поставить число побольше (у меня кажется стоит 500Мб, но у меня база побольше).
Нет, группа документов проводится 6 минут
Поигравшись с энергопотреблением, созданием 10 tempdb фиксированного размера без увеличения время проведения уменьшилось до 4,5 минут
А как организован SQL у вас? Система должна быть физически на одном жёстком диске, SQL (сама база) на другом, желательно SCSI (если), т.е. разделить SQL базу Master и вашу базу - заметное ускорение должно наблюдаться.
В дополнение к оптимизации SQL сервера, можно еще поковырять проведение документов если конфигурация сильно кастомизированная. Может в самих документах быть затык.
Камрады, думаю попал в нужную тему. Требуются советы бывалых... попробую описать имеющуюся проблему.
Имеется база УТ 10.3 Агент+ (релиз 14.4 на данный момент) в файловом варианте, размер базы 15+ Гбт. Платформа 8.2.14 Работает одновременно 15 человек менеджеров + 5 "карманников" (торговые представители). Работают все в терминальном режиме. Сама база крутиться на мощном серваке WinServ 2008R2, RAM 12 Gb, 2 XEON E5530 (8 физ. ядер), 2 SAS винта в RAID (но насколько мог судить в единичке). Собственно база тормозит... причем как правило в начале рабочего дня всегда, потом по воле случая. При проведении по партиям возникают проблемы блокировок. Само проведение идет очень долго. Зависания могут быть как минуту, так и пять-шесть.
Брали копии базы с товарищем домой для тестирования. При подключении базы и загрузке в нее, база подвисла, шурша бедным винтом, через 5 минут отмерла и можно было продолжать работать. Тестирование ошибок не выявило, сжатие таблиц базы дало в сумме 1,5 Гбт места. Проведение по партиям за один день делалось 1,5 часа на достаточно мощном компе. Собственно после этого в однопользовательском режиме особо глюков не замечено. (ну оно и понятно)
Итак посоветуйте, что можно предпринять для увеличения производительности базы?
Даст ли выйгрыш отключение полнотекстового поиска, очистка его индекса, отключение пользовательского журнала регистрации, сжатие таблиц на самом сервере?
Один из франчей говорит переходите на "скуль", но руководство настроено отрицательно, выкладывать еще 170 штук не будет.
Если все таки переходить на серверное взаимодействие, то кто что может сказать про DB2, Oracle, Postgres... какова их производительность по сравнению со мелкософтовой скулей. По интернетам информация разная... но в целом говорят, что они проигрывают. Но я так понимаю главное разрулить блокировки.
Кто что может сказать про вариант публикации базы на веб-сервер (Apache предпочтительнее). Реально испытывал вариант только до 5 пользователей, да и база была Гиг с небольшим УТ 11.
Извиняюсь за многобукав еще раз, если кому не сложно помочь откликнитесь.
(11) e][tend, MS SQL конечно отличный вариант, но если требуется сэкономить
- у моих клиентов только Postgres используется (он бесплатный) - базы конечно не по 15 Гб, меньше, но в одной организации ключ на 50 лицензий, базы БП КОРП + ЗУП + мелкие другие - сервер 1С на Cent OS, клиентские машины на Windows-семействе разных версий.
Знакомый один франчайзи хвалил DB2 (он вроде как платный для использования с базами больше определенного объема, аналогично как и бесплатный вариант SQL от Microsofta - можно использовать бесплатно, если размер базы впишется в ограничение - вот по поводу размеров нужно уточнять, раньше вроде было в DB2 4Гб, у Microsoft то ли 4, то ли 10 Гб), но сам не работал с ним, подсказать нечего
DB2 бесплатна для любого размера базы, там ограничение для количества используемой оперативной памяти (до 2Г) и процессоров. Для небольшой базы, я думаю не критично. Но в однопользовательском варианте существенных отличий в скорости между Postgres и DB2 я не заметил.
(12) Borisych, спасибо за ответ. Сами пока смотрим в сторону DB2, но это на будущее, пока база так и останется файловой.
Замер производительности показал, что при первом старте база делает индексирование и слияние индекса полнотекстового поиска, из-за этого база уходит в даун на 1-1,5 часа. Но потом стартует нормально. На самом сервере эта операция так же имеет место быть правда с другой переодичностью. Плюс пару фоновых заданий обязательно дают о себе знать.
В общем пока ограничились отключением части фоновых заданий, отключением полнотекстового поиска, полным прогоном базы на "тестирование и исправление"... о результатах отпишусь.
Кстати вдогонку, может кому пригодится - вышел MS SQL 2012, для бесплатной экспресс версии размер базы увеличили до 10Гб. так что для небольших организаций можно пробовать.
Спасибо за советы, "выгрузить и загрузить назад" клиент в силах, по неведомым ему и мне причинам сервер не может сделать ни выгрузку, ни тестирование и исправление. Даже за ночь.
Свертку в крайнем случае попробуем. Ставить ССД винт пока тоже смысла не вижу, да и умрет быстро (1-2 года) при таких обьемах транзакций. Да и если проблемы с блокировками остануться, то винт не поможет.
Пока думаю взять базу домой и прогнать/твикнуть ее у себя, затем просто принести готовый результат. Но клиент пока что-то не хочет говорит мол сам попробую.
В общем камрады... проблема сохраняется. Пробовали с товарищем прогнать базу у себя, ставили специально 16Гб RAM результат нулевой. ТиИ всегда затыкается. Размер базы из-за этих тестирований уже дорос до 17Гб. Теоритечески размер базы может быть очень большим, поэтому на размер пока не смотрим.
Еще один интересный нюанс, когда базу подключаем у себя, то консольФоновыхЗаданий показывает 5-6 заданий. А на самом сервере видит только одно ФормированиеПоздравленийСотрудников. Кто-то с этим сталкивался? Что можно предпринять? Выгрузка/загрузка кстати уменьшает размер БД на 1-1,5Гб (как раз видимо размер индексов), но на самом сервере пока не делали, юзверей просто так не заставишь временно работать в другой базе.
(23) e][tend,
Это все в файловом варианте делалось? Если да, то смысла в таком количестве оперативки немного, 1С ее всё равно не задействует. Пробуйте перенести базу в sql и дальше нужно смотреть и пытаться что то сделать.
(24) fermion,
Да именно, файловая. Оперативки да, в работе столько полностью не используется, максимум 10Гб. Терминал все-таки.
На Скуль переезжать нет возможности ибо дорого. Пока смотрим в сторону DB2.
(25) e][tend,
Ну так заюзайте или db2 или postgres. Для оттестировать вполне пойдет. Не сочтите за рекламу, но вот http://vikki.org.ua/os-linuks/neskolko-testov-1s-82/ мое небольшое тестирование. Оно конечно не супер пупер, но общая картина просматривается.
уж лучше postgres, db2 с ним намучился достаточно, когда программил под эту штуку. как не крути но туповатая db2, клиенты с нее убегают, хотя проработали много лет
Конфа какая ?
Какой документ проводится 6 минут ?
Релиз 1с какой ?
Если заинтересует расскажу как в MSSQL докрутить индексы необходимые - порой это спасает положение и производительность повышается. На некоторых операция можно получить прирост скорости 20%.
+ можно покрутить индексирование в самой 1с-ке в некоторых конфах они крайне криво используются !!!