Oracle Other File IO Statistics Test

An Oracle database can typically consist of data files, control files, redo log files, temporary files, archive log files, and files of many other types. If I/O requests to any of these files experience processing bottlenecks, it is bound to adversely impact user experience with the Oracle database server. If this is to be avoided, administrators should closely track read/write requests to each of these files, measure how quickly the server handles these requests, and initiate pre-emptive action upon the first sign of a processing latency. This is where the eG agent helps. The eG agent periodically runs the Oracle Datafile IO Statistics test and points administrators to latencies in I/O requests to datafiles. Likewise, at configured intervals, the eG agent runs the Oracle Temporary File IO Statistics test to enable administrators to spot latencies when processing requests to temporary files.

Similarly, to determine whether/not requests for any of the other files in an Oracle database are processed slowly, administrators can configure the eG agent to run the Oracle Other File IO Statistics test at regular intervals. This test auto-discovers the archive log files, redo log files, control files, etc., in the Oracle databases and reports the time taken by the server for processing single block and multiblock I/O requests to each file. This way, the test points you to current/probable latencies when processing  I/O requests to archive, redo log, control files, and others. The exact file, when reading from/writing to which, the latency was maximum can also be identified.

Target of the test : An Oracle 12c server

Agent deploying the test : An internal agent

Outputs of the test : One set of results for every file other than datafiles and temp files on the Oracle server.

Configurable parameters for the test
  1. TEST PERIOD - How often should the test be executed
  2. Host – The host for which the test is to be configured
  3. Port - The port on which the server is listening
  4. User – In order to monitor an Oracle database server, a special database user account has to be created in every Oracle database instance that requires monitoring. A Click here hyperlink is available in the test configuration page, using which a new oracle database user can be created. Alternatively, you can manually create the special database user. When doing so, ensure that this user is vested with the select_catalog_role and create session privileges.

    The sample script we recommend for user creation (in Oracle database server versions before 12c) for eG monitoring is:

    create user oraeg identified by oraeg

    create role oratest;

    grant create session to oratest;

    grant select_catalog_role to oratest;

    grant oratest to oraeg;

    The sample script we recommend for user creation (in Oracle database server 12c) for eG monitoring is:

    alter session set container=<Oracle_service_name>;

    create user <user_name>identified by <user_password> container=current default tablespace <name_of_default_tablespace> temporary tablespace <name_of_temporary_tablespace>;

    Grant create session to <user_name>;                                

    Grant select_catalog_role to <user_name>;

    The name of this user has to be specified here.

  5. Password – Password of the specified database user

    This login information is required to query Oracle’s internal dynamic views, so as to fetch the current status / health of the various database components.

  6. Confirm password – Confirm the password by retyping it here.
  7. listener name – Specify the Oracle listener name. By default, this will be the same as the Oracle SID.
  8. ISPASSIVE – If the value chosen is yes, then the Oracle server under consideration is a passive server in an Oracle cluster. No alerts will be generated if the server is not running. Measures will be reported as “Not applicable" by the agent if the server is not up.
  9. SSL- By default, this flag is set to No, as the target Oracle database is not SSL-enabled by default. If the target database is SSL-enabled, then set this flag to Yes.
  10. SSL Cipher-This parameter is applicable only if the target Oracle database is SSL-enabled, if not, set this parameter to none. A cipher suite is a set of cryptographic algorithms that are used before a client application and server exchange information over an SSL/TLS connection. It consist of sets of instructions on how to secure a network through SSL (Secure Sockets Layer) or TLS (Transport Layer Security). In this text box, provide a comma-seperated list of cipher suites that are allowed for SSL/TLS connection to the target database. By default, this parameter is set to none.
  11. TRUSTSTORE FILE- This parameter is applicable only if the target Oracle database is SSL-enabled, if not, set this parameter to none. TrustStore is used to store certificates from Certified Authorities (CA) that verify and authenticate the certificate presented by the server in an SSL connection. Therefore, the eG agent should have access to the truststore where the certificates are stored to authenticate and connect with the target database and collect metrics. For this, first import the certificates into the following default location <eG_INSTALL_DIR>/lib/security/mytruststore.jks. To know how to import the certificate into the truststore, refer toPre-requisites for monitoring Oracle Cluster. Then, provide the truststore file name in this text box. For example: mytruststore.jks. By default, none is specified against this text box.
  12. TRUSTSTORE TYPE-This parameter is applicable only if the target Oracle database is SSL-enabled, if not, set this parameter to none.Specify the type of truststore that contains the certificates for server authentication in this text box. For eg.,JKS. By default, this parameter is set to the value none.
  13. TRUSSTORE PASSWORD-This parameter is applicable only if the target Oracle database is SSL-enabled, if not, set this parameter to none. If a Truststore File name is provided, then, in this text box, provide the password that is used to obtain the associated certificate details from the Truststore File. By default, this parameter is set to none.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Multiblock read time:

Indicates the time taken by this file to service multiblock I/O requests during the last measurement period.

 

Secs/Read

Multiblock I/O read means reading multiple database blocks with a single operating system READ call. Typically, a database block is 8 KB. A single block read call results in one of these 8 KB blocks read from the datafile. Where a lot of data is to be read, it would be less efficient and more resource-intensive to read single blocks of data of 8KB each when the underlying I/O system is capable of reading say, 1 MB in one read. Oracle therefore issues a multiblock I/O and requests 1MB worth of block (128 8kb blocks) in one system READ call rather than 128 individual requests and therefore speeds up performance of the I/O requests.

A very high value of this measure could indicate a bottleneck when processing multiblock read requests to a particular file. Compare the value of this measure across files to accurately identify that file from which multiple blocks of data were read from most slowly.

Singleblock read time:

Indicates the time taken for singleblock reads from this file during the last measurement period.

Secs/read

Typically, a database block is 8 KB. A single block read call results in one of these 8 KB blocks read from the datafile. Where a lot of data is to be read, it would be less efficient and more resource-intensive to read single blocks of data of 8KB each when the underlying I/O system is capable of reading say, 1 MB in one read.

A very high value of this measure could indicate a bottleneck when processing single block read requests to a particular file. Compare the value of this measure across files to accurately identify that file from which a single block of data was read from most slowly.

Multiblock write time:

Indicates the time taken for multiblock writes into this file during the last measurement period.

 

 

Secs/write

Multiblock I/O write means writing multiple database blocks to a file with a single operating system WRITE call.

A very high value of this measure could indicate a bottleneck when processing multiblock write requests to a particular file. Compare the value of this measure across files to accurately identify that file to which multiple blocks of data were written most slowly.

Singleblock write time:

Indicates the time taken for singleblock writes to this file during the last measurement period.

Secs/write

In case of a singleblock write, a write call results in a single 8KB block being written into the file. If a lot of data is to be written to a file, single block writes can significantly increase I/O processing overheads and related resource costs.

A very high value of this measure could indicate a bottleneck when processing single block write requests to a particular file. Compare the value of this measure across files to accurately identify that file to which a single block of data was written most slowly. 

Sync read latency:

Indicates the average latency for singleblock synchronous reads for single request since last test cycle on this file.

Msecs/request

If there is a high latency for critical files, you may want to consider relocating these files to improve their service time.

IO time since last measure:

Indicates the time taken by IOPS on this file during the last measurement period.

Secs

A high value could indicate a processing bottleneck. Compare the value of this measure across files to identify that file, the reads and writes to which take the maximum time.