Configuring Data Build in Windows Server Performance Monitor

Every experienced system administrator knows that the best indicator of 1C performance deterioration is the chief accountant moving towards the IT department at a speed exceeding 1.1 m / s. But only the wisest of them set up the collection of counters so that this meeting does not catch them by surprise. Let's talk about this under the cut ...







Epigraph:

There are two reasons why a computer can slow down:

1. Virus.

2. Antivirus.


Β© advice of experienced system administrators



I will not be mistaken if I say that every office administrator faced the question: Why does 1C slow down?



And again, I won't be mistaken, if the first thing he (s) does at the same time, it will open the task manager.

More advanced ones, of course, will configure the collection of Performance Monitor counters (Zabbix in this context is about the same). 



Moreover, there are more than enough instructions, checklists for setting up. This is what scares.

I'll try to offer you an overview of the main ones and my own compilation.



Attention!



The name of the counters differs not only depending on the language of the operating system, but also on its edition.



Let's add to this the vision and mistakes of the authors of the publications and understand that a simple copy-paste may not work.




In the case of perfmon, this will be aggravated by the fact that you will not receive any errors when creating counters in the command line, they simply will not be collected.



In order to see a list of all performance counters available on the current computer, you need to run



  • typeperf -q [object] will list all counters
  • typeperf -qx [object] will display a list of all counters by hardware instance, for example, separately for drives A: and C: 


Where the optional parameter [object] is a filter on the type of meter, such as PhysicalDisk

This conclusion can redirect to a file and then have to choose from it the necessary

typeperf -qx -y -o counters.txt



In the future, to get summary statistics should be replaced in the event of a key - qx the name of a particular instance on (_Total) , and to get statistics for each instance separately on  (*)



For example:



\ PhysicalDisk (_Total) \ Current Disk Queue Length 

\ PhysicalDisk (*) \ Current Disk Queue Length 



My recommended way is to create a bat file of 3 lines.



logman create counter 1C_counter -f bincirc 

logman update counter 1C_counter -cf assembled.txt 

logman update counter 1C_counter -si 15 -v ​​mmddhhmm 




And add the names of the counters to the assembled.txt file. One per line. A working and recommended example for Windows Server 2012 R2 ENG will be below.



list under the spoiler
 



\Processor(_Total)\% Processor Time 

\Processor(_Total)\% User Time 

\Processor(_Total)\% Privileged Time 

\Memory\Available MBytes 

\Memory\Pages/sec 

\Memory\% Committed Bytes In Use 

\Paging File(*)\% Usage 

\System\Context Switches/sec 

\System\Processor Queue Length 

\System\Processes 

\System\Threads 

\PhysicalDisk(_Total)\Current Disk Queue Length 

\PhysicalDisk(*)\Current Disk Queue Length 

\PhysicalDisk(_Total)\Avg. Disk sec/Read 

\PhysicalDisk(_Total)\Avg. Disk sec/Write 

\Network interface(_Total)\Bytes Total/sec 

\Network interface(_Total)\Current Bandwidth 



\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

\Process(sqlservr)\% Processor Time

\Process(sqlservr)\Private Bytes

\Process(sqlservr)\Virtual Bytes



\SQLServer:General Statistics\User Connections

\SQLServer:General Statistics\Processes blocked

\SQLServer:Buffer Manager\Buffer cache hit ratio

\SQLServer:Buffer Manager\Page life expectancy

\SQLServer:SQL Statistics\Batch Requests/sec

\SQLServer:SQL Statistics\SQL Compilations/sec

\SQLServer:SQL Statistics\SQL Re-Compilations/sec

\SQLServer:Access Methods\Page Splits/sec

\SQLServer:Access Methods\Forwarded Records/sec

\SQLServer:Access Methods\Full Scans/sec

\SQLServer:Memory Manager\Target Server Memory (KB)

\SQLServer:Memory Manager\Total Server Memory (KB)

\SQLServer:Memory Manager\Free Memory (KB)

\SQLServer:Databases(_Total)\Transactions/sec

\SQLServer:Databases(*)\Transactions/sec

 



Actually, hurry-ups may not read any further. They don't even read anymore.

With the rest we will deal with the recommendations of the best dog breeders



Let's start by studying the advice of the vendor himself: microsoft.com

Publishing Windows VM health




table under the spoiler
Logical disk  
  Logical disk average disk seconds per transfer
  Logical disk average disk seconds per write
  Logical disk current disk queue length
  Logical disk free space megabytes low
  Logical disk percent idle time
  Logical disk free space percent low
  File system error or corruption
Operating system  
  Memory available megabytes
  Memory free system page table entries
  Memory pages per second
  Memory percent committed memory in use
  Total CPU utilization percentage
  DHCP Client service health
  DNS Client Service Health
  Event Log service health
  Windows Firewall service health
  RPC service health
  Server service health
  Windows Remote Management (WinRM) service health
Network adapter  
  Network adapter connection health
  Network adapter percent bandwidth used read
  Network adapter percent bandwidth used total
  Network adapter percent bandwidth used write
