During actual deployments, storage devices are often frequently accessed by various service applications such as videos on demand, monitoring videos, online music, and other multi-media applications. The storage device must have high I/O performance to meet various applications. Combining the actual deployment experience, this case provides a method for analyzing the read/write performance of the S5100. Suppose that the OS of the host is SUSE Linux.
Step 1 View the status of the system CPU. Run the vmstat 1 command on the service host. 1 indicates the interval for collecting the system status and the unit is second. In the result, pay attention to four parameters. us indicates the CPU resources consumed by user processes. sy indicates the CPU resources consumed by kernel processes. id indicates the remaining CPU resources. wa indicates the CPU resources consumed by I/O Wait. The sum of these four parameters is 100%. If the value of wa is larger than 50% and the value of id is smaller than 10% continuously, the I/O performance may be abnormal.
Step 2 View the system meminfo. Run the watch ?d cat /proc/meminfo command on the service host. In the result, observe the value changes of memfree and dirty. memfree indicates the remaining memory capacity. dirty indicates the dirty data capacity. If the value of memfree is small, the value of dirty is large, and the dirty value decreases slightly with each time the dirty data is flushed, it indicates that the I/O performance of the system is abnormal.
Step 3 Observe the I/O status of the host file system. Run the iostat ?x 1 3 command on the service host. 1 indicates the time of collecting the I/O status and the unit is second. 3 indicates the collection times. In the result, observe the value of util in the last column. If the util value of a file system is large continuously, close to or larger than 100%, it indicates that the file system is the bottleneck of the I/O performance.
Step 4 Observe the I/O status of the S5100. If the S5100 LUNs are mapped to the file system whose I/O state is abnormal in Step 3 , the I/O status of the S5100 needs to be further analyzed. Log in to the S5100 by using the SSH tool and enter debug bash and default password 654321. Run the iostat ?x 1 3 command. Compare the result with the host file system whose I/O state is abnormal. Observe the util value of the disk or the LUN. If util value is large continuously, close to or larger than 100%, it indicates that the disk or the LUN is the bottleneck of the I/O performance.
Step 5 Perform an I/O test for the disk whose I/O state is abnormal. Run the iotest -b 64k -m 5 -o r -f /dev/sdb -u 2 command under debug bash. -b indicates the size of the data block to be tested. -m indicates the test method. 5 indicates random read/write. -o indicates choice of a read or write operation. r indicates a read operation. -f indicates the address of disk to be tested. -u indicates the test interval and the unit is second. In this example, the interval is two seconds. Usually, the IOPS of a disk is 70. If the IOPS in the test result is smaller than 30, it indicates that the disk is the bottleneck of the I/O performance.
The causes include but are not limited to disk failure, performance deterioration, high frequency of server dirty data flushing, and I/O queue block.
The cause to I/O performance abnormality can be simply analyzed by using the methods mentioned above. A specific application scenario requires a specific solution.