Вопрос или проблема
У меня есть компьютер с Windows, который я использую для подключения к моему Ubuntu PC по ssh, который я использую как сервер (18.04), и он подключен только к интернету и электрике (без монитора). Когда я запускаю glxgears -info
, я получаю только 8-10 fps, хотя у меня есть видеокарта. Когда я запускаю его как xvfb-run glxgears -info
, я получаю 2000~ fps (что, как я предполагаю, связано с тем, что он использует мой GPU для рендеринга). Но я не могу заставить xvfb-run
отображаться на моем Xming X сервере. Запуск glxgears -info
отображается в Xming, но, как я уже сказал, производительность низкая и так далее. Как я могу заставить xvfb отображаться в Xming на моем компьютере с Windows? Или есть более простой/лучший способ сделать это? Спасибо!
Если вы запускаете X-сервер для отображения удаленных X-клиентов (например, glxgears
), вы привязаны к протоколу отображения X, который имеет плохую производительность, особенно по медленным линиям.
Вы получите лучшую производительность с Xvnc
, но он обычно будет использовать виртуальный фреймбуфер и не будет извлекать выгоду из GPU на вашем Ubuntu компьютере. Входите в virtualgl
, это то, что вам нужно для вашей цели. Установить это не легко, но есть хорошие ссылки, вот эта, специально для Ubuntu.
Надеюсь, это поможет,
ppenguin
Ответ или решение
Чтобы отобразить вывод программы, такой как glxgears
, на удалённом ПК, используя виртуальный фреймбуфер (Xvfb), необходимо выполнить несколько шагов. Описание проблемы, с которой вы столкнулись, показывает, что использование glxgears
напрямую через Xming приводит к низкой производительности, в то время как использование xvfb-run
обеспечивает значительно более высокие значения FPS. Давайте разберёмся, как можно добиться отображения xvfb
в Xming на вашем Windows ПК.
Установка и настройка
-
Установка Xming:
- Убедитесь, что вы установили Xming на своём Windows ПК. Это X-сервер для Windows, который позволяет отображать графические приложения, работающие на удалённых Unix-системах.
- Запустите Xming перед тем, как подключиться к вашему Ubuntu серверу.
-
Настройка SSH-соединения:
- При подключении к вашему серверу Ubuntu через SSH убедитесь, что вы используете опцию
-X
или-Y
для включения X11 forwarding. Например:ssh -X your_username@your_ubuntu_server_ip
- При подключении к вашему серверу Ubuntu через SSH убедитесь, что вы используете опцию
-
Установка необходимых пакетов:
- Убедитесь, что на вашем сервере установлены необходимые пакеты. Вам понадобятся
xvfb
,virtualgl
иmesa-utils
(дляglxgears
):sudo apt update sudo apt install xvfb virtualgl mesa-utils
- Убедитесь, что на вашем сервере установлены необходимые пакеты. Вам понадобятся
Запуск приложения с использованием VirtualGL и Xvfb
Чтобы лучше использовать GPU вашего Ubuntu сервера при работе с графическими приложениями, следует использовать комбинацию Xvfb и VirtualGL.
-
Запуск Xvfb:
- Запустите Xvfb на сервере, чтобы создать виртуальное отображение:
Xvfb :1 -screen 0 1024x768x24 &
- Запустите Xvfb на сервере, чтобы создать виртуальное отображение:
-
Настройка переменных окружения:
- Для того чтобы
VirtualGL
использовал созданный Xvfb, установите переменные окружения перед запускомglxgears
:export DISPLAY=:1
- Для того чтобы
-
Запуск приложения через VirtualGL:
- Теперь можно запустить
glxgears
с использованиемvglrun
, которая будет использовать ваш GPU:vglrun glxgears -info
- Теперь можно запустить
Примечания
-
Проблемы с сетевой задержкой: Имейте в виду, что попытки работать с графикой могут быть затруднены из-за сетевой задержки. Использование VirtualGL позволяет существенно повысить производительность, но всё равно может возникнуть замедление при больших объёмах данных.
-
Дополнительные опции: Если производительность всё ещё не удовлетворяет, вы можете рассмотреть использование других протоколов или программ, таких как VNC-сервер, который обеспечивает доступ к графическому интерфейсу с использованием сжатия и других оптимизаций.
Заключение
Использование Xvfb
в сочетании с VirtualGL
предоставляет хорошее решение для отображения графических приложений на удалённом сервере. При этом вы можете использовать мощность вашего графического процессора, избегая многих недостатков стандартного X11 протокола. Следуйте приведённым шагам, и вы сможете добиться высокой производительности при работе с графическими приложениями на вашем Ubuntu сервере.