On Thu, Jun 27, 2019 at 9:12 PM jinesh <[email protected]> wrote:

> Hi
>
> I would like to know the System requrements for Guacamole server to handle
> a
> certain amount of load. I want to configure my instance type based on a
> given load matrix, for better performance.
>

In the load testing we performed at my day job, we found that you will
generally need 1 core and 2 GB for every 25 concurrent users at peak.
Exceeding that will not cause things to fail, but users may start to notice
performance degradation. This is mainly relevant to the server/cluster
hosting guacd. We did not encounter a need to increase resources for Tomcat
or the web application, even after exhausting our ability to generate
simulated load (~2000 users).

The above test was performed by having a small set of actual test users
interact with their connections normally while an independent set of
servers with simulated users was increased in size. The simulated users
generated load by performing a repeated series of tasks, leveraging Sikuli
to interact with Guacamole as a normal user would. When the human users
reported that performance seemed reduced, we noted the Guacamole server
configuration and overall number of concurrent connections and restarted
the test with a new scenario.

My guacamole setup is facing CPU choking issue from guacd service.
>

What do you mean by "CPU choking"?


> Following are the areas I need more info,
> 1. Relation between number of connections and load, say /N/ number of
> active
> consoles would consume /N/ percentage of RAM/CPU.
>

This is not how things work. A specific number of connections will not
consume a static percentage of CPU, nor is CPU usage a reliable indicator
of scalability.

Keep in mind that CPU usage is really an artificial metric. At any given
time, a process is either running or it isn't. That usage percentage is a
percentage of how much CPU time was used by a process over some interval,
and really will not be helpful in gauging the performance of an individual
connection. You can expect that the CPU behavior of each connection within
guacd will be bursty, with that bursty curve smoothing out and becoming
more predictable with increasing users. You can also generally expect that
user behavior will be bursty, with the likelihood that multiple users will
require a significant portion of CPU at the same time being relatively low.
Even in the case where this does occur, the kernel does quite a good job of
scheduling things.


> 2. How console with rich UI or media would affect /guacd/ service or the
> Server.
>

I'm not sure what you are referring to by consoles with rich UI or media.

If your users will be attempting to watch video, etc., that will require
more processing that typical desktop usage, but the server should still
cope with this well. It depends on how likely that usage is across a
sufficiently large number of users. If you are expecting all users to
constantly watch video at the same time, you will definitely need more
resources.


> 3. Scenarios where /guacd/ service would choke Guacamole server CPU
> resource.
>

Please see above. I don't know what you mean by "CPU choking".

4. Will tomcat thread settings affect Guacamole performance.


Yes, in that they may affect the number of HTTP or WebSocket connections
that Tomcat can hold open. If you believe Tomcat may be a bottleneck here,
you should try switching Tomcat over to its NIO connector.

- Mike

Reply via email to