• Москва +7 (495) 664 23 30
  • Санкт-Петербург +7 (812) 309 26 84

Справка

Тюнинг VNC-сервера на VDS хостинге

Использование VNC-сервера, запускаемого через inetd, вместе с выполненными рекомендациями по тюнингу, позволяет работать с десктопом через интернет даже на виртуальных серверах начального уровня. В сумме, тюнинг позволяет добиться сокращения задержек в 2-5 раз, по сравнению со стандартными настройками, обеспечивает приемлемую работу с десктопом по каналу ADSL 1 Мбит/сек. При увеличении скорости подключения до 5-10 Мбит/сек, работа по уровню комфортности приближается к работе с локальным компьютером. Время реакции для большинства интерфейсных операций находится в пределах 0.05-0.2 секунды.

Тюнинг десктопа

Настройки рабочего стола способны оказать заметное влияние на скорость работы по сети. Задача снижения объема передаваемых данных сводится к двум подзадачам: минимизация изменений на экране и использование хорошо сжимаемых изображений.

Сглаживания шрифтов

Основная часть информации, с которой работает пользователь - это текст: окна с текстом, меню, формы и т.д. Включенное сглаживание шрифтов увеличивает в 1.5-3 раза объем передаваемых при отображении текста данных, так как полутоновые области на границах символов несут в себе дополнительную плохо сжимаемую информацию.

Сглаживание можно отключить в окне настроек шрифтов GNOME, но такое отключение будет работать не во всех программах - например, Firefox шрифты по прежнему будет сглаживать. Поэтому лучше внести настройки в системный конфигурационный файл /etc/fonts/fonts.conf (отключается сглаживание всех шрифтов размером менее 14 пикселей):

        <match target="font">
            <test name="size" compare="less">
                <double>14</double>
            </test>
            <edit name="antialias" mode="assign">
                <bool>false</bool>
            </edit>
        </match>
        <match target="font">
            <test name="pixelsize" compare="less" qual="any">
                <double>14</double>
            </test>
            <edit mode="assign" name="antialias">
                <bool>false</bool>
            </edit>
        </match>

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек выпадающего меню (глубина цвета: 16 бит, кодирование: Tight):
 Включено субпиксельное сглаживаниеБез сглаживания
 
 
 
Объем30 Кб13.8 Кб
Скорость0.24 сек0.11 сек

Фон рабочего стола

Фон рабочего стола способен сильно замедлить работу, если в нем будет расположена фотография или рисунок. Любое сворачивание окна или меню влечет за собой перерисовку того участка фона, который был им перекрыт. И, чем сложнее изображение, тем больший объем данных будет передаваться. Для минимизации затрат полосы пропускания на фон рекомендуется использовать одноцветный фон, лучше всего - белый.

Десктопная тема

Оформление элементов интерфейса тоже может влиять на объем передаваемых данных. Для минимизации трафика следует выбрать тему с плоскими цветами, без градиентов. Впрочем, многие темы, использующие вертикальные градиенты, сжимаются достаточно хорошо и их можно использовать без ощутимых потерь в скорости.

Размер шрифтов

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

Опции VNC-сервера

VNC-сервер имеет много опций, но нас интересуют следующие три: geometry - размер экрана, depth - глубина цвета, deferupdate - задержка передачи изменений.

geometry

Размер экрана в пикселях. Формат: -geometry ШИРИНАxВЫСОТА. Например, -geometry 800x600 - 800 пикселей в ширину и 600 пикселей в высоту. Чем больше размер экрана, там больший объем данных необходимо передавать - но прямой зависимости между ними нет. При изменении информации на дисплее, клиенту передается не изображение дисплея полностью, а только участок с измененной информацией - открытое окно, открытый пункт меню или напечатанный символ. Поэтому существенного выигрыша при использовании 800x600 вместо 1024x768 нет.

depth

Глубина цвета в битах. Формат: -depth ЧИСЛО_БИТ, ЧИСЛО_БИТ - 8, 15, 16 или 32. Чем больше глубина цвета, тем качественнее показываются полутона, оттенки, но тем больший объем информации требуется передавать. Уменьшение глубины цвета уменьшает объем данных, и, соотвественно, увеличивается скорость. Для работы через интернет вполне подходит глубина цвета 16 бит. При использование медленного канала (<256 Кбит/сек) рекомендуется использовать глубину цвета в 8 бит.

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек выпадающего меню для различной глубины цвета (кодирование: Tight):
 
 
Глубина цвета24 бита16 бит8 бит
Объем15.2 Кб13.8 Кб9 Кб
Скорость0.12 сек0.11 сек0.07 сек

VNC-клиенты имеют возможность принудительно использовать уменьшенную глубину цвета 8 бит (256 цветов), игнорируя при этом глубину цвета, заданную на сервере.

deferupdate

Задержка при передаче изменений на дисплее, в миллисекундах. Формат: -deferupdate ЧИСЛО_МИЛЛИСЕКУНД, по умолчанию - 40. Позволяет объединить в одно обновление большое число мелких изменений экрана, выполненных в интервал времени, указанный в опции. При слиянии нескольких изменений, произошедших на одном и том же участке экрана, итоговый объем передаваемых данных уменьшается. Увеличение этого параметра ухудшает интерактивность - визаульная реакция на какое-либо действие показывается на VNC-клиенте только после истечения времени deferupdate. С учетом задержек на передачу данных по сети, суммарные задержки реакции могут снижать конфортность работы.

Большинство операций на виртуальных серверах отрисовывается достаточно быстро, и значение deferupdate можно отрицательных эффектов понизить до 10 мсек. В сетях с большой пропускной способностью задержку можно отключить полностью, указав -deferupdate 0.

Инструкции, VNC, VNC-сервер, Ubuntu