PRIMECLUSTER Global File Services Configuration and Administration Guide 4.2 (Solaris(TM) Operating Environment) |
Contents Index |
Part 2 Global File Services Local File System | > Chapter 9 Performance and Tuning | > 9.2 Performance and Tuning |
Each GFS Local File System is divided into the following internal components:
While monitoring the performance of the file system, check for performance bottlenecks in each of these components.
a) File system operation component
The file system operation component is responsible for operations such as mount, unmount, and sync.
The mount and unmount operations have no relationship with general performance problems. In GFS Local File System, the sfxstat(1M) command can be used to see the number of times the log write daemon is requested to reflect disk updates at sync request. If the user explicitly specifies frequent execution of the sync command or sync(2) system call, review the number of times the call is issued if it is primarily executed to request start of the log write daemon and log write I/O is the bottleneck.
b) File operation component
For the file operation component, the number of times read and write system calls are issued in the entire system can be determined by specifying the -c option of the sar command.
Specific individual information cannot be obtained for other system calls.
c) File data management component
For the file data management component, the number of times read and write system calls are issued and the number of blocks (in units of 8 kilobytes) can be determined by specifying the -i option of the sfxstat(1M) command.
GFS Local File System assigns the data in the file data part so that reading or writing is as contiguous as possible. The area may not be contiguous, however, depending on the area acquisition status.
If the value of readblks/readcnts or writeblks/writecnts is near 1, allocation of the data part may be fragmented, lowering the performance of sequential read or write operations.
If possible, the area should be defragmented, or the file should be copied by a command such as sfccp(1) the file deleted, and the data copied back to a new file by a command such as sfcmv(1). This method enables contiguous reallocation of the area.
If the direct I/O function is used, the -d option of the sfxstat(1M) command can be specified to confirm the direct I/O read count, write count, number of read blocks, number of write blocks, number of times a read becomes normal I/O, number of times a write becomes normal I/O, number of times page flash is executed after read, and number of times page flash is executed after a write.
If the direct I/O function is used, two methods of tuning are assumed: Improvements on the application side such as changing I/O size and boundary condition, and improvements by defragmenting the area to be contiguous as stated above.
d) Meta-data cache management component
For the meta-data cache management component, the access count, cache hit count, update count for each cache type of meta-data, and read count for each type of meta-data can be confirmed by the -c option of the sfxstat(1M) command.
If the ratio of cache hit counts to meta-data cache access counts is low, the cache area for the system meta-data might be insufficient.
The current GFS Local File System allows the user to set the following items:
- Number of caches for extent area management (LEAF, NODE)
- Number of caches for directory data (DIR)
- Number of caches for disk i-nodes (DINODE)
- Number of caches for quota data (QUOTA)
If the cache hit rate for any of the above areas (cachehit/access * 100) is less than 30%, performance may be improved by resetting the following tuning parameters.
e) Meta-data disk update component (meta-data write daemon)
The write count, write time, and average write time for each meta-data cache can be confirmed by the -c option of the sfxstat(1M) command.
If the update count per second (mod) is 100 or more and the write count (W-I/O) ratio is near 1, the holding time for the actual disk update after update may be restricted by factors such as the update log area.
First, if the mlogfull item exceeds 10 per second for more than one minute, the performance may be improved by using the -m option of the sfxstat(1M) command to take the following actions:
- Expand the update log area (if the update log area is in another partition).
- Assign the update log area to another partition (if the update log area is in the representative partition).
To expand the update log area, use the sfxadm(1M) command. To assign the update log area to another partition, re-create the file system. Refer to the command reference for details of the sfxadm(1M), mkfs_sfxfs(1M) and sfxnewfs(1M) commands.
If the update log area is not causing the problem, the cache area for meta-data in the system is assumed insufficient. The area full count for each meta-data cache is displayed for METAFULL, which is displayed by the -m option of the sfxstat(1M) command.
The current GFS Local File System enables the user to set the following items:
- Number of caches for extent area management (LEAF, NODE)
- Number of caches for directory data (DIR)
- Number of caches for disk i-nodes (DINODE)
- Number of caches for quota data (QUOTA)
If any of the above areas frequently goes into METAFULL state (an area shortage occurs one or more times), the performance may be improved by resetting the following tuning parameters.
f) Update log memory recording component
The following items of the update log memory recording component can be confirmed by the -l option of the sfxstat(1M) command:
- Log buffer full count (lbfull)
- Sleep count for excessive transactions (ltfull)
- Log disk full sleep count (ldfull)
- Sleep count for large preceding transaction (logbig)
- Sleep count for excessively large preceding transaction (logbigx)
- Log-oriented processing request count (lntrans), log-oriented processing parallel operation (lpara)
- Average parallel operation count (lave), large buffer use count (lbigbuf)
- Subtransaction occurrence count (lsubtrn)
If ldfull frequently indicates a value other than 0, performance may be improved by reviewing the disk update component. This is discussed in the next few paragraphs.
g) Disk update component of update log (log write daemon)
The following items on the update log disk update component (log write daemon) can be confirmed by the -l option of the sfxstat(1M) command:
- Log daemon start count (lwakeup)
- Log daemon I/O issue count (lnwrite)
- Write time (lms)
- Number of write blocks (lnblks)
- Number of valid blocks (loccupy)
If the number of times the log daemon issues an I/O request exceeds 10 per second and the average I/O time (lms/lnwrite) exceeds 100 ms, performance may be improved by assigning the update log area to another independent partition.
To assign the update log area to another partition, re-create the file system. Refer to the command reference for details of the mkfs_sfxfs(1M) and sfxnewfs(1M) commands.
If ldfull frequently indicates a value other than 0, performance may be improved by expanding the update log area (for the update log area in another partition). To expand the update log area, unmount the file system currently being used and specify an appropriate log size by the -L option of the sfxadm(1M) command. Refer to the command reference for details of the sfxadm(1M) command.
Contents Index |