На конторе, запущен довольно таки мощный компьютер, в роли сервера для 1С.
Сотрудники, подключаются по RDP, и открывают нужное количество им баз.
Всё бы хорошо, но есть проблема - каждая из работающих баз, высасывает по полтора гига оперативы.
В среднем работает по два сотрудника, и по 10 одновременно открытых баз у каждой.
Возможно, есть способ убавить прожорливость, хотя бы на 300-400 мегабайт?
Возможно, есть способ выгружать из памяти те базы, которые висят в фоне?
Поделитесь, пожалуйста. Желательно, отработанными в практике методами ;)
Иван Елисеев, тут больше надо к 1с программистам обращаться. Я свой коммент выше дополнил. Вы напишите на него ответ, попробую что-нибудь написать вам.
sazhyk, пока что, файловая. планирую смену БД, но только если от этого реально будет прирост к скорости. на компе i5-6500 3.2, 64гб оперы, ссд. мать прошная, всё это дело в максимум кочегарит.
Иван Елисеев, переход на серверную версию уменьшит потребление памяти в пользовательских сессиях, но сервер и база будут тоже прилично отъедать (по этому терминальный сервер выносят отдельно от основного)
Игорь, угу, только серверная версия приличных денег стоит :)) учитывая специфику организованной работы, дешевле купить лютый сервак и засунуть его в стойку, чем покупать лицензию на то, что уже есть.
пока что, файловая. планирую смену БД, но только если от этого реально будет прирост к скорости
О каком приросте скорости идет речь?
Самый быстрый вариант работы - файловый.
Клиент-серверный работает разумеется значительно медленнее.
Если нужно скорость - только файловая. Это максимально быстро, но не позволяет работать многим клиентам в одной базе. В идеале одна база- один клиент.
Клиент серверная нужна, если с одной базой нужно работать множеству клиентов - файловая этого не позволит, а клиент серверная будет работать.
У меня самого расклад следующий. 1С скульная. 6 баз. Количество одновременных пользователей - 22-25 человек. Работают каждый обычно с одной. Базы примерно по 4 - 4,5 ГБ. Конфигурация - очень нестандартная (не буду вдаваться в подробности). Примерное потребление файлом rphost - 2,3-2,5Гб. Каждым пользователем - 500-700МБ. SQL сервером - 12ГБ (столько выделено). Очень много поиска полнотекстового.
Такое низкое потребление памяти (имхо) было достигнуто так: как сказал 1С-программист, у них стандартом де-факто хранение бинарных данных в базе данных (стрим), всех запрошенных данных - в памяти как можно дольше. Отсюда решение, что бинарные данные (в моем случае это фотографии) кэшировались в памяти на очень короткий промежуток времени, не помню точно, но не более 5 минут. Хранились ни в коем случае не в базе , а в отдельном разделе диска. А в базе только ссылки на них. Напрягайте 1С-программиста!!! Если сами не сильны в этом. Так же его стоит попросить/потребовать/приказать о том, чтобы он оптимизировал какие-нибудь тяжелые запросы. Обычно это сделать можно.
ЗЫ. Ребята одинэсники, ничего личного, прост вы иногда немного ленивы.
отсюда решение, что бинарные данные (в моем случае это фотографии) кэшировались в памяти на очень короткий промежуток времени, не помню точно, но не более 5 минут.
Ну вообще это настраивается на уровне SQL.
Но лучше вообще не хранить файлы в БД.
Так же его стоит попросить/потребовать/приказать о том, чтобы он оптимизировал какие-нибудь тяжелые запросы.
Насколько я понял у топикстартера бухгалтерский аутсорс.
В таком режиме работают исключительно с типовыми конфигурациями, за изменение конфигурации немедленный расстрел.
Иван Елисеев, И?
Думаешь, удивил?
Милай, это сервер, а не компьютер пользователя. 64 Г для сервера - тьфу, а не память.
Но правда "2 сотрудника по 10 баз у каждого" - проблема у тебя не в памяти, а в диске. Поставь SSD
InoMono, ну во первых, и не собирался удивлять. видали, ставили, пользовали побольше, причём в разы. во вторых, ссд и так стоит. в третьих, если так уж и хочется поумничать, почитай, что я писал до этого.
Иван Елисеев, тебе НЕ НАДО ограничивать прожорливость по памяти.
Люди с обратной проблемой борятся - как бы все так в 1С закэшировать, чтобы побыстрее работало.
А у тебя и так все хорошо.
Есть такое понятие SWAP.
Он включается автоматически когда памяти не хватает.
Очевидно, что пользователь не может работать одновременно с 10 базами. А работает с ними по очереди.
Неиспользуемые автоматически вытесняются в своп.
У тебя проблема совсем не там где ты думаешь.
Для начала проверь с помощью встроенного Performance Monitor, а где именно тормозит.
Зуб даю, что это диски, а не память.
InoMono, Да я и не сказал, что тормозит :))) Тормозило, когда было 16 гигов, 24. Сейчас я воткнул всё в новую мать, подоткнул 64 гига. Расход 30-40. Всё в порядке. Но количество клиентов растёт, запросы растут. Вот я и хочу предусмотреть, чтобы когда запросы подрастут, всё было к этому готово.
Судя по прожорливости, не файловые ли у вас базы? Если файловые, переходите на клиент-серверный вариант. Память будет есть сам сервер, но каждый клиентский сеанс будет потреблять значительно меньше.
Иван Елисеев, именно у файловых баз каждый толстый клиент, запущенный на терминале потребляет очень много ресурсов. По моим наблюдениям, для примера, запуск базы УТ на терминале:
клиент-серверный вариант ест около 100 MB, при этом эта же база, но в файловой версии, клиент будет есть 500-800 MB. Пара-тройка таких клиентов, и они "переплёвывают" по прожорливости памяти клиент-серверную версию, у которой самыми прожорливыми являются процессы SQL и 1С сервера.
SibD, почему-то был уверен, что при моих ресурсах и настройках 1с автоматом выбирает тонкого клиента. проверил сейчас, на голом старте -300мб от памяти. спасибо.