You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by Dogbert <vi...@gmail.com> on 2016/09/21 15:03:20 UTC

Performance tuning

Hi,

So I'm in the middle of a POC to replace NoVNC with Guacomole over
web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
looked through the documentation, and I didn't see much that I could tweak
for performance other than color-depth. Is there anything I'm missing that
I could tweak to help performance, like a quality setting? Or would
changing the VNC server have any effect?

Thanks,
Tucker

Re: Performance tuning

Posted by Frode Langelo <fr...@apache.org>.
Hi Tucker,

Take a look at netem https://wiki.linuxfoundation.org/networking/netem. It
will probably be what you're looking for on Linux.

Regards,
Frode

On Wed, Sep 21, 2016 at 12:17 PM, Dogbert <vi...@gmail.com> wrote:

> Hi Frode,
>
> As a mater of fact, I just got those numbers for a meeting tomorrow:
> Locally: 15ms, other places we have a range 75, 177 and 243ms.
>
> Since this is currently a POC we are using the latest 0.9.9.
>
> That's one point I'm going to be testing. The difference in the image is
> only slight, and it might be an acceptable compromise. We're probably going
> to have a toggle for the cursor, because it is useful for some users, when
> collaborating, but it does come with a performance trade off. Our app has
> 3D models in it, just to give you an ideas of the type of app I'm dealing
> with.
>
> Cool, that will make my boss happy, as it would give us more options, and
> made me realize that there was another Jira,
>
> Yeah that's a good point, although I'm on Linux, so I'll figure something
> out.
>
> Thanks,
> Tucker
>
>
> On Wed, Sep 21, 2016 at 2:36 PM, Frode Langelo <fr...@apache.org> wrote:
>
>> Hi Tucker,
>>
>> As you say; it looks like latency is your enemy. A data center closer to
>> the customer will definately make a big difference here. Do you by any
>> chance kow what the customer's latency is to your current data center?
>>
>> You didn't mention which version of Guacamole you are using. Improvements
>> to the rendering pipeline were done in version 0.9.9 which utilizes Dynamic
>> JPEG/WebP encoding for busy screens, so you want to make sure you are using
>> at least this version.
>>
>> By reducing the color-depth to 16 bit, do you or customers notice any
>> difference? It may make the session feel somewhat faster as a result of
>> reducng the data size even though the latency still is high.
>> Also, make sure the mouse cursor is rendered locally (ensure cursor is
>> not set to remote in user-mapping.xml)
>>
>> I was working on a feature on the side earlier, which will allow the user
>> to set the quality of the screen updates and reduce the data requirements.
>> It will not fix the latency issue, but may indirectly make sessions feel a
>> bit snappier. I expect to be able to focus on finishing this feature very
>> soon. https://issues.apache.org/jira/browse/GUACAMOLE-37
>>
>> You can use a network conditioner to help you with testing high latency,
>> reduced bandwidth and other flaky network scenarios. On Mac, I recommend
>> the Network Link Conditioner which is part of Xcode. While I have not used
>> it, NetBalancer may be an alternative for Windows.
>>
>> Regards,
>> Frode
>>
>>
>>
>> On Wed, Sep 21, 2016 at 10:06 AM, Dogbert <vi...@gmail.com>
>> wrote:
>>
>>> Hi Frode,
>>>
>>> Well some context this project, I  inherited when I joined my current
>>> company, and one that offshore couldn't quite get working. While I know
>>> that historically they've had slower performance with NoVNC, and I think
>>> the issues were more on the high latency end, with customer on the other
>>> side of the planet. I know that IT is looking into local data centers to
>>> help this, but my current task is to figure out what knobs and dials I can
>>> tweak, to eek out a little more performance.
>>>
>>> I'm not even sure how to test performance, other than putting it on a
>>> server, and have customers we are friendly with give it a try. Which is
>>> something we will do. Locally testing the performance seems to be fine. The
>>> latency between  the vnc server and the Guacamole server(Guacamole in our
>>> custom app), should be minimal, as in Dev they are on the same box, and in
>>> Prod they would be in the same data center. I'll have to ask IT for some
>>> number on that, just to make sure.
>>>
>>> Right now I haven't set any encoding in the user-mapping file, so we
>>> just have the defaults. From what offshore told me this morning, offshore
>>> said these didn't make any difference. Not that I believe that. So are
>>> there things there that I can tweak?  Also in my app I'm not using that
>>> file, but I do the equivalent, when I create the tunnel, setting the
>>> config. Right now I'm just setting the host, port and password. I've played
>>> with color-depth, which I can set to 16 or 24, I tried 8 but got a 515
>>> error.
>>>
>>> Thanks,
>>> Tucker
>>>
>>> On Wed, Sep 21, 2016 at 11:44 AM, Frode Langelo <fr...@apache.org>
>>> wrote:
>>>
>>>> Hi Tucker,
>>>>
>>>> Which specific performance issues are you seeing? Do you have high
>>>> latency and/or low bandwidth requirements?
>>>>
>>>> What does the network latency and available bandwidth look like between
>>>> your VNC server and Guacamole server?
>>>>
>>>> The VNC encoding parameters for the VNC server connection are set to "tight
>>>> zrle ultra copyrect hextile zlib corre rre raw" by default in
>>>> libvncclient. Have you explicitly set (and overridden) these encodings parameters
>>>> in your user-mapping.xml file? If so what are those parameters.
>>>>
>>>> Regards,
>>>> Frode
>>>> On 9/21/16 8:03 AM, Dogbert wrote:
>>>>
>>>> Hi,
>>>>
>>>> So I'm in the middle of a POC to replace NoVNC with Guacomole over
>>>> web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
>>>> looked through the documentation, and I didn't see much that I could tweak
>>>> for performance other than color-depth. Is there anything I'm missing that
>>>> I could tweak to help performance, like a quality setting? Or would
>>>> changing the VNC server have any effect?
>>>>
>>>> Thanks,
>>>> Tucker
>>>>
>>>>
>>>>
>>>
>>
>

