Есть ли возможность подружить сервер 1С x32 и Apache 2.4 x64

1. Noob001 05.04.18 16:56 Сейчас в теме
Всем доброго времени суток!
Решил воспользоваться коллективным разумом Инфостарт :)

Ситуация такая.
Есть рабочий сервер Ubuntu 16.04
Железка достаточно старая, и на ней стоит максимальные 8ГБ памяти, но со своими задачами неплохо справляется.
Проблема только в том что 1С х64, забирает под себя в течении нескольких дней до 11Гб ОЗУ, и начинает сильно свопится, что резко влияет на быстродействие.
Честно понятия не имею зачем ей столько ОЗУ, т.к. в другом сервере стоит х32 версия, которая вполне себе комфортно живет с таким же набором ИБ, и даже большим объемом данных.

Попробовал поставить сервер 1С x32 в выходные, и даже погонял тестовую нагрузку по VPN в режиме клиент-сервер, все понравилось.
Но типовые подключения работают через Web-клиент и Тонкий клиент поверх HTTPS.

А вот Apache 2.4 х64 не хочет запускаться с Сервером 1С х32.

Попытка поставить Apache x32, привела к выводу что на Ubuntu 16.04 х64 это настолько сложно, и к концу данной операции Убунта станет уже фактически 32 . Это все долго и муторно из-за зависимостей и т.д.
Можно конечно поставить Ubuntu х32, но это сразу срежет 4Гб памяти, и смысл такой операции нулевой.

Может кто-то сумел подружить сервер х32 с Apache х64, я не гуру в этом.

Пока в голове только одно решение, ставить отдельную слабенькую машинку чисто под Апач, и ставить туда x32 Ubuntu, а конектится к основному серверу, где будет стоять х64 система и х32 сервер 1С. Но плодить точки отказа не очень охота.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. blackhole321 1313 05.04.18 21:01 Сейчас в теме
(1)как вариант - развернуть две виртуалки на сервере
7. blackhole321 1313 05.04.18 21:20 Сейчас в теме
(1)ну или docker https://infostart.ru/public/810851/, если есть образ x32
10. Noob001 05.04.18 23:17 Сейчас в теме
(7)
ну или docker https://infostart.ru/public/810851/, если есть образ x32


Неплохой вариант, гораздо лучше чем VM которой надо будет отдать память и ресурсы.

Почитал маленько, я так понял память он забирает из текущих ресурсов как обычное приложение, понятно что потребуется больше чем нативному Апачу, т.к. ещё потребуется на обслуживание контейнера и окружение.
Ещё понял что у меня будет проблема с https. один раз прописать сертификаты вроде расписано как, но у меня LetsEncrypt.
Предположим для получения сертификатов и обслуживания сайта, оставлю Apache x64, а для 1С через Docker с 32х битным Апачем.
Как быть когда certbot обновит сертификаты, как я понял приложениям внутри контейнера, нельзя указать пути за его пределы.

Вообщем надо все сильно изучить, тут проблема 2. С английским не очень, на русском документации мало.

Ещё не представляю как при входящем соединении на нативный Апач, перекинуть обработку данного соединения на Апач внутри контейнера, чую так можно, но как именно не пойму.
13. blackhole321 1313 05.04.18 23:57 Сейчас в теме
(10)думаю в Вашем случае без разницы vm или контейнеры. Память и ресурсы будут одинаково нужны и vm и контейнерам
14. Noob001 06.04.18 00:16 Сейчас в теме
(13) Честно не работал с ВМ вообще, но как я понимаю для ВМ надо задать параметры, и отдать совершенно определенные ресурсы например 512 Мб памяти, и с этими параметрами она живет.
Что если 512 Мб, ей окажется мало?
Как я понял докер сам возьмет у системы нужное количество памяти и продолжит работу, при этом изначально если ему необходимо 100Мб, он возьмет 100. А в случае с ВМ сразу лишусь 512.
Докер - приложение в системе которое разворачивает некую изолированную среду. И он же транслирует текущую память и ядро текущей ОС в эту среду.
ВМ - все же работает из под гипервизора который жестко определяет количество ресурсов для определенной ВМ.

Правильно я понимаю?

