В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации.
Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp - xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.
Небольшое, но важное отступление
В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами).В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) - на хабре, на infostart.
Использование бекэнда X11Rdp несет в себе несколько минусов:
- Достаточно долгое время сборки
- Сложно решить проблему с переключением языков. После переподключения к сеансу переключение языков может перестать работать. Автор регестрировал проблему на сайте разработчиков - гарантированное решение было найдено автором только для бекенда xorgxrdp правкой исходно кода (далее этот метод используется в статье)
- Скорость отрисовки может оказаться недостаточно быстрой для комфортной работы пользователей
В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.
Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ.Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней.
При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:
- 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
- 5 Гбайт: точка монтирования /var
- 5 Гбайт: точка монтирования /tmp
Для сервера необходимо установить статический IP-адрес.
Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:
Sudo apt-get install openssh-server
sudo restart ssh
При активированном firewall открываем порт 22:
Firewall-cmd --add-port 22/tcp --permanent firewall-cmd --reload
Установка и настройка сервера xrdp with xorgxrdp backend
На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу.Устанавливаем необходимые зависимости:
Sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
Создаем каталог для загрузки дистрибутивов:
Mkdir -p ~/xrdp-xorg
cd ~/xrdp-xorg
BD=`pwd`
cd "${BD}"
Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:
Git clone git://github.com/neutrinolabs/xrdp
cd xrdp
git submodule init
git submodule update
cd librfxcodec
./bootstrap
./configure
make
cd ..
./bootstrap
./configure --enable-fuse --enable-rfxcodec --disable-ipv6
make
Устанавливаем xrdp в систему:
Sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
sudo update-rc.d xrdp defaults
Скачиваем дистрибутив xorg-xrdp бекенда:
// Build and install xorgxrdp
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz
cd "${BD}"
tar xvfz xorgxrdp-0.2.0.tar.gz
cd "${BD}"/xorgxrdp-0.2.0
Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок . Корректность проверяется созданием сессии - 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию - заново еще раз проверяем.
В терминале присваиваем значения временных переменных:
Kb_model="pc105"
kb_layout="us,ru"
kb_options="grp:ctrl_shift_toggle"
Делаем замену кода в исходном файле:
Sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c
Компилируем и устанавливаем в систему xorg-xrdp бекэнд:
./bootstrap
./configure
make
sudo make install
Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки и , чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий.
При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе меняем значение переменной port=3389 на требуемый.
При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):
Firewall-cmd --add-port 3389/tcp --permanent
firewall-cmd --reload
После настроек перезапускаем службу
Service xrdp restart
Теперь можете подключиться к серверу через стандартного клиента с windows либо с linux любым клиентом, который поддерживает протокол rdp.
Внимание : перед подключением необходимо убедиться, что раскладка клавиатуры на клиентской машине установлена в английский язык, иначе не получится ввести имя пользователя и пароль в окне выбора сессий сервера xrdp.
После установки желательно проверить, что нормально работает буфер обмена с кириллическими символами в обе стороны. Также можно убедиться, что работает копирование файлов через буфер обмена с русскими символами (это одни из основных проблем, которые были устранены в последних сборках сервера xrdp и которые раньше мешали нормально использовать в рабочей среде сервер терминалов на базе xrdp).
Установка клиента 1С: Предприятие версии 8.3.9
В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows.Устанавливаем дополнительные компоненты, необходимые для корректной работы:
Sudo apt-get install libgsf-1-114
sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install imagemagick
Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:
Sudo dpkg -i *.deb
sudo apt-get -f install
Так как компонеты сервера 1с нужны были только для удовлетворения зависимостей, отключаем службу:
Sudo update-rc.d srv1cv83 disable
Если используется сетевой hasp-ключ, то пропишем параметры поиска:
Sudo mkdir /opt/1C/v8.3/i386/conf
sudo su
echo >/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_TCPIP = Enabled>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo >>/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_SERVER_ADDR = 192.168.0.100>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/i386/conf/nethasp.ini
Если используются программные лицензии, то их необходимо активировать через конфигуратор (можно на пустой файловой базе данных).
Корректная настройка с временными файлами, создаваемыми платформой 1С
В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет - выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл.Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp.
Редактируем общесистемную маску. Правим файл:
/etc/login.defs
в нем меняем значение на:
Umask 002
Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу).
Меняем права на папку tmp
Chown -R root:Users /tmp
chmod g+s /tmp
Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix.
Вариант решения подобной проблемы применительно 1С описан в статье .
Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0
Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии - после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки!Дополнение 31.03.2017
Коллеги, обращаю внимание, что вчера разработчики xrdp выпустили новую версию xrdp 0.9.2 и xordxrdp 0.2.1.Исходя из Release notes теперь RemoteFX кодек теперь поддерживается по-умолчанию, поэтому по идее теперь не нужно его собирать отдельно, как я указывал в статье. Также по-умолчанию теперь используется бекенд xorgxrdp. Чуть позже проверю, как теперь происходит установка и сделаю правки в статью.
Теги:
- 1с
- nix
- ubuntu
Организация эффективной совместной работы посредством Терминального сервера 1С.
Суть проблемы:
При работе нескольких пользователей 1С с единой базой , размещенной на файловом сервере часто поступают жалобы, что 1С тормозит . Жалобы системным администраторам и программистам 1С ничего не дают. А ведь по мере роста объёма накопленных данных о финансовых операциях компании – растет и объём базы данных 1С , а скорость и комфорт работы наоборот – падают.
По рекомендации системных администраторов компании обновляют компьютеры, проверяют работу сети, но ощутимых результатов не достигают. Отчеты по-прежнему строятся по 20 минут! Помимо этого при сетевом доступе, 1С часто не даёт осуществить такие действия с документами, как запись или проводка, ссылаясь на «ожидание захвата таблицы».
Решение проблемы быстродействия 1С зарыто несколько глубже, чем просто обновление ПК и установка гигабитных коммутаторов. В действительности все дело в том, как 1С занимается обработкой и хранением данных. Хранение происходит в нескольких больших файлах-таблицах с расширением *.1CD, и при запуске программа скачивает эти таблицы на компьютер пользователя практически полностью, производит с ними операции (добавление, удаление, перепроведение документов) и записывает обратно на сервер. Ситуация сильно усугубляется, если пользователь 1С работает по «тонкому» каналу – например, из дополнительного офиса по VPN.
Взгляд со стороны:
Если отстраниться от информационных технологий, то со стороны ситуация выглядит так:
Допустим, Ваша бухгалтерия находится на 6-ом этаже бизнес-центра, все документы хранятся в нескольких больших коробках. Сотрудникам для работы с документами приходится подниматься на 6-й этаж, брать короб, нести его на рабочее место, выполнять необходимую работу с документами, паковать и нести короб назад. В случае с дополнительными офисами, подключенными по каналам Интернет общего использования через VPN, аналогией является поездка на общественном транспорте с коробом документов подмышкой (если, конечно, у Вас не заказан выделенный канал точка-точка между офисами – аналог личный автомобиль).
Решение проблемы:
Описанные выше классические улучшения, рекомендуемые системными администраторами для увеличения скорости работы, равносильны расширению лестниц и покупкой сотрудникам сапогов-скороходов.
Очевидно, что решением является обработка документов сразу в хранилище на 6-м этаже, а не таскание их по лестнице. Например, там можно организовать библиотеку с просторным читальным залом, где работа с документами будет осуществляться максимально быстро и удобно. По сути, терминальный сервер и есть такой зал.
Описание решения:
Терминальный сервер 1С Linux-TBS (Терминальный Бизнес-Сервер для 1С на Linux ) – это компьютер, на котором вместе, в один момент времени могут работать десятки пользователей и не испытывать затруднений. Присутствовать рядом с сервером и иметь клавиатуру-монитор непосредственно подключенными к серверу не требуется. Пользователь терминального сервера 1С может находиться за любым компьютером, подключенным к Интернет (соединение клиент-сервер шифруется).
Подключение происходит очень просто – одним нажатием мышки, вводом пароля и пользователь оказывается внутри «удаленного рабочего стола 1С «. Где его ждут его платформы 1С, его базы, его настройки – без зависимости от того, с какого компьютера он подключился.
Итак, какие преимущества дает установка терминального сервера 1C (Linux-TBS):
1). Значительное повышение скорости работы 1С
При работе в Терминальном сервере 1С (Linux-TBS) пользователи не гоняют огромные объемы данных по сети (вспомните пример про коробки), а получают от сервера изображение рабочего окна 1С Предприятие. Одним словом, сервер работает, а Вы получаете только результат! Как показала практика, скорость работы 1С при переводе в терминал повышается от 2 до 10 раз!
2). Повышение надежности работы баз данных программы 1С
Сбои ПК пользователей и обрывы соединения не наносят ущерба базам 1С. После сбоя пользователь может подключиться со своего ПК или с любого свободного дежурного ПК и продолжить работу в своей сессии с того же места!
3). Повышение надежности 1С в целом
При установке 1С на сервере Linux Вы больше не зависите от работоспособности отдельных пользовательских компьютеров под управлением Windows со всеми известными их уязвимостями и глюками, так как установка 1С на каждом из них теперь не требуется.
4). Снижение стоимости обслуживания 1С
При концентрации обработки данных 1С в одном месте (на терминальном сервере Linux ) упрощается удаленное администрирование и удаленная поддержка пользователей. Обновление платформы 1С теперь производится в одном экземпляре.
5). Терминальный сервер 1C (Linux-TBS) обеспечивает удаленный доступ к данным 1С через Интернет
Ваши сотрудники (дополнительный офис, склад, надомные работники) смогут подключаться к терминальному серверу 1С удаленно через интернет и работать в общей базе данных 1С наравне с сотрудниками основного офиса. Безопасность работы 1С через Интернет обеспечивается за счет шифрования подключения VPN.
6). Экономия на конфигурациях пользовательских ПК
Для развертывания сервера терминалов 1С Linux/Windows требуется достаточно мощный сервер, НО пользовательские компьютеры при этом могут быть самыми простыми. Обработка всех данных 1С ведется непосредственно на сервере, а пользователи на компьютере получают только картинку — результат.
7). Повышение безопасности и сохранности данных
Содержащий Ваши конфиденциальные данные в 1С, можно физически разместить на удаленной площадке, в укромном физически защищенном месте. Или в дата-центре, расположенном Санкт-Петербурге, Москве или даже в Европе. Также Вы также можете не покупать мощный сервер для терминала 1С, а арендовать его у нас или в дата-центре.
8). Экономическая эффективность
Терминальные сервера на базе ОС Microsoft Windows Server известны уже порядка 10 лет, но обладают высокой стоимостью применяемого лицензионного программного обеспечения.
Список необходимого лицензионного программного обеспечения Microsoft (справочно):
SKU |
Производитель | Продукт | Кол-во |
Общая стоимость |
P73-04979 | Microsoft | Windows Server Standard 2008R2 Russian Open License Pack NoLevel | 1 | $ 635,00 |
R18-02742 | Microsoft | Windows Server CAL 2008 Russian Open License Pack NoLevel DvcCAL | 10 | $ 257,00 |
6VC-01143 | Microsoft | Win Rmt Desktop Services CAL 2008 Russian Open License Pack NoLevel DvcCAL | 10 | $ 741,00 |
228-09418 | Microsoft | SQL Server Standard Edition 2008R2 Russian Open License Pack NoLevel (требуется только в случае SQL-версии 1С) | 1 | $ 785,68* |
359-05347 | Microsoft | SQL CAL 2008R2 Russian Open License Pack NoLevel DvcCAL (требуется только в случае SQL-версии 1С) | 10 | $ 1 441,60 * |
Всего за ПО: | 32 | $ 3 860,28 | ||
Работы по установке терминального сервера 1С Windows | 1 | 8 000 руб. | ||
58 300 руб. | ||||
Итого для SQL- версии 1С: | 126 000 руб. |
Терминальный сервер 1C (Linux-TBS) основан же на свободном программном обеспечении семейства Linux. Благодаря этому нет необходимости приобретения лицензий, стоимость которых в аналогичных системах порой зашкаливает.
Стоимость решения на Linux
под «ключ» за исключением аппаратного обеспечения (возможно использование Вашего сервера или ):
SKU |
Производитель |
Продукт | Кол-во |
Общая стоимость |
Debian.org | Лицензия на операционную систему Debian GNU/Linux | 1 | $ 0 | |
Debian.org | Лицензии на клиентские подключения не требуются | 10 | $ 0 | |
Etersoft.ru | Лицензия на терминальный сервер [email protected]
Etersoft (R) |
10 | $ 0 | |
PostgreSql.org | Лицензия на SQL-сервер PostgreSQL (требуется только в случае SQL-версии 1С) |
1 | $ 0 | |
Etersoft.ru | Лицензия на вспомогательное ПО [email protected] SQL (R) (требуется только в случае SQL-версии 1С) | 10 | 12 900 руб. | |
Etersoft.ru | Лицензия на вспомогательное ПО [email protected] (R) (требуется только в случае файловой версии 1С) | 10 | 8 900 руб. | |
сайт | Работы по установке терминального сервера 1С на Linux | 1 | 14 800 руб. | |
Итого для файловой версии 1С: | 23 700 руб. | |||
Итого для SQL- версии 1С: | 27 700 руб. |
Стоимость включает:
- предпроектное обследование;
- составление плана миграции;
- миграция 1С на ;
- подключение пользователей;
- составление инструкции по подключению новых пользователей;
- сопровождение системы в первые два месяца эксплуатации
1С терминальный сервер - этот системное решение, позволяющее значительно ускорить совместную работу нескольких пользователей с программой 1С. Из-за особенностей работы программы одновременное использование её несколькими сотрудниками приводит к медленной загрузке информации и даже потерям данных. В компаниях подобные сбои приводят не только к неудобству, но и к существенным финансовым потерям. Увеличение мощностей локальной сети не дает результатов, так как проблема кроется в самой программе 1С, которая многократно пересылает от адреса к адресу большие объемы лишней информации. Для перераспределения нагрузки и эффективной работы системы рекомендуется установить 1С сервер терминалов.
Такое изменение в схеме работы сети позволит оперативно получать доступ к базе данных 1С без загрузки её на рабочий компьютер пользователя. При этом работа может вестись в удаленном доступе. Каждый из пользователей получает пароль доступа и может работать под своей учетной записью и с любого компьютера, не теряя при этом личных настроек программы 1С.
Как подобрать сервер для 1С 8.3 (8.2)
Продукция 1С может быть достаточно требовательной к ресурсам. Терминальный сервер 1С 8.3 (8.2) позволяет сделать работу этого программного комплекса более надежной и быстрой. Выбирать сервер терминалов для 1С 8.3 (8.2) нужно исходя из того, сколько пользователей регулярно работает в системе, а также исходя из нагрузки на сервер.
Создание сервера 1С с терминальным доступом позволяет не менять пользовательские компьютеры на более мощные машины. Также доступ к приложению и базе данных осуществляется удаленно. Это дает пользователям широкие возможности.
Установка 1С на сервер терминалов это набор из нескольких простых операций. Программный комплекс устанавливается как обычное приложение. Настройка терминального сервера 1С включает в себя заведение пользователей в систему и выделение памяти для приложений.
Для эффективной работы терминального сервера он должен быть правильно настроен. Основные параметры работы с сетью и другие важные для настройки характеристики указываются в конфигурации 1С терминального сервера.
Рекомендации по комплектации терминальных серверов от компании "Тринити"
Компания разработала несколько вариантов базовых решений для компаний различного масштаба. Однако, в каждом случае надо подбирать полную комплектацию индивидуально исходя из требований компании и её действующей технической базы.
Организации с 30-50 пользователями
При таком количестве пользователей необходимо не менее двух серверов. Один работает с базой данных, второй с терминалами. В некоторых случаях может потребоваться выделенный сервер приложений. Количество и объем дисковых отсеков будет зависеть от конкретной компании - её нагрузки, технического оснащения и темпов роста.
Организация с 50-100 пользователями
В данном случае потребуется терминальная система их трех звеньев, в которой будут работать 3-4 сервера. Терминальные серверы могут быть взаимозаменяемыми на случай сбоя в одном из них.
Надежные кластерные конфигурации
Отказоустойчивые системы наиболее надежны для компаний, где оперативность работы имеет решающее значение. Кластерные серверы, объединённые в одну систему, могут перезапускать процессы друг друга в случае повышенной нагрузки или поломки одного из них. Для такой схемы потребуются запас оперативной памяти и процессорной мощности, объединить же составляющие в систему возможно доступными средствами Windows. Для базы данных необходима резервная копия, которую лучше всего разместить на внешней системе хранения данных. Наличие СХД даст возможность сократить расходы на производительности серверов.
Для каждого из этих решений есть возможность подобрать определенные комплектации. Модели серверов и других составляющих в зависимости от численности пользователей и выбранной схемы могут быть достаточно экономичными.
Внедрение системы терминалов поможет в решении целого комплекса проблем:
- Повышение надежности работы программы 1С. Сбои в работе отдельного пользовательского компьютера не приведут больше к простою, т.к. войти в свою учетную запись можно с любого даже дистанционного устройства.
- Возможность экономии времени на обслуживании. Новая схема дает возможность удаленного администрирования.
- Доступ к базе данных через интернет, даст возможность создавать оперативной работы с сотрудниками фрилансерами.
- Повышение надежности и безопасности работы, за счет резервирования данных и взаимозаменяемости компонентов системы.
- Исчезает необходимость повышать уровень производительности пользовательских машин, так как все основные и энергоёмкие операции ведутся на основном терминале.
К нам часто приходят вопросы про то что тормозит 1с, особенно при переходе на версию 1с 8.3, благодоря нашим коллегам из ООО "Интерфейс", мы подробно рассказываем:
В наших прошлых публикациях мы уже касались влияния производительности дисковой подсистемы на скорость работы 1С, однако данное исследование касалось локального использования приложения на отдельном ПК или терминальном сервере. В тоже время большинство небольших внедрений предполагают работу с файловой базой по сети, где в качестве сервера используется один из пользовательских ПК, либо выделенный файловый сервер на базе обычного, чаще всего также недорогого, компьютера.
Небольшое исследование русскоязычных ресурсов по 1С показало, что данный вопрос старательно обходится стороной, в случае возникновения проблем обычно советуется переход к клиент-серверному или терминальному режиму. А также практически общепринятым стало мнение, что конфигурации на управляемом приложении работают значительно медленнее обычных. Как правило аргументы приводятся "железные": "вот Бухгалтерия 2.0 просто летала, а "тройка" еле шевелится", безусловно, для истины в этих словах есть, поэтому попробуем разобраться.
Потребление ресурсов, первый взгляд
Перед тем, как начать это исследование, мы поставили перед собой две задачи: выяснить, действительно ли конфигурации на основе управляемого приложения медленнее обычных и какие именно ресурсы оказывают первоочередное влияние на производительность.
Для тестирования мы взяли две виртуальные машины под управлением Windows Server 2012 R2 и Windows 8.1 соответственно, выделив им по 2 ядра хостового Core i5-4670 и 2 ГБ оперативной памяти, что соответствует примерно средней офисной машине. Сервер разместили на RAID 0 массиве из двух WD Se, а клиент на аналогичном массиве из дисков общего назначения.
В качестве подопытных баз мы выбрали несколько конфигураций Бухгалтерии 2.0, релиза 2.0.64.12 , которую затем обновили до 3.0.38.52 , все конфигурации запускались на платформе 8.3.5.1443 .
Первое, что обращает на себя внимание, это выросший размер информационной базы "тройки", причем существенно выросший, а также гораздо большие аппетиты к оперативной памяти:
Мы уже готовы услышать привычное: "да чего они там такого добавили в эту тройку", но давайте не будем спешить. В отличие от пользователей клиент-серверных версий, которые требуют наличия более-менее квалифицированного администратора, пользователи файловых версий крайне редко задумываются об обслуживании баз. Также редко об этом думают обслуживающие (читай - обновляющие) эти базы сотрудники специализированных фирм.
Между тем информационная база 1С - это полноценная СУБД своего формата, которая тоже требует обслуживания и для этого даже есть инструмент, который называется Тестирование и исправление информационной базы . Возможно злую шутку сыграло название, которое как-бы подразумевает, что это инструмент для устранения проблем, но низкая производительность - тоже проблема, а реструктуризация и реиндексация, вместе со сжатием таблиц - хорошо известные любому администратору СУБД средства оптимизации баз данных. Проверим?
После применения выбранных действий база резко "похудела", став даже меньше "двойки", которую тоже никто никогда не оптимизировал, также немного уменьшилось потребление ОЗУ.
В последствии, после загрузки новых классификаторов и справочников, создания индексов и т.п. размер базы вырастет, в целом базы "тройки" больше баз "двойки". Однако более важно не это, если вторая версия довольствовалась 150-200 МБ оперативной памяти, то новой редакции нужно уже полгигабайта и из этого значения следует исходить, планируя необходимые ресурсы для работы с программой.
Сеть
Пропускная способность сети - один наиболее важных параметров для сетевых приложений, особенно, как 1С в файловом режиме, перемещающих по сети значительные объемы данных. Большинство сетей небольших предприятий построены на базе недорогого 100 Мбит/с оборудования, поэтому мы начали тестирование именно со сравнения показателей производительности 1С в сетях 100 Мбит/с и 1 Гбит/с.
Что происходит при запуске файловой базы 1С по сети? Клиент скачивает во временные папки достаточно большое количество информации, особенно если это первый, "холодный", запуск. На 100 Мбит/с мы ожидаемо упремся в ширину канала и загрузка может занять значительное время, в нашем случае около 40 секунд (цена деления графика - 4 сек).
Второй запуск происходит быстрее, так как часть данных сохраняется в кэше и находится там до перезагрузки. Переход на гигабитную сеть способен значительно ускорить загрузку программы, как "холодный", так и "горячий", причем соотношение значений при этом соблюдается. Поэтому мы решили выразить результат в относительных значениях, взяв за 100% самое большое значение каждого замера:
Как можно заметить из графиков, Бухгалтерия 2.0 загружается при любой скорости сети вдвое быстрее, переход со 100 Мбит/с на 1 Гбит/с позволяет ускорить время загрузки в четыре раза. Разницы между оптимизированной и неоптимизированной базами "тройки" в данном режиме не наблюдается.
Также мы проверили влияние скорости сети на работу в тяжелых режимах, например, при групповом перепроведении. Результат также выражен в относительных значениях:
Здесь уже интереснее, оптимизированная база "тройки" в 100 Мбит/с сети работает с такой же скоростью, как и "двойка", а неоптимизированная показывает вдвое худший результат. На гигабите соотношения сохраняются, неоптимизированная "тройка" также вдвое медленнее "двойки", а оптимизированная отстает на треть. Также переход на 1 Гбит/с позволяет сократить время проведения в три раза для редакции 2.0 и в два раза для 3.0.
Для того, чтобы оценить влияние скорости сети на повседневную работу мы воспользовались Замером производительности , выполнив в каждой базе последовательность заранее предопределенных действий.
Собственно, для повседневных задач пропускная способность сети не является узким местом, неоптимизированная "тройка" всего лишь на 20% медленнее двойки, а после оптимизации оказывается примерно настолько же быстрее - сказываются преимущества работы в режиме тонкого клиента. Переход на 1 Гбит/с не дает оптимизированной базе никаких преимуществ, а неоптимизированная и двойка начинают работать быстрее, показывая небольшую разницу между собой.
Из проведенных тестов становится очевидно, что сеть не является узким местом для новых конфигураций, а управляемое приложение работает даже быстрее обычного. Также можно рекомендовать переход на 1 Гбит/с если для вас критичны тяжелые задачи и скорость загрузки баз, в остальных случаях новые конфигурации позволяют эффективно работать даже в медленных 100 Мбит/с сетях.
Так почему же 1С тормозит? Будем разбираться дальше.
Дисковая подсистема сервера и SSD
В прошлом материале мы добились увеличения производительности 1С разместив базы на SSD. Возможно недостаточно производительности дисковой подсистемы сервера? Мы сделали замеры производительности дисковой сервера во время группового проведения сразу в двух базах и получили довольно оптимистичный результат.
Несмотря на относительно большое количество операций ввода-вывода в секунду (IOPS) - 913, длина очереди не превысила 1,84, что для двухдискового массива очень хороший результат. Исходя из него можно сделать предположение, что зеркала из обычных дисков будет достаточно для нормальной работы 8-10 сетевых клиентов в тяжелых режимах.
Так нужен ли SSD на сервере? Лучше всего ответить на этот вопрос поможет тестирование, которое мы провели по аналогичной методике, сетевое подключение везде 1 Гбит/с, результат также выражен в относительных значениях.
Начнем со скорости загрузки базы.
Может быть кому-то и покажется удивительным, но на скорость загрузки базы SSD на сервере не влияет. Основной сдерживающий фактор здесь, как показал предыдущий тест, пропускная способность сети и производительность клиента.
Перейдем к перепроведению:
Выше мы уже отмечали, что производительности дисковой вполне достаточно даже для работы в тяжелых режимах, поэтому на скорость проведения SSD также не оказывает влияния, кроме неоптимизированной базы, которая на SSD догнала оптимизированную. Собственно, это еще раз подтверждает, что операции оптимизации упорядочивают информацию в базе данных, уменьшая количество случайных операций ввода вывода и повышая скорость доступа к ней.
На повседневных задачах картина аналогичная:
Выигрыш от SSD получает только неоптимизированная база. Вы, конечно, можете приобрести SSD, но гораздо лучше будет задуматься о своевременном обслуживании баз. Также не забывайте о дефрагментации раздела с информационными базами на сервере.
Дисковая подсистема клиента и SSD
Влияние SSD на скорость работы локально установленной 1С мы разбирали в предыдущем материале, многое из сказанного справедливо и для работы в сетевом режиме. Действительно, 1С достаточно активно использует дисковые ресурсы, в том числе и для фоновых и регламентных задач. На рисунке ниже можно видеть, как Бухгалтерия 3.0 довольно активно обращается к диску в течении порядка 40 секунд после загрузки.
Но при этом следует осознавать, что для рабочей станции где активная работа производится с одной - двумя информационными базами ресурсов производительности обычного HDD массовой серии вполне достаточно. Приобретение SSD способно ускорить некоторые процессы, но радикального ускорения в повседневной работе вы не заметите, так как, например, загрузка будет ограничиваться пропускной способностью сети.
Медленный жесткий диск способен замедлить некоторые операции, но сам по себе являться причиной торможения программы не может.
Оперативная память
Несмотря на то, что оперативка сейчас неприлично дешева, многие рабочие станции продолжают работать с тем объемом памяти, который был установлен при покупке. Вот тут и подстерегают первые проблемы. Уже исходя из того, что в среднем "тройке" требуется около 500 МБ памяти можно предположить, что общего объема оперативной памяти в 1ГБ для работы с программой будет недостаточно.
Мы уменьшили память системы до 1 Гб и запустили две информационные базы.
На первый взгляд все не так и плохо, программа поумерила аппетиты и вполне уложилась в доступную память, но не будем забывать, что потребность в оперативных данных не изменилась, так куда же они делись? Сброшены в дисковый, кэш, подкачку и т.п., суть этой операции состоит в том, что не нужные в данный момент данные отправляются из быстрой оперативной памяти, количества которой недостаточно, в медленную дисковую.
К чему это приведет? Посмотрим, как используются ресурсы системы в тяжелых операциях, например, запустим групповое перепроведение сразу в двух базах. Сначала на системе с 2 ГБ оперативной памяти:
Как видим, система активно использует сеть, для получения данных и процессор для их обработки, дисковая активность незначительна, в процессе выполнения обработки она эпизодически вырастает, но не является сдерживающим фактором.
Теперь уменьшим память до 1 ГБ:
Ситуация радикальным образом меняется, основная нагрузка теперь приходится на жесткий диск, процессор и сеть простаивают, ожидая пока система считает с диска в память нужные данные и отправит туда ненужные.
При этом даже субъективная работа с двумя открытыми базами на системе с 1 ГБ памяти оказалась крайне некомфортной, справочники и журналы открывались со значительной задержкой и активным обращением к диску. Например, открытие журнала Реализация товаров и услуг заняло около 20 секунд и сопровождалось все это время высокой дисковой активностью (выделено красной линией).
Чтобы объективно оценить влияние оперативной памяти на производительность конфигураций на основе управляемого приложения мы провели три замера: скорость загрузки первой базы, скорость загрузки второй базы и групповое перепроведение в одной из баз. Обе базы полностью идентичны и созданы копированием оптимизированной базы. Результат выражен в относительных единицах.
Результат говорит сам за себя, если время загрузки вырастает примерно на треть, что еще вполне терпимо, то время выполнения операций в базе вырастает в три раза, ни о какой комфортной работе в таких условиях говорить не приходится. Кстати, этот тот случай, когда покупка SSD способна улучшить ситуацию, но гораздо проще (и дешевле) бороться с причиной, а не с последствиями, и просто купить нужное количество оперативной памяти.
Недостаток оперативной памяти - основная причина по которой работа с новыми конфигурациями 1С оказывается некомфортной. Минимально подходящими следует считать конфигурации с 2 ГБ памяти на борту. При этом учитывайте, что в нашем случае были созданы "тепличные" условия: чистая система, запущены только 1С и диспетчер задач. В реальной жизни на рабочем компьютере как правило открыты браузер, офисный пакет, работает антивирус и т.д, и т.п., поэтому исходите из потребности 500 МБ на одну базу плюс некоторый запас, чтобы при тяжелых операциях вы не столкнулись с недостатком памяти и резким снижением производительности.
Процессор
Центральный процессор без преувеличения можно назвать сердцем компьютера, так как именно он, в конечном итоге, осуществляет обработку всех вычислений. Чтобы оценить его роль мы провели еще один набор тестов, такой же, как и для оперативной памяти, уменьшив количество доступных виртуальной машине ядер с двух до одного, при этом тест выполнялся два раза с объемами памяти в 1 ГБ и 2 ГБ.
Результат оказался довольно интересным и неожиданным, более мощный процессор довольно эффективно брал на себя нагрузку в условиях недостатка в ресурсах, в остальное время не давая каких-либо ощутимых преимуществ. 1С Предприятие сложно назвать приложением, активно использующим процессорные ресурсы, скорее нетребовательным. А в тяжелых условиях на процессор ложится нагрузка не столько по обсчету данных самого приложения, сколько обслуживания накладных расходов: дополнительных операций ввода вывода и т.п.
Выводы
Итак, почему тормозит 1С? В первую очередь это недостаток оперативной памяти, основная нагрузка в этом случае ложится на жесткий диск и процессор. А если они не блистают производительностью, как это обычно бывает в офисных конфигурациях, то получаем ситуацию, описанную в начале статьи - "двойка" работала нормально, а "тройка" безбожно тормозит.
На второе место стоит вынести производительность сети, медленный 100 Мбит/с канал способен стать реальным бутылочным горлышком, но в тоже время режим тонкого клиента способен поддерживать довольно комфортный уровень работы даже на медленных каналах.
Затем следует обратить внимание на дисковую, покупка SSD вряд ли будет хорошим вложением денег, а вот заменить диск на более современный будет не лишним. Разницу между поколениями жестких дисков можно оценить по следующему материалу: Обзор двух недорогих дисков серии Western Digital Blue 500 ГБ и 1 ТБ.
И наконец процессор. Более быстрая модель конечно же не будет лишней, но большого смысла увеличивать его производительность нет, если только данный ПК не используется для тяжелых операций: групповых обработок, тяжелых отчетов, закрытия месяца и т.п.
Надеемся данный материал поможет вам быстрее разобраться в вопросе "почему тормозит 1С" и решить его наиболее эффективно и без лишних затрат.
В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации.
Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp - xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.
Небольшое, но важное отступление
В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами).В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) - на хабре, на infostart.
Использование бекэнда X11Rdp несет в себе несколько минусов:
- Достаточно долгое время сборки
- Сложно решить проблему с переключением языков. После переподключения к сеансу переключение языков может перестать работать. Автор регестрировал проблему на сайте разработчиков - гарантированное решение было найдено автором только для бекенда xorgxrdp правкой исходно кода (далее этот метод используется в статье)
- Скорость отрисовки может оказаться недостаточно быстрой для комфортной работы пользователей
В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.
Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ.Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней.
При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:
- 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
- 5 Гбайт: точка монтирования /var
- 5 Гбайт: точка монтирования /tmp
Для сервера необходимо установить статический IP-адрес.
Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:
Sudo apt-get install openssh-server
sudo restart ssh
При активированном firewall открываем порт 22:
Firewall-cmd --add-port 22/tcp --permanent firewall-cmd --reload
Установка и настройка сервера xrdp with xorgxrdp backend
На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу.Устанавливаем необходимые зависимости:
Sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
Создаем каталог для загрузки дистрибутивов:
Mkdir -p ~/xrdp-xorg
cd ~/xrdp-xorg
BD=`pwd`
cd "${BD}"
Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:
Git clone git://github.com/neutrinolabs/xrdp
cd xrdp
git submodule init
git submodule update
cd librfxcodec
./bootstrap
./configure
make
cd ..
./bootstrap
./configure --enable-fuse --enable-rfxcodec --disable-ipv6
make
Устанавливаем xrdp в систему:
Sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
sudo update-rc.d xrdp defaults
Скачиваем дистрибутив xorg-xrdp бекенда:
// Build and install xorgxrdp
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz
cd "${BD}"
tar xvfz xorgxrdp-0.2.0.tar.gz
cd "${BD}"/xorgxrdp-0.2.0
Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок . Корректность проверяется созданием сессии - 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию - заново еще раз проверяем.
В терминале присваиваем значения временных переменных:
Kb_model="pc105"
kb_layout="us,ru"
kb_options="grp:ctrl_shift_toggle"
Делаем замену кода в исходном файле:
Sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c
Компилируем и устанавливаем в систему xorg-xrdp бекэнд:
./bootstrap
./configure
make
sudo make install
Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки и , чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий.
При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе меняем значение переменной port=3389 на требуемый.
При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):
Firewall-cmd --add-port 3389/tcp --permanent
firewall-cmd --reload
После настроек перезапускаем службу
Service xrdp restart
Теперь можете подключиться к серверу через стандартного клиента с windows либо с linux любым клиентом, который поддерживает протокол rdp.
Внимание : перед подключением необходимо убедиться, что раскладка клавиатуры на клиентской машине установлена в английский язык, иначе не получится ввести имя пользователя и пароль в окне выбора сессий сервера xrdp.
После установки желательно проверить, что нормально работает буфер обмена с кириллическими символами в обе стороны. Также можно убедиться, что работает копирование файлов через буфер обмена с русскими символами (это одни из основных проблем, которые были устранены в последних сборках сервера xrdp и которые раньше мешали нормально использовать в рабочей среде сервер терминалов на базе xrdp).
Установка клиента 1С: Предприятие версии 8.3.9
В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows.Устанавливаем дополнительные компоненты, необходимые для корректной работы:
Sudo apt-get install libgsf-1-114
sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install imagemagick
Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:
Sudo dpkg -i *.deb
sudo apt-get -f install
Так как компонеты сервера 1с нужны были только для удовлетворения зависимостей, отключаем службу:
Sudo update-rc.d srv1cv83 disable
Если используется сетевой hasp-ключ, то пропишем параметры поиска:
Sudo mkdir /opt/1C/v8.3/i386/conf
sudo su
echo >/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_TCPIP = Enabled>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo >>/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_SERVER_ADDR = 192.168.0.100>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/i386/conf/nethasp.ini
Если используются программные лицензии, то их необходимо активировать через конфигуратор (можно на пустой файловой базе данных).
Корректная настройка с временными файлами, создаваемыми платформой 1С
В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет - выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл.Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp.
Редактируем общесистемную маску. Правим файл:
/etc/login.defs
в нем меняем значение на:
Umask 002
Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу).
Меняем права на папку tmp
Chown -R root:Users /tmp
chmod g+s /tmp
Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix.
Вариант решения подобной проблемы применительно 1С описан в статье .
Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0
Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии - после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки!Дополнение 31.03.2017
Коллеги, обращаю внимание, что вчера разработчики xrdp выпустили новую версию xrdp 0.9.2 и xordxrdp 0.2.1.Исходя из Release notes теперь RemoteFX кодек теперь поддерживается по-умолчанию, поэтому по идее теперь не нужно его собирать отдельно, как я указывал в статье. Также по-умолчанию теперь используется бекенд xorgxrdp. Чуть позже проверю, как теперь происходит установка и сделаю правки в статью.
Теги: Добавить метки