可以使用 onstat -p 命令显示自启动数据库服务器以来或自运行 onstat -z
命令以来的概要文件计数的信息。
示例输出
图: onstat -p 命令输出
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
16934 47321 203600361 99.99 103113 158697 950932 89.16
isamtot open start read write rewrite delete commit rollbk
139214865 9195777 12257208 94191268 362691 55696 38134 128294 24
gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
39 2 27 51 0 0 16
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 1551.59 144.82 1822 1822
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
176 1 195872383 0 0 1 39331 1259170
ixda-RA idx-RA da-RA logrec-RA RA-pgsused lchwaits
0 7594 2124 0 2002 18848
输出描述
输出的第一部分描述读取和写入。
读和写分成三类:从磁盘、从缓冲区以及页数(读取或写入)
第一个 %cached 字段衡量从缓冲区的读取数与从磁盘的读取数之比。第二个 %cached 字段衡量写入缓冲区的数量与写入磁盘的数量之比。
数据库服务器对信息执行缓冲并将其写入磁盘(以页为单位)。出于这个原因,以
dskwrits 显示的磁盘写入数通常小于个别用户执行的写入数:
- dskreads
- 实际的磁盘读取数
- pagreads
- 页读取数
- bufreads
- 共享内存读取数
- %cached
- 缓冲池中已高速缓存的读取数百分比
如果 bufreads 超过最大 integer (或
long)值,那么其内部表示变成负数,但值显示为 0.0
- dskwrits
- 对磁盘的物理写入的实际数量
该数字包含对 onstat -l 中所报告的物理和逻辑日志的写入数
- pagwrits
- 已写入页的数量
- bufwrits
- 共享内存写入数
- %cached
- 缓冲池中已高速缓存的写入数百分比
-p 的下一部分显示已执行不同类
ISAM
调用的次数的制表。这些调用发生在操作的最底层,并且不必与
SQL 语句一对一对应执行。单个查询可能产生多个
ISAM 调用。这些统计信息通过数据库服务器产生并且不能用来监视单个数据库上的活动,除非只有一个数据库是活动的或只存在一个数据库
- isamtot
- 调用总数
- open
- 当 tblspace 打开时增加
- start
- 增加索引中的指针
- read
- 当调用读取函数时增加
- write
- 当每次写调用时增加
- rewrite
- 当发生更新时增加
- delete
- 当删除行时增加
- commit
- 每次执行 iscommit() 调用时增加
该值与已执行的显式 COMMIT WORK 语句之间不存在一对一的对应关系
- rollbk
- 当事务回滚时增加
onstat -p 命令输出的下一部分显示有关一般页的信息。一般页管理提供一个 API 让
GBase 8s
来管理数据库服务器缓冲池中的非标准页。下表描述了
onstat -p 命令输出中的 Generic Page Manager 。
- gp_read
- 一般页读取数
- gp_write
- 一般页写入数
- gp_rewrt
- 一般页更新数
- gp_del
- 一般页删除数
- gp_alloc
- 一般页分配数
- gp_free
- 已释放并返回给 tablspace 的一般页数
- gp_curs
- 用于一般页的游标数
onstat -p 命令输出的下一部分显示了请求资源时没有可用资源的次数:
- ovlock
- 会话尝试超过锁最大数量的次数
有关更多信息,请参阅第 1-56 页的
“LOCKS”
- ovuserthread
- 用户尝试超过用户线程最大数量的次数
- ovbuff
- 数据库服务器无法找到可用共享内存缓冲区的次数
当没有可用缓冲区时,数据库服务器将 dirty 缓冲区写入磁盘,然后设法找到可用缓冲区
- usercpu
- 所有用户线程使用的用户 CPU 时间(以秒为单位)
该条目每 15 秒更新一次
- syscpu
- 所有用户线程使用的全部系统 CPU 时间(以秒为单位)
该条目每 15 秒更新一次
- numckpts
- 自引导时间以来的 checkpoint 数
- flushes
- 缓冲池已清仓到磁盘的次数
onstat -p 命令输出的下一部分包含杂项信息,如下:
- bufwaits
- 每次用户线程必须等待缓冲区时增加
- lokwaits
- 每次用户线程必须等待锁时增加
- lockreqs
- 每次请求锁时增加
- deadlks
- 每次检测到潜在死锁并阻止时增阿基
- dltouts
- 每次用户线程等待锁时已超过分布式死锁超时时增加
- ckpwaits
- Checkpoint 等待数
- compress
- 每次压缩数据页时增加
- seqscans
- 对每个顺序扫描增加
*
onstat -p 命令输出的最后一部分包含以下信息:
- ixda-RA
- 索引页到数据页的预先读取计数
- idx-RA
- 遍历索引页的预先读取计数
- da-RA
- 仅数据路径扫描的计数
- logrec-RA
- 数据库服务器预先读取的日志记录
- RA-pgsused
- 数据库服务器预先读取所使用的页数
- lchwaits
- 存储线程需要等待共享存储锁存器的次数
大的锁存器等待数通常是由大量处理活动引起,数据库服务器正在此活动中记录大多数事务