Опять же для ВМ нужны разделы на диске свои и т.п.?
16. blackhole321 1313 06.04.18 00:32 Сейчас в теме
(14)Да, приблизительно так. Виртуальные машины наиболее приближены к отдельным компьютерам.
Память в hyper-v к примеру, может увеличиваться динамически.
Относительно ресурсов -не вижу проблем. Опытным путем по реальной нагрузке определите какие ресурсы требуются и выделите их. Но конечно чудес не бывает и если производительности/ресурсов хоста недостаточно, то конечно будет тормозить.
Поскольку у Вас все на linux, возможно для Вас более подойдёт esxi.
17. blackhole321 1313 06.04.18 00:47 Сейчас в теме
(14)Также, возможно более простым решением, будет потратить ~5000 руб. На windows 10 и забыть о проблемах ;)
18. Noob001 06.04.18 01:15 Сейчас в теме
(17) Сначала Win10, который потребует памяти просто для себя 2,5 Гб.
Потом из-за этого поменять сервер на новый +150К руб
А потом за одно и Postgres с apache поменять на MSSQL и IIS, заодно перейдя на Win Serv 2xxx
)))

А все почему? Потому что для Системы , Постгрес, и Апаче достаточно 1Гб ОЗУ, а может и того меньше, а вот 1Су подавай 16 Гб не меньше.

Ну уж нет, наш путь через терни к звездам, только Трэш и Угар.
19. blackhole321 1313 06.04.18 01:38 Сейчас в теме
(18)Ну по моему Вы несколько преувеличиваете ;)
Не очень понимаю, откуда Вы взяли 2.5 Гб, я бы уменьшил цифру раза в 4. И тем не менее, у Вас останется 5.5 Гб, из которых 3.5 заберёт по максимуму сервер 1с, 1 Гб вполне достаточно для веб-сервер, если у Вас не хостинг, остальное для сервера БД, коим вполне может быть sql server express, если размер базы не превышает 10 Гб. Если превышает то любая бесплатная из поддерживаемых. Реально, ему достанется гига 2-3.
Ну вот как то так :)
Но это лишь одно из возможных решений.
15. Noob001 06.04.18 00:23 Сейчас в теме
(13) То про что я говорю с официального сайта Докер.
Containers and virtual machines

A container runs natively on Linux and shares the kernel of the host machine with other containers. It runs a discrete process, taking no more memory than any other executable, making it lightweight.

By contrast, a virtual machine (VM) runs a full-blown “guest” operating system with virtual access to host resources through a hypervisor. In general, VMs provide an environment with more resources than most applications need.
2. asved.ru 36 05.04.18 17:20 Сейчас в теме
- Распакуйте x64 rpm руками и подключайте модуль из него.
- Настройте на x64 сервере перезапуск рабочих процессов
- Разберитесь, кто жрет память, и устраните
3. Noob001 05.04.18 17:33 Сейчас в теме
(2)
- Распакуйте x64 rpm руками и подключайте модуль из него.


Так не работает, просит еще модули от х64 платформы, при это я распаковал руками все которые он просит, по одному, всего оказалось около 10 файлов, после чего Апач то запустился, а вот к базе подключиться все равно нельзя.

- Настройте на x64 сервере перезапуск рабочих процессов


Такой вариант был, отказался в пользу ночного рестарта сервера через Cron.
Дело в том что перезапуск процессов, по ограничению памяти, происходит в любой момент времени, при активной работе, это может происходить по нескольку раз в день при оптимальных настройках.
А при большем объеме памяти в настройка, это все равно происходит в дневные часы пик, но из-за того что механизм перезапуска процессов требует сначала старта нового процесса который сразу со старта отжирает 4 Гб ОЗУ (невиртуальной), это все завешивает сервер минут на 5-15 при ограничении безопасного расхода 8-9Гб, и на 20-30 минут при 10,5 Гб.
В тоже время как я написал при настройке 8 Гб, перезапуск происходит уже несколько раз в день, а при меньших значениях, ещё чаще. Со старта Сервер 1С просит 4-5 Гб.

- Разберитесь, кто жрет память, и устраните

Ох!. если бы я знал как это сделать. Хотя я знаю, Сервер 1С жрет. :)
Куда он её жрет я понятия не имею.
Если подскажете как с этим справится посмотрю.
4. uriah 18 05.04.18 18:08 Сейчас в теме
(3)
Ох!. если бы я знал как это сделать. Хотя я знаю, Сервер 1С жрет. :)

Наверное, фоновые задания грузят, посмотреть - не нужные отключить:)
5. Noob001 05.04.18 18:48 Сейчас в теме
(4)
Наверное, фоновые задания грузят, посмотреть - не нужные отключить:)


Фоновые все лишние отключены естественно, оставлены только те что необходимы.

Напоминаю, что на данной системе запускал х32 Сервер, в режиме Клиент-Сервер через VPN.
х32 со старта просил 0,6 Гб. при нагрузке его объем рос до 1,2Гб. Никаких проблем.
А вот х64 со старта сразу отбирает 4-5 Гб.

