Aix平台打开异步io需要fileset支持
引用
# lslpp -l bos.rte.aio
  Fileset                      Level  State      Description        
  ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
  bos.rte.aio               5.3.0.60  COMMITTED  Asynchronous I/O Extension
Path: /etc/objrepos
  bos.rte.aio               5.3.0.60  COMMITTED  Asynchronous I/O Extension

查看异步io是否已经打开,available表示已经开启
引用
# lsattr -El aio0
autoconfig available STATE to be configured at system restart True
fastpath   enable    State of fast path                       True
kprocprio  39        Server PRIORITY                          True
maxreqs    4096      Maximum number of REQUESTS               True
maxservers 10        MAXIMUM number of servers per cpu        True
minservers 1         MINIMUM number of servers                True
引用
# aioo -a
               minservers = 1
               maxservers = 10
                  maxreqs = 4096
               fsfastpath = 0
当然也可以通过以下命令启用aio
引用
# chdev -P -l aio0 -a autoconfig='available'
aio0 changed
修改maxreqs时报如下错误
引用
# chdev -l aio0 -a maxreqs=16384
Method error (/usr/lib/methods/chgaio):
        0514-064 Cannot perform the requested function because the
                 AIO kernel extension is permanent and cannot be unloaded.
解决办法如下
引用
#  chdev -l aio0 -P  -a maxreqs=16384
aio0 changed
可以仔细了解一下-P参数的作用
引用
-P
Changes the device's characteristics permanently in the Customized Devices object class without actually changing the device.This is useful for devices that cannot be made unavailable and cannot be changed while in the available state. The change ismade to the database, and the changes are applied to the device when the system is rebooted. This flag cannot be used withthe -T flag. Not all devices support the -P flag.

查看aio进程数
引用
# pstat -a | grep aio
20 a    1478      1   1478     0     0     1  posix_aioserver 
21 a    1540      1   1540     0     0     1  aioserver 
48 a    30c4      1   30c4     0     0     1  aioserver 
50 a    3250      1   3250     0     0     1  aioserver 
68 a    44be      1   44be     0     0     1  aioserver 
75 a    4baa      1   4baa     0     0     1  aioserver 
76 a    4ca6      1   4ca6     0     0     1  aioserver 
80 a    50b6      1   50b6     0     0     1  aioserver 
89 a    59bc      1   59bc     0     0     1  aioserver 
125 a    7d28      1   7d28     0     0     1  aioserver 
127 a    7f0c      1   7f0c     0     0     1  aioserver 

查看目前系统异步io是否遇到瓶颈
引用
# iostat -A 1 1
System configuration: lcpu=1 drives=3 paths=0 vdisks=0
aio: avgc avfc maxg maif maxr avg-cpu: % user % sys % idle % iowait
        0    0   33    0 4096             0.4   0.8   98.8      0.0
Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk1           0.0       0.0       0.0          0         0
hdisk0           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0

下面的列表描述了用于监视 AIO 子系统的一些参数。
* avfc:这个参数用于报告在指定的时间间隔内每秒的平均快速路径请求计数。
    * avgc:这个参数用于报告在指定的时间间隔内每秒的平均全局异步 I/O 请求。
    * maxgc:这个参数用于报告从上一次获取这个值以来最大的全局异步 I/O 请求。
    * maxfc:这个参数用于报告从上一次获取这个值以来快速路径请求计数的最大值。
    * maxreqs:这个参数是允许的、异步 I/O 请求的最大值。
在我们的示例中,AIO 服务器不是系统瓶颈。
需要注意的是在AIX 6L中异步io会自动开启,maxreqsminservers、maxservers也会根据应用而自动调整,无须人工干预,当然也没有smitty aio这条命令了,呵呵
附:metalink的说明
Solution
AIX 5L supports asynchronous I/O (AIO) for database files created both on file system partitions and on raw devices.
AIO on raw devices is implemented fully into the AIX kernel, and does not require database processes to service the AIO requests.
When using AIO on file systems, the kernel database processes (aioserver) control each request from the time a request is taken off the queue to the time it is completed. The number of aioserver servers determines the number of AIO requests that can be processed in the system concurrently. So, it is important to tune the number of aioserver processes when using file systems to store Oracle Database data files.
Use one of the following commands to set the number of servers. This applies only when using
asynchronous I/O on file systems rather than raw devices:
smit aio
chdev -l aio0 -a maxservers=' m ' -a minservers='n'
Set the minimum value to the number of servers to be started when the system is started. Set the maximum value to the number of servers that can be started in response to a large number of concurrent requests. These parameters apply to file systems only. They do not apply to raw devices.
The default value for the minimum number of servers is 1. The default value for the maximum number of servers is 10. These values are usually too low to run Oracle Database on large systems with 4 CPUs or more, if you are not using kernelized AIO. Oracle recommends that you set the parameters to the values listed in the following table.
Parameter Values
=============

minservers
Oracle recommends an initial value equal to the number of CPUs on the system or 10, whichever is lower.

