Предисловие
В основе статьи лежит разработка Удаленная консультация, которая позволяет подключаться к клиенту и управлять компьютером, что позволяет, например, непосредственно в информационной базе клиента решать какие-либо проблема, производить обучение и т.д. Все необходимые программные файлы, рассматриваемые в данной статье, необходимо брать в указанной публикации.
Введение
Основная проблема в размещении сетевых серверных приложений взаимодействующих по интернету лежит в обеспечении достаточной пропускной способности и минимальной задержки канала связи. Для обеспечения этих требований удобно использовать выделенные виртуальные сервера (VPS/VDS). Ключевые требования для сервера Удаленной консультации как раз опираются на канал связи и мощность процессора, поэтому для настройки такого сервера будем использовать дешевый VPS/VDS-хостинг, цены по интернету разные, я ориентировался на самые дешевые, выбранный мной тариф стоит 65 руб./мес. Параметры используемого сервера были следующие:
- CPU: Intel Xeon, 1 ядро, 2.2 ГГц;
- RAM: 512 Мб;
- HDD: 10 Гб;
- Операционная система: CentOS 7 (x86_64);
- Трафик: безлимитный, средняя задержка по тестам 60 мс.
Настройка и запуск сервера
Процесс регистрации и покупки сервера я описывать не буду, так как не получится без рекламы, но и описания он не требует, так как все интуитивно понятно. Обычно, после регистрации на странице хостера и оплаты сервера вам выдаются логин и пароль для root-доступа к серверу по SSH, так же зачастую процедура подключения описана на выбранном хостинге. Для подключения по SSH будем использовать клиент PuTTY, для передачи файл с целевой Windows машины на сервер файла PSCP из набора PuTTY.
Первым делом необходимо на выделенный сервер закачать исполняемый файл сервера Удаленной консультации для операционной система CentOS, в архиве к статье Удаленная консультация файл называется rh_server, реализованный на golang. Я пользуюсь по работе в основном Windows, поэтому закачивать на сервер будем упомянутой выше утилитой pscp.exe, запустим командную строку и напишем:
"Путь к утилите\pscp.exe" "путь к файлу\rh_server" root@ip_адрес_сервера:/usr/bin
затем введем пароль и файл будет закачен в директорию исполняемых файлов /usr/bin. После этого зайдем в консоль PuTTY, залогинимся, переключимся на коневую директорию и все дальнейшие команды набираются исходя из того, что мы находимся в корневой директории
cd /
Так как я копировал файл с Windows-машины на Linux теперь необходимо для нашего файла rh_server установить соответствующие атрибуты доступа
chmod 700 /bin/rh_server
Далее необходимо определиться, на каком порту будет работать сервер, например 80, тогда необходимо в настройки сетевого экрана добавить разрешение на работу по указанному порту
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
перезагружаем правила
/etc/init.d/iptables restart
После этого можно запускать сервер, для того чтобы при отключении сессии PuTTY наш сервер работал необходимо использовать команду nohup, при этом вывод всей информации направим в файл /tmp/rh_log
nohup rh_server –port=80 > /tmp/rh_log &
Далее можно наблюдать подключения по логу, например так
cat /tmp/rh_log
Результаты
Проверяем сервер небольшим нагрузочным тестом. Исходные параметры:
- Размер экрана: 1920 х 1080;
- Качество передаваемой картинки: 8 бит (256 цветов);
- Количество одновременно работающих клиентов: 20 клиентов (10 пар);
- Процент изменения области экрана при передачи: не менее 40% при каждой отправке данных, что соответствует очень интенсивной работе.
Полученные результаты:
- Среднее количество кадров на клиенте: 7 кадров в секунду, что является отличным результатом, комфортность сохраняется до 4 кадров включительно;
- Средний объем принимаемых данных в секунду: 45 Кб/с;
- Загруженность процессора в пике программой: 8%
- Загруженность оперативной памяти сервера программой, средняя: 3.1%
Таким образом, можно сделать вывод, что на достаточно дешевом VPS/VDS хостинге можно развернуть систему удаленной консультации для небольших и средних фирм и получить приемлемое качество удаленного доступа. При этом отталкиваясь от полученных данных можно прогнозировать, что при обычной работе пользователя сервер сможет выдержать более 40 одновременно работающих пользователей.