如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完.
相反,异步I/O操作在后台运行,I/O操作和应用程序可以同时运行,提高了系统性能.
使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显.
因此象数据库,文件服务器等应用往往会利用异步I/O,使得多个I/O操作同时执行.
1. 如何知道是否需要异步I/O?
执行命令:"vmstat # #" 如果"wa"值超过25%.
执行命令:"iostat # #" 如果"%tm_act"值超过35%.
2. 应该设几个AIO服务器
通常设置aio server的计算公式,在AIX 5.2以后版本中是:
maxservers=(10 * number of logical disks / number of processors)
设置过多的aio server不会提高异步写的性能,因为瓶颈在磁盘上,而且也会引
起额外的内存消耗和CPU负载。
3.iostat -A命令也可以检测AIO的负载情况。
iostat -A
System configuration: lcpu=8 drives=3 paths=2 vdisks=0
aio: avgc avfc maxg maif maxr avg-cpu: % user % sys % idle % iowait
0 0 0 0 4096 0.0 0.1 99.9 0.0
" Disk history since boot not available. "
avgc 每秒非快捷方式异步I/O的请求的数量
avfc 每秒快捷方式异步I/O的请求的数量
maxg 每秒最大非快捷方式异步I/O的请求的数量
maxf 每秒最大快捷方式异步I/O的请求的数量
maxr 系统允许的最大异步I/O请求的数量,与maxreqs参数设置相同用户需要注意的是
如果avgc或maxg的值接近maxr的值,则需要调整maxreqs和maxservers参数,避免异步
I/O核心进程的数量成为瓶颈。如果使用裸设备,则用户可以参考avfc和maxf,由于快
捷方式不使用异步I/O队列,所以以上两个参数仅仅提供参考信息。
4. AIO驱动程序: bos.rte.aio
5. 配置AIO为可用: # smit chgaio ->
STATE to be configured at system restart [available]
修改aio maxservers和minservers的方法是:
chdev -P -l aio0 -a maxservers='4' -a minservers='30'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8362857/viewspace-612225/ ,如需转载,请注明出处,否则将追究法律责任。