Disk  
  Disk current disk queue length
  Disk percent idle time
  Disk average seconds per read
  Disk average disk seconds per transfer
  Disk average disk seconds per write




Using this option, you definitely won't be mistaken, but it contains counters that are not quite necessary for monitoring the 1C server.



Further, but rather higher, in my top of options there is a recommendation from Evgeny Valerievich Filippov

1C Handbook: An Expert on Technological Issues. Edition 2 The




list is small, but everything is on the case and it is clear that the author used it in his work.

 



table under the spoiler
Logical disk    
Operating system    
  \Memory(_ Total)\%% Committed Bytes In Use .
  \Memory(_Total)\Available Bytes .
  \Memory(_Total)\Pages/sec  
  \Processor(_Total)\%% Processor Time 70 % .
  \System(_Total)\Processor Queue Length 2 *
Network adapter    
  \Network lnterface(*)\Bytes Total/ sec  
Disk    
  \PhysicalDisk(*)\Avg. Disk Queue Length 2 * ,
  \PhysicalDisk(_Total)\Avg. Disk Queue Length
  \PhysicalDisk(_Total)\Avg. Disk Sec/Read 10 . 50-200 .
  \PhysicalDisk(_Total)\Avg. Disk Sec/Write




The list of the book Methodological manual for the operation of large information systems on the platform "1C: Enterprise 8"

A. Asatryan, A. Golikov, A. Morozov, D. Solomatin, Y. Fedorov is


even more concise, it added monitoring 1cv8, ragent, rphost, rmngr I will put it on a separate list, because it may and probably will not interfere with any option, except for spaced SQL and 1C servers.



table under the spoiler
 "\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"







\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

\Process(sqlservr)\% Processor Time

\Process(sqlservr)\Private Bytes

\Process(sqlservr)\Virtual Bytes



List of equipment counters.

 

table under the spoiler
Logical disk  
  \LogicalDisk(_Total)\Free Megabytes
Operating system  
  \Memory(_Total)\Pages/sec
  \Memory\Available Mbytes
  \Processor(_Total)\%% Processor Time
  \System(_Total)\Processor Queue Length
Network adapter  
  \Network lnterface(*)\Bytes Total/ sec
Disk  
  \PhysicalDisk(*)\Avg. Disk Bytes/Read
  \PhysicalDisk(*)\Avg. Disk Bytes/Write
  \PhysicalDisk(*)\Avg. Disk Queue Length
  \PhysicalDisk(_Total)\Avg. Disk Queue Length




Next is an article with ITS Analysis of hardware utilization for Windows Elena Skvortsova and its full copy on kb who has access there , it describes the entire setup process in detail and with pictures. This is very useful for the first setup.

For all the usefulness and accessibility of the article, the feeling does not leave that it was written like the famous letter from Matroskin: "your son is uncle Sharik", different people. For example, the text does not match the pictures, for some counters, threshold values ​​are described, but they are not in the list, some counters in the list are doubled, because of this, it will not be possible to copy-paste logman in the command line. This is just a little discouraging for beginners.







Lyrical digression: Not even a month has passed since the regional round of the ITS competition, where one of the questions was composed in this way, there is only one answer in the code, and in the picture, the mathematically correct one is completely different. The organizers relied precisely on the correctness of the code. Although it is understandable that the code is poorly checked, all scientific books warn about this in advance.

 

table under the spoiler
Logical disk    
  \LogicalDisk(_Total)\% Free Space  
Operating system    
  \Memory\Available Mbytes  
  \Processor(_Total)\% Idle Time  
  \Processor(_Total)\% Processor Time 70%
  \Processor(_Total)\% User Time  
  \Processor(_Total)\Interrupts/sec  
  \System\Context Switches/sec  
  \System\File Read Bytes/sec  
  \System\File Write Bytes/sec  
  \System\Processes  
  \System\Processor Queue Length 2 *
  \System\Threads  
    Memory Pages/sec

: 0

: 20
Network adapter   65%
Disk    
  \PhysicalDisk(_Total)\Avg. Disk Queue Length 2 * ,
  \PhysicalDisk(_Total)\Avg. Disk Sec/Read  
  \PhysicalDisk(_Total)\Avg. Disk Sec/Write  




The list is closed by foreign vendor agents

www.veritas.com  Analyzing SQL Performance using Performance Monitor Counters




It is clear that they have never heard of 1C, but the fact that they saw an order of magnitude more servers is a fact.

 

table under the spoiler
Logical disk    
     
Operating system    
  Memory: Available Bytes 25% . , ,
  Memory: Cache Faults /sec  
  Memory: Page Faults /sec  
  Memory: Page Input /sec 15
  Memory: Page Reads /sec 5
  Memory: Pages/sec 20 β€”
  Paging File: % Usage  
  Processor: % Processor Time_Total 80% 10+ 24
  System: Processor Queue Length 2 10+ 24 . , 4 , 8 10- .
     
     
     
Network adapter    
  Network Interface: Bytes Received/sec  
  Network Interface: Bytes Sent/sec  
  Network Interface: Bytes/sec  
  Network Interface: Output Queue Length 0, 2
