Oracle V$OSSTAT

标签 oracle statistics

Oracle View V$OSSTAT 包含一些操作统计信息,包括:

  • IDLE_TICKS 处理器空闲的百分之一秒数,所有处理器的总和
  • BUSY_TICKS 处理器忙于执行用户或内核代码的百分之一秒数,所有处理器的总和

我读过的文档并不清楚这些是否曾经被重置过。有人知道吗?

我的另一个问题是我想计算出系统正在经历的平均 CPU 负载。为此,我希望我必须去:

busy_ticks / (idle_ticks + busy_ticks)

这是正确的吗?

11 月 8 日更新

Oracle 10g r2 在此表中包含一个名为 LOAD 的统计信息。它提供读取值时机器的当前负载。这比使用其他信息要好得多,因为 *_ticks 数据是“自实例启动以来”,而不是截至当前时间点。

最佳答案

如果可用,您需要添加“IOWAIT_TICKS”。

IDLE_TICKS - Number of hundredths of a second that a processor has been idle, totaled over all processors

BUSY_TICKS - Number of hundredths of a second that a processor has been busy executing user or kernel code, totaled over all processors

IOWAIT_TICKS - Number of hundredths of a second that a processor has been waiting for I/O to complete, total led over all processors

这是一个查询。

SELECT (select value from v$osstat where stat_name = 'BUSY_TICKS') /
(
   NVL((select value from v$osstat where stat_name = 'IDLE_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'BUSY_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'IOWAIT_TICKS'),0)
)
FROM DUAL;

在 10.2 及更高版本中,名称 _TICKS 已更改为 _TIME。

动态 View 中的累积值会在数据库实例关闭时重置。

参见 Automatic Performance Statisticsv$OSStat了解更多信息。

关于Oracle V$OSSTAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/207337/

相关文章:

sql - 禁用并稍后启用Oracle中的所有表索引

oracle - Oracle:什么情况下使用RAISE_APPLICATION_ERROR?

javascript - 是否有一个库可以根据 JavaScript 的 beta 分布生成随机数?

sql - 计算第 95 个百分位值?

algorithm - 装袋分类器(平均)如何工作?

r - 衡量数据*居中*到 LM 中的预测线的程度的衡量标准是什么

statistics - 隐马尔可夫模型

sql - Oracle SQL中的“YYYY”和“RRRR”有什么区别

oracle - 从一个模式到另一个模式执行 UTPLSQL 测试时遇到错误

c# - 动态选择 Oracle.DataAccess 版本