oracle dbra,资源供给:IO子系统之二

案例描述:

某运营商的dbra备份系统,备份构建在vxvm和vxfs文件系统之上,串行更新的速度基本理想。由于无法达到更新目标,通过增加并行来增加IO写速度,结果并行度加大之后,iops快速下跌,io子系统无法提供并发能力。由于对于vxvm不是很了解,又没有厂商支持,测试了vxvm依赖的磁盘层次,发现磁盘层次可以提供很好的并行度扩充。简单的构建了一个hp-ux缺省的vxfs,也可以很好的进行并行扩展,现在可以判断是vxvm的并行能力出现了问题,估计是vxvm队列的问题,由于缺乏支持,无法对于vxvm作出优化调整。在客户的支持下,放弃了vxvm之后,建立在hp-ux的lvm之上,具有很好的并行度扩充,达到了优化目标。

卷管理器和文件系统是方便用户使用的磁盘基本管理单元,在带来了方便性的同时也可能会带来些性能方面的问题。

文件系统带来的主要障碍:

(1)、日志卷会对于更新带来比较大的压力。

文件系统的日志设备对于频繁更新的文件系统可能会带来一定的压力,这个时候可以采用独立日志设备来避免日志设备对于文件系统的IO影响。

(2)、元数据过大,会使文件系统的搜索延迟变强,特别是在寻找自由空间的时候。元数据过大主要表现在文件系统中的文件过多,达到几千几万的范畴。从这点考虑必须考虑Oracle数据库的数据文件不要和Oracle安装软件处于相同的文件系统。同样太大的文件会需要更多的inode,自然也就需要更高的元数据搜索成本。

(3)、文件系统碎片,文件系统碎片导致的问题事实上就是元数据过大,使其寻求自由空间的成本变高。

一般现代文件系统采用Block,Extent的方式来管理文件,主要是为了提高性能。而Extent的全局管理则一般使用位图。大家只要简单考虑下Oracle的表空间管理,只要把文件系统的空间管理类似于Oracle表空间管理即可。在位图模式下,Extent的大小并不会带来多大的性能问题,但是为了支持Oracle全表扫描,必须要使文件系统的Extent大于Oracle全表扫描的范畴,一般为1M。当系统中存在大量的小空闲Extent的时候就会存在比较大的性能问题,在搜索自由空间的成本会大幅度增加,这个时候可能需要对于文件系统进行碎片整理。

一般来说,建议文件系统的Block Size=Oracle Block Size, Oracle extent size:=File system extent size * N,File system Exetnt Size至少要1M大小,并且是1M的倍数。

(4)、文件锁,相对于lv使其并发能力会降低。

文件操作和lv操作不同,一般需要增加文件锁,从而使其并发能力下降。不过现代文件系统都开始进行不需要文件锁的实践,增加了并行IO,降低或者彻底消除了文件锁的需求。

文件系统的Buffer Cache:

文件系统的Buffer Cache在两个层面会带来收益:

(1)、读操作

(2)、预读缓存

在文件系统的Buffer带来好处的同时可能会给Oracle带来负面的影响,主要因素在于文件系统Buffer和Oracle SGA Buffer共享使用物理内存。当文件系统需要更多的内存而操作系统无法提供的时候将从Oracle SGA Buffer偷取内存,把Oracle SGA Buffer交换到磁盘上,从而导致Oracle性能大幅度下降。

为了使文件系统缓存不影响到Oracle SGA Buffer,必须保证文件系统缓存和Oracle SGA Buffer的共用内存不超过操作系统内存memory pin部分。一般而言,由于Oracle数据库具有更加重要的价值,一般来说对于Oracle数据库来说不建议缓存文件,或者仅仅分配很小的缓存空间。

比如:我们设置文件系统缓存最大不超过5%的内存,并且使系统有限交换文件页,从而保留SGA Buffer在物理内存之中。具体如何设置,参考各自操作系统和文件系统。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92650/viewspace-776769/,如需转载,请注明出处,否则将追究法律责任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Android]Android端ORM框架——RapidORM(v1.0)

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4748077.html Android上主流的ORM框架有很多,常用的有ORMLite、GreenDao等。 ORMLite: -优点:AP…

oracle代码实例,oracle存储过程代码实例

