Помогите разобраться - может быть я что-то не так я делаю или не туда смотрю:
Есть сервер 12 ядер, 128 GB под сервер 1С и PostgreSQL.
Установлена последняя платформа 1С (8.3.10.2168) и последний релиз PostgresPRO (9.4)
Пользователи подключаются через терминальный сервер, где сейчас установлены файловые базы 1С.
Задача разместить данные нескольких компаний, у каждой по три базы как минимум (УНФ, ЗУП 2.5, ЗУП 3.0 (в процессе перехода), Бухгалтерия 3). У разных баз различная нагрузка - где-то три пользователя, а где-то 15-20 пользователей.
Постепенно перевожу базы с терминального сервера на сервер 1С.
Но когда перевел на сервер три базы, с не особо большой нагрузкой, то пользователи (человек 6) стали жаловаться на существенное падение скорости работы.
При этом загрузка сервера не по процессорам, ни памяти не поднимается больше 10%
Поменял параметр количество баз на процесс - поставил 1, но как-то картина не сильно поменялась.
по дисковой системе стоит RAID 10, sas 7200.
А без виртуальных машин?
Я понял бы поднять ВМ на сервер 1С, и отдельно на сервер на Posgres, но ставить вм для разных баз - мне кажется, что это не совсем правильно, ведь я получу изолированность, но и при этом сократяться мощности. Тем более торможение появляются на трех не особо нагруженных базах.
нее, ну какие виртуальные машины? - заведомо менее эффективное распределение памяти и процессоров. Не надо сюда втискивать технологии, больше предназначенные для хостинга. Лучше попытаться понять, где проблема. Я тоже склоняюсь к мысли, что это Субд. Либо ее (Postgres) надо настраивать по рекомендациям лучших собаководов, либо взять то, что почти и не надо настраивать - ms sql. Есть же пробные версии. И еще все эти SAS по мне так вчерашний день. 2 ssd в Raid1 гораздо лучше. "12 ядер" - это что, какойто низкочастотный процессор? Лучше уж 4 ядра, но высокочастотных.
Просто многие задачи плохо распараллеливаются. Как следствие - сколько бы не было ядер, все равно работает в критичных метах 1 ядро. А ядро неплохого процессора на 2600 все равно хуже, чем ядро дешевого бытового процессора на 3800. Умные люди под эту тему даже изобрели специальную науку - "Параллельные вычисления", но решающих успехов пока не достигли, не все задачи хорошо распараллеливаются. И еще о процессорах - у них есть режим , типа Турбо, но когда он включается (при высокой нагрузке) - то все равно поднимается скорость только 1 ядра.
Замечания по поводу процессора принимаю, но на трех базах - с нагрузкой 6 пользователей, даже менее мощные процессоры должны были бы справляться.
Обнаружил странное поведение Postgres -
параметры поменял:
в частности
shered_buffers=16Gb
temp_buffers=256Mb
перезапустил сервер,
а PGAdmin показывает два столбца парметров:
значение shered_buffers 16Gb и текущее 2097125
значение temp_buffers 256Mb и текущее 32768
и так по нескольким параметрам
Похоже придется капитально заниматься чтением документации по Postgres
(13) Получить результат 11 баллов, приближенный к вашему, удалось только прямо выставив максимальную частоту процессоров 1.2 ГГц, иначе не получалось. Процессоры E5-2680.
(14) Не мучайтесь, сервер 1С скомпилирован в режиме совместимости чуть ли не всей линейки процессоров Intel, AMD, не поддерживает эти процессоры в полном объеме
У меня на ноутбуке I7 2,4ГГц с режимом турбобуст и режимом высокой производительности на виртуальной машине VB с 4 выделенными ей гигами памяти, на которой крутится 1С-сервер + PostgreSQL.PRO 9.5.1 (этот как раз был последним на тот момент, когда я собирал систему) в Ubuntu Server 16.04 тест Гилева показывает 20! Дальше, обычно, пишут слово "Карл". да?
О чем это говорит?
1. А не 32-битный ли сервак от постгреса стоит?
2. Linux для постгреса всегда предпочтительней.
3. А правильно ли прописаны буковки в конфиге для кб. гб и прочего? Регистр имеет значение!
4. А на домашнем AMD FX8230 на хосте установлен Linux (Ubuntu Desctop 16.04), на нем 1C и тот же постгрес.про. В режиме performance работы ядер тест Гилева показывает 29, Карл! (на а как тут без Карла обойтись, да?)
Нанимайте эксперта по технологическим вопросам, если сами разобраться не можете. Процессор у Вас хороший, но, полагаю, система вообще не настроена. Если бедны (хотя сервак не дешевый) - читайте у Гилева про настройку БИОС и о включении режива высокой производительности в винде, а у ребят с постгри.про про то, какие буквы писать в файлах настройки.
Рекомендую вам развернуть на машине MS SQL Express развернуть в него базу с тестом Гилева и посмотреть на результат, с вероятностью в 80% что дело в настройке Postgres и 20% что дело в настройках самой системы.
Вы пишете что базы - файловые на терминальном сервере ... То есть Вы их делаете sql-ными на новом серваке ?
Да, базы изначально были файловые на терминальном сервере - три базы перевели на клиент-сервер, переиндексацию, тестирование делал - нареканий не было.
1. А не 32-битный ли сервак от постгреса стоит?
уже третий Postgres и все 64бит
А правильно ли прописаны буковки в конфиге для кб. гб и прочего? Регистр имеет значение!
я тоже об этом думал, даже перепроверял, после того как PGAdmin мне показал значения из конфигурационного файла и текущие значения, зато установил, что половина текущи значений указаны вне в байтах или KБ, а 8КБ.
Linux для постгреса всегда предпочтительней
правда с непривычки проклянешь все, тем более, что по доброте на виртаулке сисалмин поставил ubantu server 17, а постгреспро для нее версию сервера не делал, пришлось ставить 9.4, так как в новая сборка 1С PostgresSQL 9.6 (deb 64) оказалась не полной, по крайне мере я ее установить не смог
Если возвращаться к тесту, то тут картина совсем забавная печальная:
На виртуальном сервер с 8Гб на Ubantu 17, 1с-сервер (8.3.10.2252) и postgresql 9.4
тест Гилева показал 28 на базе созданной на виртуальном сервере 1С и виртуальной postgres
далее создал базу на сервере 1С на реальном сервере (на котором проблемы) и виртуальном postgres - результат 8,17
создал базу на виртуальном сервер 1С и сервер Postgres на реальном сервере - результат 9,17
Похоже проблема не в настройках 1С и/или Postgres (на Ubantu изменил параметры согласно PgTune). Я все больше склоняюсь, что проблема в настройках MS SERVER 2016 - похоже ОС тупо ограничивает в ресурсах (проц, память) процессы - обычная нагрузка по диспетчеру не более 10% по памяти и процессорам. Может конечно я и ошибаюсь, а может и нет и это связано с тем, что у нас WinServer до сих пор не активирован (лицензии куплены, но как говорят сисадмины - 180 дней после установки Server должен работать нормально без активации)
Пока еще не было времени запустить MS SQL EXPRESS - может что-то и поменяется...