从操作系统命令TOP到数据库的优化

发表于:2014-8-19 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:pxbibm    来源:51Testing软件测试网采编

  对于一个刚开始学习数据库优化的新手DBA来说,当用户反馈系统比较慢时,他会非常紧张,面对数据库,他无从下手,不知道从哪里开始着手来优化数据库,查找系统
  存在的问题。
  今天我们通过操作系统命令TOP,来优化数据,我们如何把操作系统与数据库关联起来哪,我们主要是通过操作系统TOP命令找到最消耗资源OS PID进程。
  通过OS PID与V$PROCESS动态性能试图进行管理。我们知道V$PROCESS是被认为从操作系统到数据库的入口,而进入数据库内部,进程需要创建回话(SESSION)执行数据库操作的SQL语句,一般情况下,一个进程只会创建一个回话,但是在特殊的情况下,一个进程也可以创建多个数据库回话。回话的信息是通过动态性能试图V$SESSION来进行管理和体现的。
  那么我们通过一个实验来看一下,如何完成从操作系统命令到数据库内部的操作,我们模拟一个出现故障的场景,我们通过操作系统命令TOP,进行观察,找到操作系统进程占CPU资源比较高的进程。
  1.首先我们建立一个测试表t1,向表中插入一些数据。
  SQL>create table t1 as select * from emp;
  SQL>insert into t1 as select * from t1;
  SQL>/
  SQL>/
  SQL>/
  SQL>/
  使表T1大约有几万条记录。
  2.开3,4个会话,其中表t1有几万行的数据,同时运行,立刻查询上面的语句
declare
v1 emp.sal%type;
begin
for n in 1..100 loop
for k in 1..100 loop
select count(*) into v1 from t1;
end loop;
dbms_lock.sleep(1);
end loop;
end;
/
  3.通过操作系统命令TOP找到消耗CPU资源的进程
top - 12:57:42 up 19 min,  2 users,  load average: 1.18, 0.35, 0.23
Tasks: 132 total,   2 running, 130 sleeping,   0 stopped,   0 zombie
Cpu(s): 20.5%us,  5.9%sy,  0.0%ni, 73.1%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1034664k total,   883716k used,   150948k free,   125584k buffers
Swap:  4120664k total,        0k used,  4120664k free,   609440k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
5182 oracle    19   0  368m  50m  48m S 37.9  5.0   0:03.57 oracle
1 root      15   0  2160  652  564 S  0.0  0.1   0:02.30 init
2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.05 migration/0
3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.04 migration/1
5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
6 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 events/0
7 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/1
8 root      11  -5     0    0    0 S  0.0  0.0   0:00.01 khelper
9 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
13 root      10  -5     0    0    0 S  0.0  0.0   0:00.10 kblockd/0
14 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 kblockd/1
15 root      16  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
179 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
180 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/1
183 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
185 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod
252 root      18   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd
253 root      17   0     0    0    0 S  0.0  0.0   0:00.00 pdflush
254 root      15   0     0    0    0 S  0.0  0.0   0:00.03 pdflush
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号