Postgresql.conf
# Основные настройки подключения
listen_addresses = '*' # слушаем все адреса
port = 5432
max_connections = 100
# Память
shared_buffers = 64GB # 25–40% от RAM (в твоем случае 256ГБ)
work_mem = 512MB # для сортировок/хэшей
maintenance_work_mem = 4GB # для VACUUM, CREATE INDEX и пр.
effective_cache_size = 192GB # 70–80% от RAM
Достать один процессор (можно не физически, а в биосе или иным способом, ну или как-то прибить rphost на один процессор а postgres на другой)
(и зачем в данной конфигурации виртуализация? планируется потом что-то ещё крутить?)
а сколько ядер выделено на саму VM? По рекомендациям proxmox нужно начинать с малого и добавлять по необходимости, если сразу 72 выделить могут быть проблемы
Павел, 1 сокет 18,
пробовал выдать 1 сокет 9 ядер и 2 сокета 36 ядер
в случае 36ядер сцал что виртуальные туда уйдут поэтому уменьшил, в любом случае вообще не менялся гилев на пострессе, все те же 6,43
sanzhinvo, NUMA бессердечная сука, может убить производительность на корню. + если есть недогруз по ядрам, то иногда лучше убрать HT, чтобы на ядро было больше кэша, но тут в реальной работе пользюков надо тестить.
sanzhinvo, ну и ещё - синтетические тесты не показывают реальной картины, особенно писькомер Гилева - очень упирается в скорость одного ядра и задержку между БД и сервером 1с (ну т.е. для бОльшего количества очков они должны быть на одной машине).
в том то и дело, грузанул боевую, страшно тормозит особенно при проведении документов.
в данный момент 1с и бд на 1 вм расположены.
самое интересное, я как и говорил выше, меня конфиг файл потсгрески, вообще нет изменений, как это работает?
Alexey Dmitriev, спасибо тоже буду тестить, но все еще открыт для разных вариантов, а вообще в целом, как много в моем случае возможных причин, и если не сложно можно подробнее про numa и как это решить
Можно попробовать режим энергопотребления в настройках материнской платы выставить в Max Performance, и в самом Proxmox автозагрузку добавить команду (через systemd/crond/rc.local по вкусу)
очень упирается в скорость одного ядра и задержку между БД и сервером 1с
ЕМНИП, сервер 1С не умеет в многопоточность, посему всегда занимает только одно ядро. А ещё он любит блокировки, особенно на проведении, так что и база данных работает практически в однин поток. Так что всё упирается именно в скорость одного ядра и задержки обмена с базой данных (лучше всего на одном компе с обменом через shared memory или unix socket.
Мой тебе совет.
Скачай с https://1c.postgres.ru/ свежую сборку и поставь ее не трогай файл конфигурации.
18 ядер за глаза.
Так же напоминаю что там не только ядра там ещё гипервизор и у тебя всего 36 ядер на два процессора.
Hyper-threading я бы сразу выключил. Равно как и все возможные и невозможные зелёные опции и все бы выставил в Макс производительность.
Судя по тесту - диски хорошие, а вот тюнинг через чатгпт говно. При установке дистриб с 1С - сам настроит автотюном. Сохрани конфиг.
Да и операционка какая?
Всем большое спасибо, сейчас буду тестить буквально по списку, по логике я думал то что в конфиге сервера не может быть проблем так как файловая база то выдает 113 гилева(хоть какой то показатель), а именно постгрес плохо работает, поэтому был почти уверен что проблема именно в бд
1. Перенести базы на реальное железо без прослойки, хотябы SSD напрямую для виртуалки выделить , на виртуальном диске работать будет до 5 раз медленнее. (проблема не в скорости дисков а в накладных расходах на виртуализацию ввода\вывода для дисковых устройств)
Для теста может тупо дабавить самую простую SSD но напрямую выделенную, если поксмокс- из вебки не сделаешь нужно одну строчку в конфиг для диска добавить.
2. Постгрес работать будет раза в два медленнее чем MSSQL. (хотя у меня на 50 юзерах работал без нареканий, но даже в этом случае после перехода ни мастдай заметно отклик повысился)
Про процессоры забудь, в твоем случае должно до сотни юзеров хватить производительности с лишком...
После этих действий, проверяй производительность и высылай ящик пива.
1 почитайте что Гилев вообще о посгре пишет
2 6354 это не фига не мощный проц, это медленное унылое говно, предназначенное для не менее унылых vps https://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeo...
Да многопоточность, но в один поток вы сравнимы с 2667v4 10 летней давности
3 проксмокс для виртуализации винды крайне хреновое решение
4 ssd это уже прошлый век, тем более для 1с, nvme онли
5 io uring, writeback, даже коментить не хочется...
Да многопоточность, но в один поток вы сравнимы с 2667v4 10 летней давности а лучше и не скажешь. В топку такой проц. Если базовая частота меньше 3.7, то я сочувствую программистам. Хотя если оплата почасовая, то вы их не хило приподнимаете.
Ivperivm, нет. 1с нужна производительность на ядро . Лучше голд с 8 ядрами , чем Сильвер с 16.
Далее вопрос про виртуализацию - кто бы чего не говорил , 1с на виртуализации - это плохо. Далее , база данных на этой же машине ? Всё патчи стоят ?
Ради интереса поставь на эту же машину ms SQL и настрой её. Сравни цифры
Ivperivm,
Процессов 1С сколько? Пользователи как к базам 1С подключены? Для 1С не важно количество пользователей. Гораздо больше имеет значение в каком режиме используется база. Если в час в базе сотни документов создаются и проводятся, или в базе есть очень тяжелые документы с расчетом себестоимости продукции. И рассчитывают эту себестоимость по несколько раз в день (попадаются и такие клиенты). То одно ядро гораздо шустрее двух более медленных. Если же у вас больше аналитическая работа основанная на анализе отчетов, то тогда возможно лучше два ядра. Но я не верю что какой-либо сервер потянет 3000 процессов 1С. Максимум пока 600-650 удавалось запустить для более менее комфортной работы в очень боевых базах на одном сервере. На сервере несколько виртуалок для работы пользователей по РДП, и пара виртуалок сервер 1С + СКЛ сервер. Если несложно, распишите как у вас структура баз и серверов 1С реализована.
mogaec, 4 виртуальных машины на debian. Настройка 1 база на процесс, 80 сеансов на процесс. Регламентные задания на отдельном сервере. Остальное стандартно
Попробуйте отключить nested loop соединение
В некоторых конфигурациях 1с это очень сильно повышает производительность. В некоторых наоборот убивает в 0
Я недавно мучал 1С на 2х процессорном железе.
Пришел к выводу, что 1С упирается в производительность дисков (рейда).
Стоял рейд контроллер 6Гб/с. Я поменял на 12Гб/с. Рейд собрал 5й. Диски SAS 12Gb/s 10k.
Фото не могу скинуть, не делал. Но по тестам скорость чтения вышла в районе 3500-3700. Запись чуть меньше, - 2100.
1С начала работать более менее.
Но и этого бухам мало было. Проводиться документы стали намного быстрее, с 30мин до 2х.
Затем для теста я поставил обычный писюк на базе i7 12 поколения, 128гб озу (мать msi pro какая то) и ssd m2 самсунг. Без рейдов, но с бэкапами. И эта сборка по производительности превосходит серверное 2х процессорное железо.
Так что думайте сами.
Есть разные конфиги под 1С,но по факту понял одно, ни какой виртуализации для 1с сервера, или обязательно база и 1С сервер на 1м сервере (лучше физическом). Лучше всего летает на i7 14700k 20 ядер 4,8-5,2GHz /128ram (больше десктопная мать не ест)/nvme диски для ОС, и темп (srvinfo) + ОС темп +1С темп. tempdb от mssql только в RAM. Базу на sas ssd R1. Горячий бэкап sas hdd. На postgre есть тестовые базы но скорость не мерял.