Re: Performance tuning

Posted by Dogbert <vi...@gmail.com>.
Hi Frode,

As a mater of fact, I just got those numbers for a meeting tomorrow:
Locally: 15ms, other places we have a range 75, 177 and 243ms.

Since this is currently a POC we are using the latest 0.9.9.

That's one point I'm going to be testing. The difference in the image is
only slight, and it might be an acceptable compromise. We're probably going
to have a toggle for the cursor, because it is useful for some users, when
collaborating, but it does come with a performance trade off. Our app has
3D models in it, just to give you an ideas of the type of app I'm dealing
with.

Cool, that will make my boss happy, as it would give us more options, and
made me realize that there was another Jira,

Yeah that's a good point, although I'm on Linux, so I'll figure something
out.

Thanks,
Tucker


On Wed, Sep 21, 2016 at 2:36 PM, Frode Langelo <fr...@apache.org> wrote:

> Hi Tucker,
>
> As you say; it looks like latency is your enemy. A data center closer to
> the customer will definately make a big difference here. Do you by any
> chance kow what the customer's latency is to your current data center?
>
> You didn't mention which version of Guacamole you are using. Improvements
> to the rendering pipeline were done in version 0.9.9 which utilizes Dynamic
> JPEG/WebP encoding for busy screens, so you want to make sure you are using
> at least this version.
>
> By reducing the color-depth to 16 bit, do you or customers notice any
> difference? It may make the session feel somewhat faster as a result of
> reducng the data size even though the latency still is high.
> Also, make sure the mouse cursor is rendered locally (ensure cursor is
> not set to remote in user-mapping.xml)
>
> I was working on a feature on the side earlier, which will allow the user
> to set the quality of the screen updates and reduce the data requirements.
> It will not fix the latency issue, but may indirectly make sessions feel a
> bit snappier. I expect to be able to focus on finishing this feature very
> soon. https://issues.apache.org/jira/browse/GUACAMOLE-37
>
> You can use a network conditioner to help you with testing high latency,
> reduced bandwidth and other flaky network scenarios. On Mac, I recommend
> the Network Link Conditioner which is part of Xcode. While I have not used
> it, NetBalancer may be an alternative for Windows.
>
> Regards,
> Frode
>
>
>
> On Wed, Sep 21, 2016 at 10:06 AM, Dogbert <vi...@gmail.com>
> wrote:
>
>> Hi Frode,
>>
>> Well some context this project, I  inherited when I joined my current
>> company, and one that offshore couldn't quite get working. While I know
>> that historically they've had slower performance with NoVNC, and I think
>> the issues were more on the high latency end, with customer on the other
>> side of the planet. I know that IT is looking into local data centers to
>> help this, but my current task is to figure out what knobs and dials I can
>> tweak, to eek out a little more performance.
>>
>> I'm not even sure how to test performance, other than putting it on a
>> server, and have customers we are friendly with give it a try. Which is
>> something we will do. Locally testing the performance seems to be fine. The
>> latency between  the vnc server and the Guacamole server(Guacamole in our
>> custom app), should be minimal, as in Dev they are on the same box, and in
>> Prod they would be in the same data center. I'll have to ask IT for some
>> number on that, just to make sure.
>>
>> Right now I haven't set any encoding in the user-mapping file, so we just
>> have the defaults. From what offshore told me this morning, offshore said
>> these didn't make any difference. Not that I believe that. So are there
>> things there that I can tweak?  Also in my app I'm not using that file, but
>> I do the equivalent, when I create the tunnel, setting the config. Right
>> now I'm just setting the host, port and password. I've played with
>> color-depth, which I can set to 16 or 24, I tried 8 but got a 515 error.
>>
>> Thanks,
>> Tucker
>>
>> On Wed, Sep 21, 2016 at 11:44 AM, Frode Langelo <fr...@apache.org> wrote:
>>
>>> Hi Tucker,
>>>
>>> Which specific performance issues are you seeing? Do you have high
>>> latency and/or low bandwidth requirements?
>>>
>>> What does the network latency and available bandwidth look like between
>>> your VNC server and Guacamole server?
>>>
>>> The VNC encoding parameters for the VNC server connection are set to "tight
>>> zrle ultra copyrect hextile zlib corre rre raw" by default in
>>> libvncclient. Have you explicitly set (and overridden) these encodings parameters
>>> in your user-mapping.xml file? If so what are those parameters.
>>>
>>> Regards,
>>> Frode
>>> On 9/21/16 8:03 AM, Dogbert wrote:
>>>
>>> Hi,
>>>
>>> So I'm in the middle of a POC to replace NoVNC with Guacomole over
>>> web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
>>> looked through the documentation, and I didn't see much that I could tweak
>>> for performance other than color-depth. Is there anything I'm missing that
>>> I could tweak to help performance, like a quality setting? Or would
>>> changing the VNC server have any effect?
>>>
>>> Thanks,
>>> Tucker
>>>
>>>
>>>
>>
>

