The Speechmatics Batch Virtual Appliance operates on a hypervisor host system. For this version of the appliance, the following hypervisors are supported:
For the virtual appliance to operate as required, the host must meet the requirements and have the resources available as defined below.
The virtual appliance can operate in any VMware supported environment that claims support for VMware virtual hardware specification 11 and above (see here for more information).
The host machine requires a processor with following minimum specification: Intel® Xeon® CPUE5-2630 v4 (Sandy Bridge) 2.20GHz (or equivalent).
It is recommended to use a processor that supports Advanced Vector Extensions 2 (AVX2) as well as Advanced Vector Extensions (AVX) in order to take advantage of recent Speechmatics performance optimisation. At a minimum, Speechmatics products require processors with support for AVX. You should also ensure that your hypervisor has AVX enabled.
To see whether AVX2 is supported by the CPU of your host system, you can run the following query via the Management API of the appliance:
curl -X GET "https://{HOSTAPPLIANCE}/v1/management/cpuinfo" -H "accept: application/json"
You will receive information about the host CPU. If the CPU supports AVX and AVX2, their support will be returned as flags in the Management API response. An example is below
{
"usage_percentage": 2.5,
"architecture": "X86_64",
"model_name": "Intel(R) Xeon(R) Silver 4116 CPU @ 2.10GHz",
"cpus": "2",
"vendor": "GenuineIntel",
"hyperthreading": false,
"flags": "3dnowprefetch abm adx aes apic arat arch_capabilities arch_perfmon avx avx2 bmi1 bmi2 clflush cmov constant_tsc cpuid cpuid_fault cx16 cx8 de f16c flush_l1d fma fpu fsgsbase fxsr hypervisor ibpb ibrs invpcid invpcid_single lahf_lm lm mca mce md_clear mmx movbe msr mtrr nonstop_tsc nopl nx pae pat pcid pclmulqdq pdpe1gb pge pni popcnt pse pse36 pti rdrand rdseed rdtscp sep smap smep ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp syscall tsc tsc_adjust tsc_deadline_timer tsc_reliable vme x2apic xsave xsaveopt xtopology"
}
See below for minimum Batch Virtual Appliance VM (guest) specifications; the host machine must have enough resources (processor, memory and storage) to run the hypervisor, the guest VMs you intend to host on it, plus any other processes you expect to run on it. Vendor guidelines should be followed for other host requirements and installation process.
For VMWare, the document Performance Best Practices for VMware vSphere® 6.0 contains a comprehensive overview of hardware considerations and recommendations on how to optimize your host platform. See https://www.vmware.com/support.html for up-to-date technical information on VMWare.
For VirtualBox, please consult the online documentation: https://www.virtualbox.org/wiki/Documentation
For Amazon EC2, the following link explains how to setup a VM using an Amazon S3 to store the OVA file: https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html.
The Speechmatics Real-time Batch Virtual Appliance must be allocated the following minimum specification:
For each concurrent input stream the appliance requires an additional 1 vCPU and up to 1.5GB RAM. If you are using the custom dictionary (additional words) feature then each concurrent input stream that is configured to use it will require up to 3GB RAM.
For operation in batch mode, the following minimum specifications are required:
Heavy usage of the appliance at scale can sometimes result in very high percentage usage of volume throughput. If this is the case, we recommend increasing the maximum IOPs supported by your hardware to a value between 8,000-12,000. This is not necessary in all circumstances, but may result in better performance if you are running more than 10 concurrent workers. Increasing the IOPS also will result in an increase in cost for resource usage. If you use AWS, setting the volume type
to io2
is also recommended in this scenario.
How to change the maximum IOPS supported by your hardware is documented here for AWS, here for Microsoft Azure, and here for VMWare. You may need to do this if: