+ -
当前位置:首页 → 问答吧 → 如何计算/获取到一段时间内,写日志的总耗时,及平均每个日志的写耗时?

如何计算/获取到一段时间内,写日志的总耗时,及平均每个日志的写耗时?

时间:2011-09-14

来源:互联网

ORACLE10205, AIX5300-07。

作者: ZALBB   发布时间: 2011-09-14

我觉得是不是可以从OS的日志的时间戳来用shell实现?
日志切换的时间应该就可以把?

作者: iori809   发布时间: 2011-09-14



QUOTE:原帖由 iori809 于 2011-9-14 11:36 发表
我觉得是不是可以从OS的日志的时间戳来用shell实现?
日志切换的时间应该就可以把?

不时,我想获取的是写满1G归档日志的耗时,而不是前后日志切换的间隔时长。

作者: ZALBB   发布时间: 2011-09-14

LZ我觉你问的这个问题,
首先要切换日志的条件有所了解,
其次和你的工作环境有关,
最后,再根据以上两个条件来综合考虑。
就会得出,1G归档日志的耗时。

作者: nkxu   发布时间: 2011-09-14

select COMPLETION_TIME - next_time from v$archived_log;
这个是不是?

作者: ysping   发布时间: 2011-09-14



QUOTE:原帖由 nkxu 于 2011-9-14 12:02 发表
LZ我觉你问的这个问题,
首先要切换日志的条件有所了解,
其次和你的工作环境有关,
最后,再根据以上两个条件来综合考虑。
就会得出,1G归档日志的耗时。

不考虑日志切换的等待,只需要计算写满归档日志的耗时,当然,写的过程是断断续续的,所以得计算总的耗时。
如果计算某个指定的归档日志的写满的耗时比较困难,可以计算一段时间内的平均值,只要能排除切换等待,检测点完成等等待事件的耗时。

我需要的是一个思路。

作者: ZALBB   发布时间: 2011-09-14



QUOTE:原帖由 ysping 于 2011-9-14 12:27 发表
select COMPLETION_TIME - next_time from v$archived_log;
这个是不是?

这是日志间的间隔,通常情况下,写某个日志并不是连续的写,而是断续的写,我要的是写日志的耗时,而不是两日志间的间隔时间。

作者: ZALBB   发布时间: 2011-09-14

而是断续的写
能说一下理由吗?

作者: nkxu   发布时间: 2011-09-14



QUOTE:原帖由 nkxu 于 2011-9-14 12:55 发表
而是断续的写
能说一下理由吗?

假设写满日志需要1000个事务,各个事务间不就是断续的写吗?

作者: ZALBB   发布时间: 2011-09-14

如果在一个OLAP系统里话,他的归档会不停的写。写到归档会很大的,基本上大于差不多和redo.log size ###M差不多大小。

作者: nkxu   发布时间: 2011-09-14

我以前做一次实验,大小差不多的。

作者: nkxu   发布时间: 2011-09-14

1G差不多很快就到了。

作者: nkxu   发布时间: 2011-09-14



QUOTE:原帖由 ZALBB 于 2011-9-14 11:14 发表
ORACLE10205, AIX5300-07。

归档一个日志文件所用的时间,应该根你 cp 一个与日志同样大小的文件的时间相当。

只要日志切换频率不要太高,归档进程做归档占用的资源,也不会太高。。。


日志切换频率
select to_char(first_time,'yyyy-mm-dd')      "DATE",
       max(to_char(first_time,'DAY'))             "DAY",
       count(*)                                               total,   
       to_char(sum(decode(to_char(first_time,'hh24'), '00', 1, 0)), '99') "00",  
       to_char(sum(decode(to_char(first_time,'hh24'), '01', 1, 0)), '99') "01",
       to_char(sum(decode(to_char(first_time,'hh24'), '02', 1, 0)), '99') "02",
       to_char(sum(decode(to_char(first_time,'hh24'), '03', 1, 0)), '99') "03",
       to_char(sum(decode(to_char(first_time,'hh24'), '04', 1, 0)), '99') "04",
       to_char(sum(decode(to_char(first_time,'hh24'), '05', 1, 0)), '99') "05",
       to_char(sum(decode(to_char(first_time,'hh24'), '06', 1, 0)), '99') "06",
       to_char(sum(decode(to_char(first_time,'hh24'), '07', 1, 0)), '99') "07",
       to_char(sum(decode(to_char(first_time,'hh24'), '08', 1, 0)), '99') "08",
       to_char(sum(decode(to_char(first_time,'hh24'), '09', 1, 0)), '99') "09",
       to_char(sum(decode(to_char(first_time,'hh24'), '10', 1, 0)), '99') "10",
       to_char(sum(decode(to_char(first_time,'hh24'), '11', 1, 0)), '99') "11",
       to_char(sum(decode(to_char(first_time,'hh24'), '12', 1, 0)), '99') "12",
       to_char(sum(decode(to_char(first_time,'hh24'), '13', 1, 0)), '99') "13",
       to_char(sum(decode(to_char(first_time,'hh24'), '14', 1, 0)), '99') "14",
       to_char(sum(decode(to_char(first_time,'hh24'), '15', 1, 0)), '99') "15",
       to_char(sum(decode(to_char(first_time,'hh24'), '16', 1, 0)), '99') "16",
       to_char(sum(decode(to_char(first_time,'hh24'), '17', 1, 0)), '99') "17",
       to_char(sum(decode(to_char(first_time,'hh24'), '18', 1, 0)), '99') "18",
       to_char(sum(decode(to_char(first_time,'hh24'), '19', 1, 0)), '99') "19",
       to_char(sum(decode(to_char(first_time,'hh24'), '20', 1, 0)), '99') "20",
       to_char(sum(decode(to_char(first_time,'hh24'), '21', 1, 0)), '99') "21",
       to_char(sum(decode(to_char(first_time,'hh24'), '22', 1, 0)), '99') "22",
       to_char(sum(decode(to_char(first_time,'hh24'), '23', 1, 0)), '99') "23"
  from v$log_history
group by to_char(first_time,'yyyy-mm-dd')
order by to_char(first_time,'yyyy-mm-dd') desc;

作者: solomon_007   发布时间: 2011-09-14

不是归档操作,是写当前日志。

作者: ZALBB   发布时间: 2011-09-14

是不是指的redo write time

作者: vrml   发布时间: 2011-09-14



QUOTE:原帖由 vrml 于 2011-9-14 13:32 发表
是不是指的redo write time

是的,

作者: ZALBB   发布时间: 2011-09-14

福哥的问题果然有深度~请问福哥想弄这个是要做什么呢?

作者: iori809   发布时间: 2011-09-14

awr里有一项这个,时间单位也许是1/100秒

作者: vrml   发布时间: 2011-09-14



QUOTE:原帖由 iori809 于 2011-9-14 13:35 发表
福哥的问题果然有深度~请问福哥想弄这个是要做什么呢?

当前日志原先放在RAID5,现在改放RAID1+0,想比较之间的差距,领导要看。

作者: ZALBB   发布时间: 2011-09-14

单独考虑写入时间,那不如直接DD比较

作者: sundog315   发布时间: 2011-09-14



QUOTE:原帖由 sundog315 于 2011-9-14 13:54 发表
单独考虑写入时间,那不如直接DD比较

领导要的是,对系统的好处,当然得从系统要数据上看变化。

作者: ZALBB   发布时间: 2011-09-14



QUOTE:原帖由 ZALBB 于 2011-9-14 13:45 发表


当前日志原先放在RAID5,现在改放RAID1+0,想比较之间的差距,领导要看。

我觉得能否这样~首先模拟一个一直在写的情景做测试
在测试的过程中观察iostat的速度~
然后和RAID5做比较~这个虽然不是REDO写的时间~
但其实也能体现出性能差异了吧?其实我觉得领导想知道的就是
换成RAID10后的性能提升是否比浪费掉的磁盘空间更划算~

作者: iori809   发布时间: 2011-09-14

如果是有较大的Write Cache,并且Write Cache不会被写满,那么对于redo log写到raid10和raid5中基本上没有速度却别的,写到cache中就返回写成功了,这个写入速度是很快的。

QUOTE:原帖由 ZALBB 于 2011-9-14 13:45 发表


当前日志原先放在RAID5,现在改放RAID1+0,想比较之间的差距,领导要看。

作者: deepshrift   发布时间: 2011-09-14



QUOTE:原帖由 deepshrift 于 2011-9-14 14:19 发表
如果是有较大的Write Cache,并且Write Cache不会被写满,那么对于redo log写到raid10和raid5中基本上没有速度却别的,写到cache中就返回写成功了,这个写入速度是很快的。


1  你说的这句,"写到cache中就返回写成功了,",有无相关文档说明?

2  事实上,我从后台日志,经常看到TRACE文件报,Warning: log write time 500ms, size 6914KB。  说明写日志慢。

作者: ZALBB   发布时间: 2011-09-14



QUOTE:原帖由 iori809 于 2011-9-14 13:59 发表

我觉得能否这样~首先模拟一个一直在写的情景做测试
在测试的过程中观察iostat的速度~
然后和RAID5做比较~这个虽然不是REDO写的时间~
但其实也能体现出性能差异了吧?其实我觉得领导想知道的就是
换成RAID10后的性能提升是否比浪费掉的磁盘空间更划算~

1  观察到的IOSTAT如何做成数据来对比?
2  这样只是间接佐证,最好还是直观的数据。

作者: ZALBB   发布时间: 2011-09-14



QUOTE:原帖由 ZALBB 于 2011-9-14 14:26 发表


1  你说的这句,"写到cache中就返回写成功了,",有无相关文档说明?


存储好像都是这样的吧?

作者: ysping   发布时间: 2011-09-14



QUOTE:原帖由 ysping 于 2011-9-14 14:43 发表

存储好像都是这样的吧?

假如机房断电,存储机器自带的电源不足以保证把所有的CACHE写入磁盘,那岂不是危险?

作者: ZALBB   发布时间: 2011-09-14

存储服务器的Write Cache的作用就是写缓冲,Read Cache是为了提高rehit啊,文档说明存储白皮书还真没有说明。会不会是因为存储服务器多个应用共用,期间连续数据写入比较多,把write cache写满了,如果cache满了就相当于直接写磁盘了,对redolog这种写入特点来说是很严重的瓶颈。

     AWR-Instance Activity Stats中的redo blocks written per second能否作为一个参考指标?
redolog产生量一定的测试案例,这个指标越高,说明redo写入越快

作者: deepshrift   发布时间: 2011-09-14

所以稍微差不多点儿的存储都是双控制器,两个write cache做mirror

QUOTE:原帖由 ZALBB 于 2011-9-14 14:47 发表


假如机房断电,存储机器自带的电源不足以保证把所有的CACHE写入磁盘,那岂不是危险?

作者: deepshrift   发布时间: 2011-09-14

存储自带的电源一定要能保证把cache中的数据写入到磁盘,不然就是设计缺陷

作者: deepshrift   发布时间: 2011-09-14