maxservers
Starting with AIX 5L version 5.2, this parameter counts the maximum number of AIO servers per CPU. On previous versions of AIX, it was a systemwide value. If you are using GPFS, then set maxservers to worker1threads divided by the number of CPUs. This is the optimal setting.
Increasing maxservers does not lead to improved I/O performance. If you are using JFS/JFS2, then set the initial value to 10 times the number of logical disks divided by the number of CPUs.

Monitor the actual number of aioservers started during a typical workload using the pstat or ps commands. If the actual number of active aioservers is equal to the maxservers, then increase the maxservers value.

maxreqs
Set the initial value to 4 times the number of logical disks multiplied by the queue depth. You can determine the queue depth by running the following command:
$ lsattr -E -l hdiskxx
Typically, the queue depth is 3.
If the value of the maxservers or maxreqs parameter is set too low, then the following warning messages are repeatedly displayed:
"Warning: lio_listio returned EAGAIN
Performance degradation may be seen."
You can avoid these errors by increasing the value of the maxservers parameter. To display the number of AIO servers running, enter the following commands as the root user:
# pstat -a | grep -c aios
# ps -k | grep aioserver
Check the number of active AIO servers periodically, and change the values of the minservers and maxservers parameters if required. The changes take place when the system is restarted.

 

转载于:https://blog.51cto.com/kevinel/773242

Aix平台打开异步io需要fileset支持相关推荐

  1. AIX的异步IO设置

    AIX的异步IO需要bos.rte.aio文件集的支持 #lslpp -l bos.rte.aio   Fileset                      Level  State      D ...

  2. linux支持异步io吗,Linux 异步IO

    io_submit.io_setup和io_getevents示例 [摘要:注:本宣布正在 io_submit.io_setup战io_getevents战LINUX上的AIO体系挪用.那有一个特别很 ...

  3. Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)

    一.进程: 1.语法 2.进程间通讯 3.进程池 二.Gevent协程 三.Select\Poll\Epoll异步IO与事件驱动 一.进程: 1.语法 1 简单的启动线程语法 2 def run(na ...

  4. Node - 异步IO和事件循环

    前言 学习Node就绕不开异步IO, 异步IO又与事件循环息息相关, 而关于这一块一直没有仔细去了解整理过, 刚好最近在做项目的时候, 有了一些思考就记录了下来, 希望能尽量将这一块的知识整理清楚, ...

  5. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO

    Python-协程-阻塞IO-非阻塞IO-同步IO-异步IO 一.协程 协程又称为微线程 CPU 是无法识别协程的,只能识别是线程,协程是由开发人员自己控制的.协程可以在单线程下实现并发的效果(实际计 ...

  6. Day10-Python3基础-协程、异步IO、redis缓存、rabbitMQ队列

    内容目录: Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko S ...

  7. 【进阶】 --- 多线程、多进程、异步IO实用例子

    [进阶] --- 多线程.多进程.异步IO实用例子:https://blog.csdn.net/lu8000/article/details/82315576 python之爬虫_并发(串行.多线程. ...

  8. Python 异步 IO 、协程、asyncio、async/await、aiohttp

    From :廖雪峰 异步IO :https://www.liaoxuefeng.com/wiki/1016959663602400/1017959540289152 Python Async/Awai ...

  9. SQLite剖析之异步IO模式、共享缓存模式和解锁通知

    1.异步I/O模式     通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLi ...

  10. Centos 异步 IO framework io_uring,基本原理,程序示例与性能压测

    尊重原创版权: https://www.conghengx.com/hot/37285.html 更多内容参考: https://www.conghengx.com/ Linux 异步 I/O 框架 ...

最新文章

  1. lk中内联调用的dsb()
  2. 业务专题篇:用户增长分析
  3. java mapfile_基于文件的数据结构:关于MapFile
  4. sklearn分类器性能评估
  5. 项目小记: IFRAME引起内存泄露的解决方法
  6. Tricks(二十七)—— 如何在不使用 np.argsort 的情况下获得排序后元素的下标
  7. Echarts数据可视化parallel平行坐标系,开发全解+完美注释
  8. 判断服务是否开启,应用是否安装,并安装应用
  9. J2EE项目数据字典设计
  10. Java实现图书馆管理系统(重构版,数据库存储数据)
  11. uni.navigateTo传参
  12. bug的严重程度级别,bug的定义
  13. doctrine 关系
  14. 华为OD社招Java岗面经,已OFFER
  15. 关于阻止迅雷上传,带慢计算机的工具
  16. Delphi的多线程开发实例
  17. Navicat使用指南(一)
  18. Pandas处理数据遇到的问题与解决
  19. 白手起家的他,创立公司,身价达到数千万
  20. ccs低版本打开高版本的工程问题

热门文章

  1. Linux网络技术学习(二)—— net_device数据结构解析
  2. (十五)Python中级知识-线程模块
  3. 打开计算机管理的常用方法,电脑中的“计算机管理”界面打开方法大全
  4. vue获取地址栏参数值
  5. 柳神PAT甲级真题目录
  6. 国内主流虚拟化厂商之间比较
  7. JavaScript实现Sleep效果
  8. 报告显示,宝爸参与度不断提升,超三成男性提前服用营养品备孕
  9. 关于explain plan的使用!
  10. sox处理mp3_sox的常用方法