1. Monitor disk I/O performance through monDeviceIO and monIOQueue in the MDA table
These two tables are part of the MDA monitoring table, which allows you to determine whether there is a problem with I/O. In other words, when ASE is doing a lot of I/O, does the host operating system complete it in time or not? The information in these two tables tells us the average disk working time over a period of time, which devices have done the most I/O, and how many I/Os are in the queue because the host cannot process them in time. It is generally believed that if your host is connected to a SAN, each I/O exceeding 10 milliseconds is very bad, 9~5 is also relatively slow, and less than 4 is relatively normal. If you feel that the I/O performance is unacceptable, it is a good idea to spread the I/O to multiple disks or LUNs. You can use the monOpenObjectActivity table to determine which objects are "hot spots" and move them from the same disk.
2. Monitor the operating system through iostat and vmstat to see if the "hot spots" disk and the MDA table are consistent
Further confirm the values in the MDA table by monitoring the disk and I/O at the operating system level.
3. Confirm that the libaio library has been installed
Whether libaio is installed depends mainly on whether it is installed by default when the Linux operating system is released. This library provides asynchronous I/O for ASE (other I/O methods include "standard UNIX synchronous I/O" and "UFS cache I/O"). ASE 15 requires this library to be installed. If the ASE database is not available, it will not start.
Different versions of Linux handle the llibaio library differently. You need to query the corresponding instructions to confirm whether it has been installed and how to obtain and install it.
4. If you use the file system, please make sure that DSYNC is not turned on
DSYNC is simply this: when you create a database device with disk init, ASE will write this file synchronously to ensure that the data is written successfully and can be recovered. In earlier versions, ASE needs to turn it on. If it is turned off and the file buffer is used, if there is a problem when writing data or recovering (recovery), the system may fail or even crash the ASE database.
If you use ASE 15 or higher, you need to turn DSYNC off and turn DIRECTIO on. This way, writing to the disk will be done in a similar way to raw partitions.
If you use raw partitions, these two parameters are turned off by default, and they should always be turned off.
5. Check the mount options
If you are using a file system device, you need to check the mount options to confirm whether there is a bottleneck.
For example, the default mount option is ext3, but its files cannot provide the best performance as database devices; "noatime, nodiratime, data=writeback" can improve performance. The XFS file system has better performance than ext3 (or ext2).
6. Confirm that /etc/sysctl.conf is set correctly
This parameter determines the core parameters of the operating system and takes effect at each startup (at runtime, you can use "sysctl -p"). For ASE applications, it is recommended to set the following two key parameters: kernel.shmmax shared memory, fs.aio-max-nr maximum asynchronous I/O