Analyzing hardware load for Windows-based 1C:Enterprise server clusters
Summary:
Collecting and analyzing information on system hardware load.
This article applies to Microsoft Windows operating systems.
To timely detect hardware bottlenecks, it is necessary to constantly monitor the load of all main hardware components of the system. These primarily include:
- All working servers of 1C:Enterprise cluster
- DBMS server
- Client workstations under heavy load
For each of these computers, it is necessary to configure the collection of information on hardware load.
Collecting information on hardware load
While the system is running, we recommend that you constantly monitor and record main indicators of hardware load. To do this, you can use different tools. This article will describe how you can do this using Performance Monitor, which is a part of the Windows operating system, and QMC (Quality Management Center), which is a standard configuration and a part of Enterprise Software Development Kit.
Configuring data collection in Performance Monitor (Windows Server 2012 R2)
To start Performance Monitor, select the appropriate menu item in the Administrative Tools section of the Windows Control Panel.
Add a new User Defined set to the Data Collector Sets list:
You will need to manually go through several steps. In the dialog box, select the appropriate item and click Next:
Select which data to collect. We are interested in Performance counters:
In the next step, select the counters to include in the set.
We recommend that you collect data for the following counters without fail:
"\Processor(_Total)\Interrupts/sec"
"\LogicalDisk(_Total)\% Free Space"
"\Memory\Available Mbytes"
"\PhysicalDisk(_Total)\Avg. Disk Queue Length"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Read"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Write"
"\Processor(_Total)\% Idle Time"
"\Processor(_Total)\% Processor Time"
"\Processor(_Total)\% User Time"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\File Write Bytes/sec"
"\System\Processes"
"\System\Processor Queue Length"
"\System\Threads"
The list of counters may vary depending on the computer role. For example, for 1C:Enterprise application server, the performance indicators of 1C:Enterprise processes should be added to those listed above:
"\Process("1cv8*")\% Processor Time"
"\Process("1cv8*")\Private Bytes"
"\Process("1cv8*")\Virtual Bytes"
"\Process("ragent*")\% Processor Time"
"\Process("ragent*")\Private Bytes"
"\Process("ragent*")\Virtual Bytes"
"\Process("rphost*")\% Processor Time"
"\Process("rphost*")\Private Bytes"
"\Process("rphost*")\Virtual Bytes"
"\Process("rmngr*")\% Processor Time"
"\Process("rmngr*")\Private Bytes"
"\Process("rmngr*")\Virtual Bytes"
Note that counter names may slightly differ depending on your operating system version.
The recommended frequency for getting values for a working system is once every 15 seconds. In load tests, we recommend that you collect counters more often, for example, once every 1 second, since the duration of each continuous load test usually does not exceed ten hours, and it is more convenient to analyze more detailed data. After completing the selection, click Next, specify the log storage directory and, if necessary, the user on whose behalf the collector process will be started, and save the set.
Open its properties for further editing (for example, by double-clicking it in the list):
You can select the log file format: binary is useful if you plan to analyze graphical data; CSV is useful if you plan to process data programmatically. In this example, a binary format is selected.
On the Files tab, you can set up a file name template and recording mode. For the saved set, you can also set up a schedule and set limits and conditions for the end of the collection.
In this case, the measurement does not start automatically. On productive sites, we recommend that you remember to set up Task Scheduler to automatically start the selected counter, for example, every hour if data collection has not started yet.
After saving, you can start the measurement (by clicking Start in the context menu).
You can create a set of Performance Monitor counters and manage data collection not only interactively but also using the logman utility. For more information, go to the Microsoft website https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman
The create set command will look like this:
logman create counter 1C_counter -f bincirc -c "\Processor(_Total)\Interrupts/sec" "\LogicalDisk(_Total)\% Free Space" "\Memory\Available Mbytes" "\PhysicalDisk(_Total)\Avg. Disk Queue Length" "\PhysicalDisk(_Total)\Avg. Disk Sec/Read" "\PhysicalDisk(_Total)\Avg. Disk Sec/Write" "\Processor(_Total)\% Idle Time" "\Processor(_Total)\% Processor Time" "\Processor(_Total)\% User Time" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\File Write Bytes/sec" "\System\Processes" "\System\Processor Queue Length" "\System\Threads" -si 5 -v mmddhhmm
Analyzing the saved measurement
To view the data, open the binary measurement file .blg. Windows will open this type using Performance Monitor by default:
You can select a graph related to a specific counter by clicking the graph line or the counter line in the list below. The average, minimum, maximum and last value for the measurement period will be displayed for it:
As a rule, of interest are the average value and maximum / minimum value depending on the meaning of the counter.
The table below lists descriptions and limit values for some of them:
Group | Counter | Description | Criterion | Bottleneck |
Memory | Pages/sec | Rate of exchange between the disk subsystem and RAM | Average: about 0 Maximum: no more than 20 | Insufficient RAM |
Processor [_Total] | % Processor Time | Processor time | No more than 70% for a long time | Insufficient processor performance |
System | Processor Queue Length | Processor queue | No more than 2 * the number of processor cores for a long time | Insufficient processor performance |
Physical Disk | Avg. Disk Queue Length | Disk queue | No more than 2 * the number of disks running in parallel | Insufficient performance of the disk subsystem |
Network Interface | Bytes Total/sec | Network data transfer rate | No more than 65% of the bandwidth of the network adapter | Insufficient bandwidth of the network interface |
For other indicators, the values will depend on the specific hardware, system and type of load.