На производственном предприятии планируется пиковая нагрузка на сервер в 1000 одновременно работающих пользователей. Сервер уже не справляется с 200 пользователями. Причины медленной работы сервера пока не выяснили. Денег на покупку более мощного сервера нет. Что можно сделать? Планы обменов?
(1) PerlAmutor, причин может быть очень много, как в аппаратном обеспечении, так и в программном.
Вызывайте специалиста по технологическим вопросам или идите на соответствующие курсы, книги по этой теме будет не достаточно.
(1) PerlAmutor, все зависит от характера работы сотрудников с системой. Проседать начинает при 100 пользователях, часть из которых формируют отчеты с большой выборкой. Данная проблема решается путем создания снапшота, из которого берутся данные для отчетов (реализовывал подобное поведение на прошлой работе - 500 пользователей онлайн + масса запросов к веб-сервисам с Java-фронтэнда, что давало до 10к подключений в максимуме), но для этого необходимо переписать инициализацию базы, чтобы при запуске не было записи в СУБД. Именно вынесение отчетов во внешнюю БД очень сильно повлияло на общую производительность (в разрезе APDEX). Дальше, получив определенное увеличение показателей удовлетворенности, можно приступать к рефакторингу кода. Для этого определяют самые массовые и самые ресурсоемкие операции, на пересечении которых принимают решение об оптимизации. Оптимизация может либо выносить операцию в фон, оперативно двигая только информацию о достаточности (например, если механизм уменьшает остаток, то для корректного отражения операции необходимо лишь проверить наличие списываемого остатка, остальное можно учесть позднее - при фоновом формировании остальных движений); либо будет заключаться в оптимизации кода запросов, что из минусов повлечет за собой проблему с обновлением системы. Проблему с обновлением можно решить отчетной базой. куда будет выгружаться вся информация для формирования отчетности, при этом оперативная база может обновляться лишь при изменении механизмов движений документов.
Ну или действительно приглашать эксперта, занимающегося оптимизацией, но это тоже не дешево.
(10) starik-2005, эксперта надо для 1000 пользователей обязательно. Недешево точно.
Еще полезно пройти курсы по этой теме, чтобы иметь возможность диалога с этим экспертом.
(11) progr-2008, слова "эксперт" в моем комментарии и "эксперт по технологическим вопросам" ни разу не одно и тоже. Есть "эксперты", которые достаточно слабо представляют, как работает СУБД, как в ней производится поиск данных, как соединяются запросы; а есть другие, которые не "эксперты", но которые в свое время, например, участвовали в разработке ядра СУБД и то, как отрабатывают запросы, как работает оптимизатор и как осуществляется поиск по индексам знают не из книжек. Последних, конечно, на порядки меньше, чем первых...
Спасибо за ответы, но из них складывается впечатление, что 1000 пользователей реально, но никто не назвал максимальное кол-во пользователей, которое работает у них. Еще хуже то, что максимальное количество пользователей заявленное разработчиками 1C:ERP - 200 человек (со слов других людей, самому информацию об этом найти не удалось, только чей-то нагрузочный тест).
(8) Fragster, про ERP 1 запись всего: 50 пользователей. Еще вот такое нашел Примеры технологических параметров внедрений. Для распределенной базы в 11 узлов - 100 одновременно работающих пользователей как-то вяло.