1、用来插入大量测试数据的存储过程CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST(ST_NUM IN NUMBER,ED_NUM IN NUMBER)ISBEGINdeclarei number;beginFOR i IN ST_NUM..ED_NUM LOOPINSERT INTO tb values(i,i,3,3,3,100,0);END LOOP;end;END;运行&…

Examining Open vSwitch Traffic Patterns

In this post, I want to provide some additional insight on how the use of Open vSwitch (OVS) affects—or doesn’t affect, in some cases—how a Linux host directs traffic through physical interfaces, OVS internal interfaces, and OVS bridges. This is somethi…

Docker 面临的安全隐患,我们该如何应对

【编者按】对比虚拟机,Docker 在体量等方面拥有显著的优势。然而,当 DevOps 享受 Docker 带来扩展性、资源利用率和弹性提升的同时,其所面临的安全隐患同样值得重视,近日 Chris Taschner 在 SEI 上撰文进行了总结。本文系 OneAPM …

oracle虑重语句,db基本语句(oracle)

一. SQL分类DDL:数据定义语言(Data Definition Language)DML:数据操纵语言(Data Manipulation Language)TCL:事务控制语言(Transaction Control Language)DQL:数据查询语言(Data Query Language)DCL:数据控制语言(Data…

Plist文件和字典转模型

模型与字典 1. 用模型取代字典的好处 使用字典的坏处 编译器没有自动提醒的功能,需要手敲key如果写错了编译器也不会报错2. 模型概念 概念 专门用来存放数据的对象特点 一般继承自NSObject在.h文件中声明一些用来存放数据的属性注释 //单行注释/ /多行注释/* /文档注释,调用属性…

oracle job 与存储过程,应用oracle job和存储过程

每月新增数据百万多条,需要定期处理2个主要数据表(test_ad,test_pd),移动非当月数据到历史表中保存数据操作存储过程如下:MYPROC.prccreate or replace procedure MYPROC isTableName_AD char(13);TableName_PD char(13);tmp_str varchar2(10…

Oracle从小白到大牛的刷题之路(建议收藏学习)

目录 前言 数据表结构 数据库文件(按照顺序导入) 1基本SQL-SELECT 1.1基本SQL-SELECT语句笔记 1.2 基本SQL-SELECT语句练习 2过滤和排序数据 2.1过滤和排序数据笔记 2.2过滤和排序数据练习 3单行函数 3.1单行函数笔记 3.2单行函数练习 4多表…

oracle数据库快照打点,Oracle数据库快照的使用

Oracle数据库快照的使用正在看的ORACLE教程是:Oracle数据库快照的使用。oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。正因为快照是一个主表的查询子集,使用快照可以加快数据的查询速度;在保持不同数据…

3.2 双向链表

1.简介 前面3.1的单链表在操作过程中有一个缺点,就是后面的节点无法直接找到前面的节点,这使很多操作都得从头到尾去搜寻节点,算法效率变得非常低,解决这个问题的方法就是重新定义链表的节点使每个节点有两个指针,一个…

uc通讯不成功php版本过高,Ucenter通信失败排查方法

定位错误来源:1. 使用firebug或类似于firebug的工具审查”通信失败“这几个字2. 会发现包含这几个字的div的同级下方有个script标签,复制该script标签的src值到浏览器的新标签页并打开3. 这个url指向的是ucenter中app模块的onping操作(ucenter/control/a…

马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别

马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别 http://martinfowler.com/articles/injection.html 中文翻译:http://files.cnblogs.com/files/stono/DependencyInjection.pdf 转载于:https://www.cnblogs.com/stono/p/4764551.html

oracle工作流错误,工作流错误处理 - Oracle® ZFS Storage Appliance 客户服务手册

工作流错误处理如果在执行工作流期间发生错误,则会引发异常。如果异常未由工作流自身所捕获(或者如果工作流引发的异常未以其他方式捕获),则工作流将失败,并向用户显示有关异常的信息。要正确处理错误,应该捕获并处理异常。例如&a…

敏捷软件开发:原则、模式与实践——第12章 ISP:接口隔离原则

第12章 ISP:接口隔离原则 不应该强迫客户程序依赖并未使用的方法。   这个原则用来处理“胖”接口所存在的缺点。如果类的接口不是内敛的,就表示该类具有“胖”接口。换句话说,类的“胖”接口可以分解成多组方法。每一组方法都服务于一组不…