ActiveXperts Network Monitor Threading
The ActiveXperts Network Monitor Engine (a Windows Service) is responsible for monitoring servers, workstations and devices from a central point. It is designed to run multiple checks simultaneously. To do so, it uses so called 'threads'. Multi-threading gives a program the ability to perform several tasks concurrently.
In ActiveXperts Network Monitor, multiple threads are running, for instance:
- 1 Kernel (Dispatcher) thread
- 1 Database Logging thread
- Multiple Check threads
- Multiple Notification threads
The number of threads strongly influences the performance of the ActiveXperts Network Monitor Engine (service). If there are only a few threads, the software will not use much CPU and memory resources, but the throughput of checks may be low. By increasing the number of threads, the throughput will increase. However, too many threads will consume too many system resources together (each thread consumes memory and CPU), decreasing the performance of the Network Monitoring engine dramatically.
It is recommended to have less than 40 threads on an average server. If - for instance - you have a lot of ICMP checks, and only a few VBScript based checks, you can increase performance by configuring a few more ICMP threads and a few less VBScript threads.
On more powerful servers, you can configure more threads.
Configuring the number of Threads
To configure the number of threads, choose Options from the Tools Menu and select the Performance tab.
You find all different types of threads. You can change the number of threads that is spawned when the ActiveXperts Network Monitor is started. As a result, changes take effect after you restart the service!
The following threads are used by the Network Monitor Engine (service):
- Environmental - Responsible for Environmental related checks: 'Door', 'Humidity', 'Light', 'Motion', 'Power', 'Resistance', 'Smoke', 'Switch', 'Temperature' and 'Wetness'. Default number of Environmental threads: 2.
- FTP - Responsible for handling FTP and TFTP checks. Default number of FTP threads: 1;
IMPORTANT: you can configure only 1 FTP thread, because of the single-threaded nature of the underlying WinInet API;
- HTTP - Responsible for handling HTTP(s) checks. Default number of HTTP threads: 4;
- ICMP/Ping - Responsible for handling 'ICMP/Ping' checks. Default number of ICMP/Ping threads: 4;
- OLE/DB - Responsible for checking OLE/DB compliant databases, including MS SQL and MySQL. Default number of OLE/DB threads: 2;
- Oracle - Responsible for handling Oracle checks. Default number of Oracle threads: 1.
IMPORTANT: you can configure only 1 Oracle thread;
- PowerShell - Responsible for handling PopwerShell based checks, including custom PowerShell checks. Default number of PowerShell threads: 2.
- Remote Command - Responsible for handling Remote Command based checks. Default number of Remote Command threads: 1.
- Removable Drives - Responsible for handling Removable Drive checks, to detect the presence of USB sticks, external hard drives, etc.. Default number of Removable Drive threads: 1.
- Serial Communications - Responsible for Serial Device check. Default number of Serial Device threads: 1;
- SMTP/POP3 - Responsible for the SMTP and POP3 checks. Default number of SMTP/POP3 threads: 1;
- SMTP/POP3 (round robin) - Responsible for the SMTP to POP3 check. It is a separate thread because an SMTP to POP3 check usually takes more than a minute. Default number of SMTP to POP3 threads: 1;
- SNMP Trap Receiver - Responsible for receiving incoming traps. Default number of SNMP Trap Receiver: 1. You can have maximum 1 SNMP Trap Receiver thread, because it handles all incoming traps;
- Socket - Responsible for Winsock related checks: 'TCP', 'ICA', 'DHCP', 'RSH', 'SNMP GET', 'NNTP', 'NTP', 'DNS', 'RADIUS' and 'TraceRoute'. Default number of Socket threads: 6;
- SSH - Responsible for the following check: 'SSH'. Default number of SSH threads: 4;
- SFTP - Responsible for the following check: 'SFTP'. Default number of SFTP threads: 1;
- VBScript - Responsible for handling VBScript based checks, including custom VBScript checks. Default number of VBScript threads: 4;
- Virtualization - Responsible for handling the following checks: 'VMware', 'XenServer', 'Hyper-V' and 'Verde VDI'. Default number of Win32 threads: 4;
- Win32 - Responsible for handling the following Windows checks: 'Directory Size', 'Scheduled Task for NT4' and 'File'. Default number of Win32 threads: 4;
- WinUpdate - Responsible for handling the following Windows checks: 'Windows Update'. Default number of WinUpdate threads: 2;
- WMI - Responsible for handling all Windows WMI based checks, e.g. 'Anti-Virus', 'Active Directory', 'Disk Space', 'Hyper-V', 'CPU', 'Disk Drives', 'Event Log', 'Memory', 'MS BizTalk Server', 'MS Exchange Server', 'MS IIS Server', 'MS Index Server', 'MS ISA Server', 'MS Message Queue', 'MS SharePoint Server', 'MS Performance Counter', 'MS Terminal Server', 'Printer', 'Process', 'Scheduled Task', 'Service' and 'Windows Defender'. Default number of WMI threads: 4.