Re: Performance tuning

Posted by Frode Langelo <fr...@apache.org>.
Hi Tucker,

As you say; it looks like latency is your enemy. A data center closer to
the customer will definately make a big difference here. Do you by any
chance kow what the customer's latency is to your current data center?

You didn't mention which version of Guacamole you are using. Improvements
to the rendering pipeline were done in version 0.9.9 which utilizes Dynamic
JPEG/WebP encoding for busy screens, so you want to make sure you are using
at least this version.

By reducing the color-depth to 16 bit, do you or customers notice any
difference? It may make the session feel somewhat faster as a result of
reducng the data size even though the latency still is high.
Also, make sure the mouse cursor is rendered locally (ensure cursor is not
set to remote in user-mapping.xml)

I was working on a feature on the side earlier, which will allow the user
to set the quality of the screen updates and reduce the data requirements.
It will not fix the latency issue, but may indirectly make sessions feel a
bit snappier. I expect to be able to focus on finishing this feature very
soon. https://issues.apache.org/jira/browse/GUACAMOLE-37

You can use a network conditioner to help you with testing high latency,
reduced bandwidth and other flaky network scenarios. On Mac, I recommend
the Network Link Conditioner which is part of Xcode. While I have not used
it, NetBalancer may be an alternative for Windows.

Regards,
Frode



On Wed, Sep 21, 2016 at 10:06 AM, Dogbert <vi...@gmail.com> wrote:

> Hi Frode,
>
> Well some context this project, I  inherited when I joined my current
> company, and one that offshore couldn't quite get working. While I know
> that historically they've had slower performance with NoVNC, and I think
> the issues were more on the high latency end, with customer on the other
> side of the planet. I know that IT is looking into local data centers to
> help this, but my current task is to figure out what knobs and dials I can
> tweak, to eek out a little more performance.
>
> I'm not even sure how to test performance, other than putting it on a
> server, and have customers we are friendly with give it a try. Which is
> something we will do. Locally testing the performance seems to be fine. The
> latency between  the vnc server and the Guacamole server(Guacamole in our
> custom app), should be minimal, as in Dev they are on the same box, and in
> Prod they would be in the same data center. I'll have to ask IT for some
> number on that, just to make sure.
>
> Right now I haven't set any encoding in the user-mapping file, so we just
> have the defaults. From what offshore told me this morning, offshore said
> these didn't make any difference. Not that I believe that. So are there
> things there that I can tweak?  Also in my app I'm not using that file, but
> I do the equivalent, when I create the tunnel, setting the config. Right
> now I'm just setting the host, port and password. I've played with
> color-depth, which I can set to 16 or 24, I tried 8 but got a 515 error.
>
> Thanks,
> Tucker
>
> On Wed, Sep 21, 2016 at 11:44 AM, Frode Langelo <fr...@apache.org> wrote:
>
>> Hi Tucker,
>>
>> Which specific performance issues are you seeing? Do you have high
>> latency and/or low bandwidth requirements?
>>
>> What does the network latency and available bandwidth look like between
>> your VNC server and Guacamole server?
>>
>> The VNC encoding parameters for the VNC server connection are set to "tight
>> zrle ultra copyrect hextile zlib corre rre raw" by default in
>> libvncclient. Have you explicitly set (and overridden) these encodings parameters
>> in your user-mapping.xml file? If so what are those parameters.
>>
>> Regards,
>> Frode
>> On 9/21/16 8:03 AM, Dogbert wrote:
>>
>> Hi,
>>
>> So I'm in the middle of a POC to replace NoVNC with Guacomole over
>> web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
>> looked through the documentation, and I didn't see much that I could tweak
>> for performance other than color-depth. Is there anything I'm missing that
>> I could tweak to help performance, like a quality setting? Or would
>> changing the VNC server have any effect?
>>
>> Thanks,
>> Tucker
>>
>>
>>
>

