[20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt --//前几天做了sql语句在mutexes上的探究.今天对比不同_mutex_wait_scheme模式cpu消耗. 1.环境: SYS@book> @ hide mutex NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ------------------- ------------------ ------------- ------------- ------------ _mutex_spin_count Mutex spin count TRUE 255 255 _mutex_wait_scheme Mutex wait scheme TRUE 2 2 _mutex_wait_time Mutex wait time TRUE 1 1 --//注:_mutex_wait_time=1,相当1厘秒. SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production $ cat m2.txt set verify off column a noprint new_value v_a; --select mod ( &&3 ,3) a from dual ; --alter session set optimizer_index_cost_adj= &&3; host sleep $(echo &&3/50| bc -l ) insert into job_times values ( sys_context ('userenv', 'sid') ,dbms_utility.get_time ,'&&2') ; commit ; declare v_id number; v_d date; begin for i in 1 .. &&1 loop --select 1 into v_id from dual ; --select sysdate into v_d from dual ; select deptno into v_id from dept where deptno=10; end loop; end ; / update job_times set time_ela = dbms_utility.get_time - time_ela where sid=sys_context ('userenv', 'sid') and method='&&2'; commit; --quit $ seq 150 | xargs -I {} -P 150 bash -c "sqlplus -s -l scott/book @m2.txt 1e6 f2_150 {} >/dev/null" SYS@book> @ mutexy 6 a31kd5tkdvvmm HASH SUM_SLEEPS SUM_GETS LOCATION MUTEX_TYPE MUTEX_ADDR SQLID KGLNAOWN C100 ---------- ---------- ---------- ------------------------------ -------------------- ---------------- ------------- -------- --------------------------------------- 1692266099 2263154 4.6431E+10 kksLockDelete [KKSCHLPIN6] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 2183544 4.4733E+10 kksfbc [KKSCHLFSP2] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 5256 600010918 kksfbc [KKSCHLPIN1] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 6 45955498 kksHeapReadUnlock [KKSCHLRDUP] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 --//MUTEX_ADDR=000000007C88E330. 2.测试一: --//测试_mutex_wait_scheme=2的情况: --//session 1: SCOTT@book> @ spid SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50 ---------- ---------- ------------------------ --------- ------ ------- ---------- -------------------------------------------------- 295 5 65222 DEDICATED 65223 21 3 alter system kill session '295,5' immediate; --//session 2: SYS@book> oradebug setmypid Statement processed. SYS@book> oradebug peek 0x000000007C88E330 8 [07C88E330, 07C88E338) = 00000000 00000000 SYS@book> oradebug poke 0x000000007C88E330 8 0x0000000200000127 BEFORE: [07C88E330, 07C88E338) = 00000000 00000000 AFTER: [07C88E330, 07C88E338) = 00000127 00000002 --//session 1: SCOTT@book> @ m2.txt 1 c1 0 1 row created. Commit complete. --//挂起!! $ top -p 65223 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 65223 oracle 20 0 857m 29m 25m S 0.3 0.0 0:00.41 oracle --//CPU消耗0.3. --//另外我执行如下: SYS@book> @ mutexy 5 a31kd5tkdvvmm HASH SUM_SLEEPS SUM_GETS LOCATION MUTEX_TYPE MUTEX_ADDR SQLID KGLNAOWN C100 ---------- ---------- ---------- ------------------------------ -------------------- ---------------- ------------- -------- --------------------------------------- 1692266099 2263154 4.6431E+10 kksLockDelete [KKSCHLPIN6] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 2183544 4.4733E+10 kksfbc [KKSCHLFSP2] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 19266 600013714 kksfbc [KKSCHLPIN1] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 6 45955498 kksHeapReadUnlock [KKSCHLRDUP] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 --//等一会... SYS@book> @ mutexy 5 a31kd5tkdvvmm HASH SUM_SLEEPS SUM_GETS LOCATION MUTEX_TYPE MUTEX_ADDR SQLID KGLNAOWN C100 ---------- ---------- ---------- ------------------------------ -------------------- ---------------- ------------- -------- --------------------------------------- 1692266099 2263154 4.6431E+10 kksLockDelete [KKSCHLPIN6] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 2183544 4.4733E+10 kksfbc [KKSCHLFSP2] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 26386 600013714 kksfbc [KKSCHLPIN1] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 1692266099 6 45955498 kksHeapReadUnlock [KKSCHLRDUP] Cursor Pin 000000007C88E330 a31kd5tkdvvmm SELECT DEPTNO FROM DEPT WHERE DEPTNO=10 --//仅仅LOCATION=kksfbc [KKSCHLPIN1],SUM_SLEEPS数量在增加. AFTER: [07C88E330, 07C88E338) = 00000127 00000002 SYS@book> oradebug poke 0x000000007C88E330 8 0x0 BEFORE: [07C88E330, 07C88E338) = 00000127 00000002 AFTER: [07C88E330, 07C88E338) = 00000000 00000000 3.测试二: --//测试_mutex_wait_scheme=1的情况: --//基本重复上面的步骤,不再列出执行步骤. SYS@book> alter system set "_mutex_wait_scheme"=1 scope=memory; System altered. $ top -p 65223 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 65223 oracle 20 0 857m 29m 25m S 3.0 0.0 0:01.29 oracle --//CPU消耗3. 4.测试三: --//测试_mutex_wait_scheme=1的情况: --//基本重复上面的步骤,不再列出执行步骤. SYS@book> alter system set "_mutex_wait_scheme"=0 scope=memory; System altered. $ top -p 65223 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 65223 oracle 20 0 857m 29m 25m S 39.9 0.0 0:06.99 oracle --//CPU消耗39.9 5.总结: --//画一个表格如下: ------------------------------------------------------------------------------------------------------- _mutex_wait_scheme CPU使用率 描述 ------------------------------------------------------------------------------------------------------ 2 .3 2秒时间内,semtimedop 182次 getrusage 2次 _mutex_spin_count=255 12 2秒时间内,semtimedop 167次 getrusage 2次 _mutex_spin_count=65535 1 3 2秒时间内, select 16XX次(每次调用0.001秒).,getrusage 2次 0 39.9 调用99次sched_yield,然后1次seelct(每次调用0.001秒). ------------------------------------------------------------------------------------------------------ --//注:这是我当前硬件条件下的测试结果,而且我一直阻塞sql语句执行并且_mutex_wait_time=1的情况. --//一些测试数据参考链接: http://blog.itpub.net/267265/viewspace-2639675/ http://blog.itpub.net/267265/viewspace-2640003/
[20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt
来源:这里教程网
时间:2026-03-03 13:15:05
作者:
编辑推荐:
- [20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt03-03
- [20190402]关于semtimedop函数调用2.txt03-03
- CentOS下启用Oracle ACFS步骤03-03
- [20190402]Library Cache mutex.txt03-03
- expdp ORA-01555(二)(大表拆分)03-03
- Oracle DBLink连接数过多的问题(Ora-02020)03-03
- 更改oracle 默认db_files 200(ORA-00059: maximum number of DB_FILES03-03
- ORACLE 11g的密码错误延时验证03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- expdp ORA-01555(二)(大表拆分)
expdp ORA-01555(二)(大表拆分)
26-03-03 - Debian集群监控告警设置(手把手教你搭建高效稳定的服务器监控与告警系统)
- 实验之 RMAN-异机增量备份恢复
实验之 RMAN-异机增量备份恢复
26-03-03 - API实现批次序列号的销售出库
API实现批次序列号的销售出库
26-03-03 - 实验之 RMAN-本机增量备份恢复
实验之 RMAN-本机增量备份恢复
26-03-03 - 02 Oracle Database 12c DBA官方手册1.6
02 Oracle Database 12c DBA官方手册1.6
26-03-03 - 12C RMAN-本机cdb差异增量备份恢复多个pdb
12C RMAN-本机cdb差异增量备份恢复多个pdb
26-03-03 - Oracle12c 针对单个pdb的全备与恢复
Oracle12c 针对单个pdb的全备与恢复
26-03-03 - oracle 12c 针对cdb的差异0备与对pdb进行恢复
oracle 12c 针对cdb的差异0备与对pdb进行恢复
26-03-03 - 12C针对cdb全备与 PDB执行不完全恢复(基于SCN)
12C针对cdb全备与 PDB执行不完全恢复(基于SCN)
26-03-03
