PostgreSQL Deadlocks Test
A database deadlock is a situation in which two or more transactions are waiting for one another to give up locks. Because both transactions are waiting for a resource to become available, neither ever release the locks it holds.A deadlock causes one transaction to be aborted and the transaction must be restarted by the database server. This inturn causes more severe damage. If a deadlock occurs very often, it severely affects the performance of the database server. To avoid such critical situations, administrators need to constantly keep a vigil on the count of deadlocks and waiting time. The PostgreSQL Deadlocks Test helps administrators in this regard!
This test reports the number of deadlocks that occurred and also the maximum waiting time, which helps administrators to detect and resolve the bottleneck condition before it affects the performance of the server.
Note:
For this test to run and collect metrics , the pre-requsite mentioned in How does eG Enterprise Monitor PostgreSQL Server?
Target of the test : PostgreSQL server
Agent deploying the test: An internal/remote agent
Outputs of the test :One set of results for the target PostgreSQL server being monitored.
Parameter | Description |
---|---|
Test period |
How often should the test be executed |
Host |
The IP address of the host for which this test is to be configured. |
Port |
The port on which the server is listening. The default port is 5432. |
Password Profile |
This list box appears only if one or more password profiles are created for the target host. Typically, to protect the critical servers/services from malicious attacks by online predators, administrators of secured IT environments frequently change the access credentials for the critical servers and services. Once a password is changed, all tests that take that password as a parameter will stop working, until such time the administrator manually reconfigures each test and changes the password. To avoid such anomalies and save administrators the time and effort involved in manually changing the password of tests, eG Enterprise allows the creation of one/more password profiles. With the password profiles, administrators no longer need to manually configure the credentials; instead, they only need to select the Password Profile that contains the credentials to be passed to the test. This means that if a password changes/expires subsequently, it would suffice to change the corresponding Password Profile alone. All the tests configured with that Password Profile will automatically assume the new password. Once, you select a password profile from the Password Profile list box, the user credentials will be automatically populated in the corresponding text boxes that follow the Password profile list box. If you do not want to use the password profiles, then, you can ignore selecting the password profile from the list box and manually configure the user credentials. |
Username |
In order to monitor a PostgreSQL server, you need to manually create a special database user account in every PostgreSQL database instance that requires monitoring. To know how to create such a user based on where the target PostgreSQL server is installed (whether on-premises or hosted on Cloud), refer to How does eG Enterprise Monitor PostgreSQL Server?. |
Password |
The password associated with the above Username (can be ‘NULL’). Here, ‘NULL’ means that the user does not have any password. |
Confirm Password |
Confirm the Password (if any) by retyping it here. |
DB Name |
The name of the database to connect to. The default is “postgres”. |
SSL |
This indicates that the eG agent will communicate with the PostGreSQL Database via HTTPS or not. By default, this flag is set to No, as the target PostGreSQL database is not SSL-enabled by default. If the target database is SSL-enabled, then set this flag to Yes. |
Verify CA |
If the eG agent is required to establish an encrypted connection with the target PostGreSQL Database server by authenticating the server's identity through verifying the server CA certificate, set Verify CA flag to Yes. By default, this flag is set to No. |
CA Cert File |
This parameter is applicable only if the target PostGreSQL Database is SSL-enabled.The certificate file is a public-key certificate following the x.509 standard. It contains information about the identity of the server, such as its name, geolocation, and public key. Each nodes of the target cluster can have individual certificate files or a single certificate can be used to access all the nodes in the cluster. Essentially, it’s a certificate that the server serves to the connecting users to prove that they are what they claim to be. Therefore, specify the full path to the server root certificate or certificate file that is signed by the CA in .crt file format for all/each node in the CA Cert File text box. For example, the location of this file may be: C:\app\eGurkha\JRE\lib\security\PostGreQL-test-ca.crt. By default, this parameter is set to none. This parameter specification differs according to the type of cluster and configuration: If the certificate file is available for each node of the PostGreSQL Cluster then, provide a comma-seperated list of full path to the certificates in CA Cert File text box: For example:C:\app\eGurkha\JRE\lib\security\postgresql-test-ca.crt,C:\app\eGurkha\JRE\lib\security\postgresql-test-ca2.crt,C:\app\eGurkha\JRE\lib\security\postgresql-test-ca3.crt Specify the full path to the certificate file of the target PostGreSQL Database if a single certificate is used to access all nodes. For example: C:\app\eGurkha\JRE\lib\security\postgresql-test-ca.crt |
Client Cert File |
This parameter is applicable only if the target PostGreSQL Database is SSL-enabled. In order to collect metrics from the target MongoDB cluster, the eG agent requires client certificate in .p12 format. Hence, specify the full path to the Client certificate file in .p12 format in the Client Cert File text box. For example, the location of this file may be: C:\app\eGurkha\JRE\lib\security\test-client.p12. |
Client Key File |
A client key file refers to a file containing the private key that corresponds to the public key used by a client. Provide full path of the file containing client key. |
DD Frequency |
Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency. |
Detailed Diagnosis |
To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option. The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:
|
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Deadlocks |
Indicates the number of deadlocks occurred in the target database Server. |
Number |
A deadlock may arise due to various situations including bad design of queries and deficient coding practices. A deadlock is a situation where both/all the lock requestors are in a mutual or a multi-way tie. Any deadlocks are detrimental to database application performance. The detailed diagnosis of this measure shows that information about the Database name, User name, Client host name, Client Port, Query start, Waiting duration (in seconds), State message, and Query text. |
Maximum waiting time |
Indicates the maximum duration of the deadlock. |
Seconds |
A low value is desired for this measure. |