Does DB Time include wait on cpu queue time?

简介:
DB TIME1=DB CPU2+ Foreground NO-Idle wait time 1:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instance background processes such as PMON. 2:Amount of CPU time (in microseconds) spent on database user-level calls. This does not include the CPU time spent on instance background processes such as PMON. 10g中引入了基于时间统计信息的调优模型,其核心或者说最值得我们关心的大概是DB TIME和AASC 2项指标。DB TIME是Oracle在数据库层对用户级别(不包括后台进程的CPU和非空闲等待时间)各类操作耗时的一个总计,它直接反映了数据库前台的"工时"。DB TIME是否包含了前台进程在CPU队列上的等待时间呢,换而言之我们的命题是"Does DB TIME equal to DB CPU+Foreground NO-Idle wait time + DB CPU ON QUEUE ?" 让我们来看看以下测试:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[maclean@rh2 ~]$ cat /proc/cpuinfo |grep processor|wc -l
2
/*这是一台双核的pc服务器*/
 
打开session A:
begin
/*  first  one busy  on  cpu */
loop
null ;
end  loop;
end ;
/*死循环调用 NULL ,会尝试独占一个逻辑CPU,没有其他等待事件*/
 
打开SESSION B:
begin
/*  second  one busy  on  cpu */
loop
null ;
end  loop;
end ;
 
打开SESSION C:
begin
/* third one busy  on  cpu */
loop
null ;
end  loop;
end ;
 
打开SESSION D:
SQL>  exec  dbms_workload_repository.create_snapshot;
PL/SQL  procedure  successfully completed.
 
/*手动收集AWR 快照*/
 
/*等待几分钟,以便收集信息*/
 
SQL>  exec  dbms_workload_repository.create_snapshot;
PL/SQL  procedure  successfully completed.
/*再次手动收集快照*/

我们来看看AWR报告中的Time Model Statistics:  DB TIME为344s,而DB CPU为226s。以上匿名PL/SQL块仅引起CPU争用(不会产生其他前台等待事件),而这里DB TIME要远大于DB CPU,可见DB TIME=DB CPU+Foreground wait time+Cpu on queue;



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277534

相关文章
|
数据可视化 Linux 调度
译 | Linux perf_events Off-CPU Time Flame Graph
译 | Linux perf_events Off-CPU Time Flame Graph
110 0
|
存储 缓存 固态存储
Linux系统之Wait CPU time解析
上篇文章我们简要解析了用户CPU时间相关概念及应用实践,具体可参考链接🔗: Linux系统之User CPU time解析。 回顾之前的内容:在Linux操作系统中,通常采用8个不同的指标来研究Linux / Unix操作系统中的CPU消耗:用户CPU时间(us)、系统CPU时间(sy)、良好的CPU时间(ni)、空闲CPU时间(id)、等待CPU时间(wa)、硬件中断CPU时间(hi),软件中断CPU时间(si),被盗CPU时间(st)。在本文中,我们主要针对“等待CPU时间”进行解析。
223 0
Linux系统之Wait CPU time解析
|
存储 Unix Linux
Linux系统之 Steal CPU time解析
正如之前文章讲过:在 Unix / Linux 体系中,常常使用“用户” CPU 时间(us)、“系统” CPU 时间(sy)、“良好”的 CPU 时间(ni)、“空闲” CPU 时间(id)、“等待”CPU 时间(wa)、“硬件中断” CPU 时间(hi)、“软件中断” CPU 时间(si)以及“被盗” CPU 时间(st)等 8 个不同的指标来评判操作系统的 CPU 资源使用情况。
564 0
|
Java Unix Linux
Linux系统之User CPU time解析
在Linux操作系统中,通常采用8个不同的指标来研究Unix / Linux操作系统中的CPU消耗:用户CPU时间(us)、系统CPU时间(sy)、良好的CPU时间(ni)、空闲CPU时间(id)、等待CPU时间(wa)、硬件中断CPU时间(hi),软件中断CPU时间(si),被盗CPU时间(st)。在本文中,我们主要对“用户CPU时间”进行解析。
547 0
|
缓存 Linux
Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
523 0
|
数据库 关系型数据库 Oracle
|
SQL 关系型数据库 数据库
|
28天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
164 1
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
311 2