Я так полагаю что в х32 версии, сервер 1с по другому работает с памятью и берет только то что нужно, а в х64, он фигачит в кэш все что не попадя, типа адресного пространства дофига, почему бы не хранить в памяти всю базу целиком и все рассчитанные временные таблицы, вдруг пригодятся. Только вот памяти то немного.

Есть ещё сервер №3, в другом месте, там ОЗУ 24Гб, нагрузка правда меньше и база всего одна рабочая, там в процессе работы потребляет не более 6 Гб, и настроен перезапуск процессов, который проходит абсолютно безболезненно.

А так опытным путем замечено , чем больше баз на сервере , тем больше ему требуется памяти со старта. Для одной УТ х64 серверу хватает и 6Гб, а вот для 5-6 ИБ, для нормальной работы нужно не меньше 16Гб на борту, и 12Гб под 1С.
Но это касается только х64 версии.

На х32 например крутится 1 УТ + 4 БП + 3 ЗУП. совершенно нормально.
Настройка стоит запускать ещё 1 процесс при 12 ИБ или 24х соединениях, за 2 года, только один раз закрашилось с ошибкой: Недостаточно памяти. т.к. там это все на Win, и процессу доступно только 2 Гб.

При этом Сервер 1С не имеет никаких настроек по допустимому расходу памяти, как например Postgres. Только рестарт процесса при превышении.
Что как оказалось не вариант. Я точно уверен что на самом деле 1Су столько памяти не нужно, но освобождать он её не хочет, а тупо свопится.
8. DarkUser 05.04.18 22:02 Сейчас в теме
А в чем сложность? В строчке конфига (файл /etc/httpd/conf/httpd.conf) апача просто укажите 64х битный модуль (скачайте файлик с 64х битного дистрибутива 1С сервера) вместо 32х битного: LoadModule _1cws_module "/1C/x86_64/wsap24.so"
9. Noob001 05.04.18 22:19 Сейчас в теме
(8) У вас так работает?
Я уже писал выше что так не работает.
Если покажете такой работающий вариант, буду признателен.
11. NoRazum 29 05.04.18 23:18 Сейчас в теме
Cento 7 64 битная
1с 32 битная 8.3.10.2664
docker c apache 32
и такая настройка
LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap22.so"

по другому не как не хотела взлетать
могу предоставить скрипт сборки docker.

Пока настраивал долго промучился. Пол года полет нормальный.
12. Noob001 05.04.18 23:38 Сейчас в теме
(11) Да про докер писали выше, склоняюсь к этому варианту.
Апач правда нужен 2.4, т.к. SSL (2.2 тяжело с ним дружит, особенно что касается современной криптографии)


(11)
могу предоставить скрипт сборки docker.

Буду премного благодарен.
20. NoRazum 29 09.04.18 16:45 Сейчас в теме
21. nailkrysinski 17.01.19 17:03 Сейчас в теме
(20) не смог отправить вам в личку сообщение, можете прислать скрипт на nailkrysinski@gmail.com?
22. nailkrysinski 30.01.19 04:15 Сейчас в теме
Нашел простой рабочий вариант https://gee12.space/stavim-1s-83-32-bit-na-debian-9-64-bit/
Суть сводится к установке сперва 64 бит сервера и переименованию/переносу папки с сервером 64 бит (иначе после удаления пакета папка удалится), затем к удалению 64 бит сервера и установке 32 бит сервера. Публикуем базу, но в конфе апача указываем путь до папки с 64 бит сервером. Всё работает.
user1231028; +1 Ответить
23. user1231028 13.04.20 15:06 Сейчас в теме
(22) Благодарю. Работает! Устанавливаем х64, копируем куда то из /opt/1C/v8.3/ папку "x86_64". Удаляем х64, ставим х32. Возвращаем папку "x64_64" в /opt/1C/v8.3/ . Ставим апач. Мне не потребовалось указывать путь до папки с x64, всё само.
24. ReaderKZ1 10.05.20 04:23 Сейчас в теме
(23) А какую версию ставил?? У меня 8.3.13 работает, а 8.3.15 и выше - нет.
все службы работают., а при заходе через Веб -выдает:
1C:Enterprise 8 application error:
Error loading component pack:
:-(((
25. user1231028 11.05.20 11:25 Сейчас в теме
26. ReaderKZ1 14.05.20 22:31 Сейчас в теме
(25) Ок, спасибо. а Апач 2.2 или 2.4?
И еще. -nls модули устанавливали, или только -ws??
27. user1231028 15.05.20 10:02 Сейчас в теме
(26) ставил апач, который идет по умолчанию при установке. Модули ставил все. По большей части руководствовался этой статьёй: http://renbuar.blogspot.com/2018/11/centos-75-1-83131513-postgresql-103-31c.html
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот