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
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.
On Wed, Sep 21, 2016 at 10:06 AM, Dogbert <virtualdogb...@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.
> 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
>> in your user-mapping.xml file? If so what are those parameters.
>> On 9/21/16 8:03 AM, Dogbert wrote:
>> 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?