Guidelines for Bizagi when considering compute virtualization

<< Click to Display Table of Contents >>

Navigation:  Automation Server > Automation Server requirements > Performance and optimization >

Guidelines for Bizagi when considering compute virtualization



Automation Server executes your processes and delivers them to the desktops and mobiles of every business user.

For introductory information about Automation Server, refer to Automation Server - system requirement.


When setting up Automation Server, you will need to make sure that your hardware meets with minimum requirements and that these are aligned to the sizing estimation of your project.

You may set up Automation Server either directly on physical servers or on virtual machines.


The information presented here considers guidelines for you to set up Automation Server, along with its other fundamental assets of the system architecture (such as the database engine or network aspects) on virtual machines (e.g., using VMWare products such as vSphere, Hyper-V, or cloud compute services such as Azure or Amazon WS).


VM Host characteristics

It is especially important for the host (physical servers) of VMs with databases, to have high-speed disks (e.g., SSD, high RPM).

The database in Bizagi will be constantly performing I/O operations.


You may check if your disk is SSD, or choose to look up the disk's exact manufacturer and model to get to know its RPM specification.




VM allocated resources (limits and reserved resources)

Whenever multiple VMs are configured on a shared host, it is strongly recommended that you tune how the resources are allocated and optimized for each VM.

Consider that each VM would still need to comply to minimum requirements and be aligned with recommended practices according to the type of service they support (e.g., either a Bizagi server or a database server), as described at System architecture recommended practices.


Thoroughly analyzing capacity and sizing, is specially useful to make sure that certain VMs use settings on explicit limits on the resources they can use, and similarly have a reserved amount of resources allocated for their continuous operation (regardless of how other VMs on the same host are performing).

This comes to be relevant especially if there is "contention" (CPU contention, RAM contention, etc).


The image below shows an example of how with vSphere, you can configure specific resource allocation for a VM regarding Disk usage (or CPU and memory):




For CPU, you may increase the default Shares and choose to explicitly assign processing (in MHz) for that VM exclusively (i.e, Reservation) or set a maximum usage limit:




A similar configuration is presented to configure memory (RAM):




The bottom line when using compute virtualization, is to make sure you are fully aware of the following:

Virtual machines share a host, and some of that host's specifications are common and applicable to all of the virtual machines on top of it (such as disk speed).

Others resources of the host are made available to virtual machines as a "pool of resources" (such as RAM and CPU), in a way that, virtual machines may end up competing over these type of resources. You may tune this behavior by conducting a thorough analysis so that you can optimize resource allocation separately for each different virtual machine (by setting limits or reservations accordingly).

According to the above statements, the more virtual machines you set up on a same host, the more critical it becomes for you to tune and watch after how resources are handled by each virtual machine. Increasing the number of virtual machines on a same host may impact performance of common hardware resources which can't be reserved separately (such as disk speed).