Имеется 1С 7.7, работающая в терминале с MS SQL 2000. Процессор сервера часто бывает загружен на 100%. Я когда пришел сюда все уже так было настроено и работало. Сейчас в связи с частой перегрузкой сервера, я стал задумываться, что можно изменить, чтобы 1С стала работать быстрее. Статей в Инете на эту тему я не встретил. Может кто исходя из собственного опыта что-то сможет посоветовать?
(3) KorotaevALL
База до 10 Гб, пользователей около 40, работает в терминальном режиме на SQL. Больше всего процессор использует обычно процесс SQL сервера, но бывает и 1С-ные процессы. Точной конфигурации сервера я не знаю - получали до меня, да и стоит он в серверной возле сисадминов. Но мне говорили, что стоит два двухядерных процессора.
Если МонопольныйРежим() = 0 Тогда
// vk_sleep_1C.dll - Конфликт блокировок в разделенном режиме 1С:Предприятия 7.7
Если глЗагрузкаБиблиотеки("vk_sleep_1C.dll") = 1 Тогда
vk_sleep = СоздатьОбъект("Addin.vk_sleep_1C");
vk_sleep.УстановитьПаузуПриБлокировке(10, "7.7");
КонецЕсли;
КонецЕсли;
vk_sleep_1C.dll - библиотека позволяет снизить нагрузку на процессор в случае конфликта блокировок, особенно это эффективно при работе в терминальном режиме. Существует несколько версий библиотеки с несколько различным порядком работы с задержками блокировок. Библиотеку можно поискать на просторах интернета. Одну из версий библиотеки можно скачать здесь http://infostart.ru/public/18657/
Есть и другие способы разрешения конфликта блокировок, которые нагружают процессор.
По поводу сервера. Для 40 пользователей процессоров должно быть побольше.
(8) alexk-is
А куда нужно помещать указанный Вами код?
По-поводу процессоров - наши сисадмины сейчас прорабатывают вопрос покупки нового сервера.
Просто пользователи звонят нам по поводу медленной работы и хотелось бы им как-то помочь.
Если абстрактно, то самый быстрый вариант это терминал + файловая бд. Однако на больших обьемах и прм большом количестве пользователей - это совсем не вариант. Я бы посоветовал разнести сервер бд и терминал на разные компьютеры, но боюсь со штатной семеркой это не поможет.
Полностью согласен - с vk_sleep_1C.dll 1С Предприятие 7.7 работает реально лучше (особенно при работе 1С на терминальном сервере) т.к. нет взамных блокировок.
Есть похожая проблема с восьмеркой, работает на SQL, но без терминала, база не большая (ок. 2 гигов) и пользователей не больше 20, но быстродействие низкое... Может кто посоветует, лучше перевести ее на терминал или есть какие-то настройки сервера (SQL или 1С), чтобы эффективность работы увеличить?
Есть похожая проблема с восьмеркой, работает на SQL, но без терминала, база не большая (ок. 2 гигов) и пользователей не больше 20, но быстродействие низкое... Может кто посоветует, лучше перевести ее на терминал или есть какие-то настройки сервера (SQL или 1С), чтобы эффективность работы увеличить?
Скорее всего дело в "железе", поставить SQL и 1С сервера помощнее, выделить для SQL побольше памяти. Еще можно перевести базу на 8.2 если у вас 8.1
У нас 8.2, а железо улучшить, к сожалению возможности нет... На сайте 1С (ИТС) есть статья, где советуют увеличить кличество рабочих процессов, но там пример приводится, где гораздо больше пользователей, думаю, поможет это или добьет сервак окончатеьно?
(15) Нужно считать не количество пользователей (рабочих мест), а количество одновременных подключений к 1С:Серверу. Как показывает практика, до 50 одновременных подключений прекрасно справляется 1 рабочий процесс. При увеличении количества рабочих процессов возрастают издержки на синхронизацию их работы.
Обычно 2 Гб для SQL это не размер, а так баловство.
Что у вас используется в качестве SQL сервера?
Вот как у меня:
- mdf 102GB, расположен ( с логом) на отдельном сервере (4 ядра 6 гиг мозгов, рейд 10, скуль 2005 здесь же), с терминальным сервером соединен напрямую карта-карта 1 гигабит. Прямого доступа обычные пользователи естественно не имеют.
- ИБ (7.7.027) на терминальном сервере - 16 гиг мозгов, 8 ядер, естессно рейд SAS.
- пользователи (в пике 50-55) в подавляющем большинстве только в терминалке.
Полет нормальный.
терминал и SQL лучше всего разносить на разные машины, причем на разные физические, а не виртуальные!!! Во-первых, SQL-ю чем больше памяти, тем лучше, т.к. при этом уменьшается количество операций чтения-записи на диски, свопирования и т.д., для больших баз это может быть очень критично. Далее, SQL нужно максимум времени и ядер ЦП для эффективной работы Во-вторых, надо проверить то, что описано в сообщении №8, это может очень сильно тормозить вашу систему. В-третьих, 1С 7.7 работает, в основном, в режиме толстого клиента (в терминологии 1С 8.2), т.е. группировки по группам справочников, вычисление агрегатных функций выполняется на клиенте, а на сервере только открывается серверный курсор последовательного доступа, через него происходит считывание данных на клиента...Поэтому при формировании больших отчетов в терминале это тоже может хорошо тормознуть всю систему!!!
Рекомендую обязательно разносить сервер БД и сервер терминалов!!!
У нас используется терминальный сервер + отдельный SQL, все на Server2008, под SQL выделено 8 гигов памяти, под терминальный тоже 8, 1С пашет в режиме управляемого приложения, запускается как RDP-приложение(забыл как его майкрософт обозвал, короче передаются данные только приложения) , 100+ одновременных подключений, все норм, никаких проблем. Как по мне то этот вариант наиболее предпочтителен