Re: Performance tuning

Posted by Dogbert <vi...@gmail.com>.
Hi Frode,

Well some context this project, I  inherited when I joined my current
company, and one that offshore couldn't quite get working. While I know
that historically they've had slower performance with NoVNC, and I think
the issues were more on the high latency end, with customer on the other
side of the planet. I know that IT is looking into local data centers to
help this, but my current task is to figure out what knobs and dials I can
tweak, to eek out a little more performance.

I'm not even sure how to test performance, other than putting it on a
server, and have customers we are friendly with give it a try. Which is
something we will do. Locally testing the performance seems to be fine. The
latency between  the vnc server and the Guacamole server(Guacamole in our
custom app), should be minimal, as in Dev they are on the same box, and in
Prod they would be in the same data center. I'll have to ask IT for some
number on that, just to make sure.

Right now I haven't set any encoding in the user-mapping file, so we just
have the defaults. From what offshore told me this morning, offshore said
these didn't make any difference. Not that I believe that. So are there
things there that I can tweak?  Also in my app I'm not using that file, but
I do the equivalent, when I create the tunnel, setting the config. Right
now I'm just setting the host, port and password. I've played with
color-depth, which I can set to 16 or 24, I tried 8 but got a 515 error.

Thanks,
Tucker

On Wed, Sep 21, 2016 at 11:44 AM, Frode Langelo <fr...@apache.org> wrote:

> Hi Tucker,
>
> Which specific performance issues are you seeing? Do you have high latency
> and/or low bandwidth requirements?
>
> What does the network latency and available bandwidth look like between
> your VNC server and Guacamole server?
>
> The VNC encoding parameters for the VNC server connection are set to "tight
> zrle ultra copyrect hextile zlib corre rre raw" by default in
> libvncclient. Have you explicitly set (and overridden) these encodings parameters
> in your user-mapping.xml file? If so what are those parameters.
>
> Regards,
> Frode
> On 9/21/16 8:03 AM, Dogbert wrote:
>
> Hi,
>
> So I'm in the middle of a POC to replace NoVNC with Guacomole over
> web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
> looked through the documentation, and I didn't see much that I could tweak
> for performance other than color-depth. Is there anything I'm missing that
> I could tweak to help performance, like a quality setting? Or would
> changing the VNC server have any effect?
>
> Thanks,
> Tucker
>
>
>

Re: Performance tuning

Posted by Frode Langelo <fr...@apache.org>.
Hi Tucker,

Which specific performance issues are you seeing? Do you have high latency
and/or low bandwidth requirements?

What does the network latency and available bandwidth look like between
your VNC server and Guacamole server?

The VNC encoding parameters for the VNC server connection are set to "tight
zrle ultra copyrect hextile zlib corre rre raw" by default in libvncclient.
Have you explicitly set (and overridden) these encodings parameters in your
user-mapping.xml file? If so what are those parameters.

Regards,
Frode
On 9/21/16 8:03 AM, Dogbert wrote:

Hi,

So I'm in the middle of a POC to replace NoVNC with Guacomole over
web-sockets. We currently use TurboVNC(with virtualGL) as our vnc server. I
looked through the documentation, and I didn't see much that I could tweak
for performance other than color-depth. Is there anything I'm missing that
I could tweak to help performance, like a quality setting? Or would
changing the VNC server have any effect?

Thanks,
Tucker