onstat命令
onstat命令
onstat -  : informix 数据库概要信息, 显示信息为:数据库版本、数据库状态、数据库运行时间、共享内存区大小
onstat -a (all) : 显示数据库全部信息,包括消息日志、配置文件信息、用户进程、事务信息等
onstat -b (buffer) :显示缓冲池中当前正在被修改的、包含在缓冲区头部的信息、和缓冲区概要信息
onstat -B (buffer all) :显示全部缓冲区信息
onstat -c (configfile) : 显示配置文件内容(例如:/opt/informix/etc/onconfig.pauper文件内容)
onstat -C (Cleaner) : 显示所有的B树清理进程状态
onstat -d (dbspace) : 所有 Dbspace 和所有 chunk 的信息(空间与使用情况)
onstat -D (DBSpace) : 类似 onstat -d,size, free, bpages 被 number of reads and writes 替换
ntdonstat -f (DataSkip status) : 显示当 Dbspace 出现错误的时候,被跳过的 Dbspace 的状态
onstat -G (Global Transaction) : 显示所有通过调用标准 TP/XA 调用而产生的全局事务信息
onstat -h (Hash Chain Info) : 显示缓冲哈希链的信息
onstat -i (Interactive Mode) : 进入 onstat 交互模式,进入后可以省略输入 onstat,直接输入选项
即可
onstat -j : 显示内存中 onpload control 表里所包含的状态
onstat -k : 显示当前系统中数据库对象的锁。锁的类型和持有时间由数据库的登录方式,隔离级别和程序设计决定
onstat -K :  和 -k 相同, 多了一个 same 数据
onstat -l (Logging) : 显示日志信息, 包括逻辑日志和物理日志
onstat -L (Lock Free List Distribution) : 可用的空锁列表
onstat -m (message log) : 显示消息日志的最后20行
onstat -o (output shared memory) : 将共享内存中的内容 dump 到一个指定的文件中
onstat -O (Optical Cache) : 子系统缓冲消息
onstat -p (Profile statistics) : 从系统启动到执行 onstat -z期间的OnLine的活动简要表统计信息
onstat -P (Partition Buffer Summary) : 缓冲区概要。表/索引编号、页数、变址页数目、数据页数目、其他页数目、常驻内存区数
onstat -r (Repeat) : 周期性的执行 onstat 命令,默认周期为5秒,例如:onstat -b -r
onstat -R (LRU Queues) : 当前 LRU 队列状态
onstat -s : 共享内存中,当前被用户进程所占有的资源锁信息
onstat -t : 当前正在被用户进程所访问的 TBLSpaces 信息
onstat -T : 所有曾被打开过的 TBLSpaces 信息
onstat -u (userthreads) : 系统中正在运行的用户进程
onstat -x : 系统中当前活动的事务
onstat -X : 正在使用和等待使用缓冲区的资源
onstat -z (Zero Profile Counts) : 重置所有的配置计数为0
Onstat -g选项:
2      ath:显示所有线程。
2      wai:显示等待线程。
2      act:显示活动线程。
2      rea:显示就绪线程。
2      sle:显示所有睡眠线程。
2      spi:显示循环(spin)锁
2      sch:显示VP调度统计
2      lmx:显示所有锁住的Mutexes
2      wmx:显示所有等待的Mutexes
2      con:显示所有条件等待
2      stk〈tid〉:卸出某个线程的堆栈
2      glo:显示多线程总体信息
2      mem 〈pool name|session id〉:显示内存使用信息
2      seg:显示内存段统计
2      rbm:显示驻留内存块位图
2      nbm:显示非驻留内存块位图
2      afr〈pool name|session id〉:显示己分配的内存段
2      ffr〈pool name|session ib〉:显示空闲的内存段
2      ufr〈pool name|session id〉:显示内存使用申请信息
2      iov:根据VP显示磁盘I/O统计
2      iof:根据chunk/文件显示磁盘I/O统计
2      ioq:根据队列显示磁盘I/O统计
2      iob:根据IO VP类显示big buffer使用统计
2      ppf[〈partition number〉:显示分片profiles
2      tpf[〈tid〉|0]:显示线程profiles
2      ntu:显示网络用户线程profiles
2      ntt:显示网络用户线程访问时间
2      ntm:显示网络消息信息
2      ntd:显示网络分派信息
2      nss〈session id〉:显示网络共享内存状态
2      nsc〈client id〉:显示网络共享内存状态
2      nsd:显示网络共享内存状态
2      ppf:显示分片读/写调用次数显示分片读/写调用次数显示分片读/写调用次数
2      sts:显示最大及当前的堆栈大小
2      dic:显示数据字典缓冲信息
2      qst:显示队列统计
2      wst:显示等待线程统计
2      prc:显示存储过程缓冲区信息
2      dsc:显示数据分布缓冲区信息
2      ses〈session id〉:显示会话信息
2      sql〈session id〉:显示SQL信息
2      dri:显示数据复制信息
Onstat -g ses
可运行onstat-g ses获得有关会话的信息。这个命令可用于取得客户程序的某些信息,如进程id号、注册名和主机名等:
2      session id:会话的id号。
2      login:客户程序进程的注册名
2      tty:客户程序进程的tty
2      pid:客户程序进程的进程id号
2      hostname:运行客户程序进程的机器的主机名
2      #RSAM threads:与会话有关的线程的个数,一般,一个会话只分配一个线程,除非发生排序或建立索引。
2      total memory:为该会话分配的OnLine共享内存
2      used memory:该会话己使用的OnLine共享内存
所有权为Informix并且进程id号为0的会话不属于用户,它们由数据库服务器内部使用。
如果给出一个会话的id, 如:
onstat-g ses 25
onstat-g ses命令还可列出有关该会话的更多的信息,会话中每个线程的信息如下:
2      tid:线程id号
2      name:线程名
2      rstcb:线程的rsam任务控制块的地址
2      flags:线程的状态信息。
2      curstk:线程的栈的大小
2      status:线程的当前状态
一般来说,每个会话只会看到一个线程,即sqlexec线程。但是,在排序或建立索引期间,可能会有多个线程。
Onstat -g ses session-id命令还可列出如下其它信息:
2      Name,Free,Used:这些列给出了会话中池的具体使用情况
2      Session Id:执行SQL语句的用户的会话id号,可以运行onstat-g ses命令得到用户名及对应的会话id号。
2      Stmt type:语句类型,诸如SELECT、UPDATE、DELEIE、INSERT
2      Current Database:会话中当前数据库的名字
2      Isolation level:当前隔离级(CR=committed read ,RR=repeatable read ,Cs=cursor stability ,DR=dirty read ,NL=no logging)
2      Lock mode:锁的当前状态(或者为Not Wait ,或者为Wait x,其中x为需要等待的秒数)
2      SQL ERR:最后的SQL错误
2      ISAM ERR:最后的ISAM错误
2      F.E.Vers:客户程序进程的Infomix版本
此外,由当前的SQL语句及会话创建的所有临时表也将列出。
Onstat -p
OnLine系统资源的最初配置有可能不满足系统的各种要求,可以使用onstat –p命令监控系统
资源。
Onstat -p命令给出的统计信息包括4个域:
2      ovtbls:指示tblspace资源不够
2      ovlock:指示锁资源不够
2      ovuserthresd:指示用户线程资源不够
2      ovbuf:指示缓冲区资源不够
上述各值偶尔非0并不意味着系统需要调整,但如果长持续增长,则说明系统需要调整。
监控锁冲突
观察Onstat -p命令输出结果的lockwaits列和lockreqs列,了解可能发生的锁的争用或冲突情况。必须等待的锁请求的百分比必须尽可能的小。
如果锁请求等待的百分比上升,应当检查以下几方面:
2      页级锁:可能是页级锁太多导致等待。在这种情况下,应当考虑使用行级锁。
2      表级锁:使用表级锁的应用程序应当考虑使用其它级别的锁
2      应用程序隔离级:检查隔离级设为RR和CS的部分,考虑是否可以使用DR

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。