Disk    
  Physical Disk: Disk Writes/sec  
  Physical Disk: Disk Reads/sec 20 , 50
  Physical Disk: Avg. Disk Write Queue Length ( , 2)
  Physical Disk: Avg. Disk Write /sec  
  Physical Disk: Avg. Disk Read Queue Length  
  Physical Disk: Avg. Disk Read /sec  
  Physical Disk: Avg. Disk Queue Length 2 (3 = 6) 10+ 24 .




red-gate.com

SQL Server performance and activity monitoring




 

table under the spoiler
Logical disk    
  Logical Disk: Avg. Disk Queue Length - , , , SAN , -. - Disk avg. .
  Logical Disk: Avg. Disk sec/Read MDF NDF OLTP 20 . OLAP 30 . LDF 5 . , , 50 , -.
  Logical Disk: Avg. Disk sec/Write MDF NDF OLTP 20 . OLAP 30 . LDF 5 . , , 50 , -.
  Logical Disk: Disk Transfers/sec IOPS
  LogicalDisk: Free Megabytes  
Operating system    
  Memory: Pages/sec 1000, 100 ,
  Memory: Available Bytes  
  Processor: % Processor Time (_Total) Β« : Β» 80% ( ),
  System: Processor Queue Length , 10 ,
     
     
     
Network adapter    
  Network Interface: Bytes Received/sec 8 * (( : / ) + ( : / )) / ( : ) * 100
  Network Interface: Bytes Sent/sec  
Disk    




As for counters for MS SQL, my list was at the beginning of the publication.



There are an incredible variety of options, as well as experts (it's not a fact that now one of them hasn't moved quietly under the table at the sight of him).

However, a real cheeky admin will never show his attitude, he will play with his eyebrows at the most and will listen to the server's music.



Those interested can spend a couple of winter (summer) evenings sorting out the full list.



table under the spoiler




- Navigator, instruments!

- Fourteen.

- What is fourteen?

- And what, devices !?

Β© www.anekdot.ru A




vigilant reader will say: It is not enough to collect equipment counters, you also need to analyze them.

And I'll show him this table.



Technical digression: Although it expresses the opinion of respected experts, it must be treated with understanding.



For example, many will remember the times when they begged the director to buy additional 32 MB for the server of the above-mentioned accounting department. The same goes for the speed of the discs. These values ​​are deprecated.




Attention!



" ". . . , .




\Processor(_Total)\% Processor Time 70% β€” 80% , +10 . 50% β€”
\Processor(_Total)\% User Time , % Processor Time = % User Time + % Privileged Time, % User Time % Processor Time, % Privileged Time 0
\Processor(_Total)\% Privileged Time % Privileged Time 5-10%, >20%.
\Memory\Available MBytes . β€” 25%
\Memory\Pages/sec 1 : 20, 1000.  Memory Available.  0.
\Memory\% Committed Bytes In Use , . Memory \% Committed Bytes in Use  Memory/Committed Bytes Memory\Commit Limit 90%, 95% OutOfMemory.
\Paging File(*)\% Usage , Microsoft   100% , 50 75%
\System\Context Switches/sec β€” 5000 /.

β€” 15000 /
\System\Processor Queue Length 2 *
\System\Processes
\System\Threads
\PhysicalDisk(_Total)\Current Disk Queue Length : 2 * , , - .

- , , , SAN , -.
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk sec/Read Current Disk Queue Lengt.  MDF NDF OLTP 20 . OLAP 30 . LDF 5 . , , 50 , -.  1 β€” 50-200 .
\PhysicalDisk(_Total)\Avg. Disk sec/Write

 
\Network interface(_Total)\Bytes Total/sec 65%
\Network interface(_Total)\Current Bandwidth Network utilization8 * \Network interface(_Total)\Bytes Total/sec / (Network Interface: Current Bandwidth) *100
   
\SQLServer:General Statistics\User Connections
\SQLServer:General Statistics\Processes blocked 0
\SQLServer:Buffer Manager\Buffer cache hit ratio - (OLTP), 1, 99% , , 90%, . 90% - .
\SQLServer:Buffer Manager\Page life expectancy , 300 ( 5 ) , .
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec 10  Batch Requests/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec 10  SQL Compilations/sec
\SQLServer:Access Methods\Page Splits/sec 20% Batch Requests/sec
\SQLServer:Access Methods\Forwarded Records/sec . , SQL Server , .
\SQLServer:Access Methods\Full Scans/sec ,   Index searches/sec
\SQLServer:Memory Manager\Target Server Memory (KB)
\SQLServer:Memory Manager\Total Server Memory (KB)
\SQLServer:Memory Manager\Free Memory (KB)
\SQLServer:Databases(_Total)\Transactions/sec
\SQLServer:Databases(*)\Transactions/sec
   
\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

\Process(sqlservr)\% Processor Time

\Process(sqlservr)\Private Bytes

\Process(sqlservr)\Virtual Bytes
   


Perhaps you have your opinion about equipment monitoring, come to the comments, write your thoughts, preferably with links to sources of knowledge.



All Articles