oracle 性能调优之 管理 操作系统
这章解释为优化数据库性能怎样调整操作系统,包括以下几部分内容:
一是理解操作系统性能问题
二是解释操作系统问题
三是理解CPU
四是解释CPU问题
1.1理解操作系统性能问题
理解操作系统性能话题
操作系统性能问题通常包括进程管理,内存管理和调度。
如果你已经调整过数据库实例仍然需要提高性能,检查你的工作
尝试减少系统时间。
确保有足够的IO带宽,CPU计算能力,和交换空间。
别期待,然而,未来的对操作系统的调优会对应用程序性能有重要的影响。
改变oracle数据库或者应用程序的配置比在操作系统做简单的调整在效率
上可能取得更显著的效果。
例如:如果一个应用程序遇到过多的缓冲忙等待,然后系统调用增加。
如果你通过调整应用来减少缓存忙等,那么系统调用将会显著降低。
这小节会包含以下三小节内容:
a.使用操作系统缓存
b.内存使用
c.使用操作系统资源管理器
利用操作系统缓存
操作系统和设备控制器提供数据高速缓存和oracle数据库的缓存管理不产生直接冲突。
然而,这些结构能够消耗资源,当提供很少的或者没有性能有点时候。
当数据库文件被存储在Linux或者UNIX文件系统下时,这种情况尤其突出。
默认情况,所有的数据库IO通过文件系统的告诉缓存。一些Linux和UNIX直接I/O的文件存储。
这样安排允许数据库文件在文件系统级别能够访问,而不是文件系统缓存。
直接IO保存CPU资源,云寻文件系统高速缓存共享非数据库活动就像程序文本和共享池文件。
=========================================
这种情况不会发生windows下,所有
的文件请求通过数据库通过文件系统的缓存。
===========================================
尽管由于oracle数据库的高速缓存,操作系统缓存经常是多余的
在某些情况下,数据库不适用数据库缓存。某些情况下,利用直接
IO或者原始设备避免更坏的性能而不是利用操作系统缓存。例如:
a、读写临时表空间
b、在非缓存模式下存储LOBs数据。
c、并行查询的次要读取数据
你想查询,但是不是所有的文件是操作系统级别的。
1)异步IO
在同步IO情况下,当你一个请求提交给操作系统,
读进程快知道写进程被确认才能完成。才能继续处理。
在异步IO情况下,当IO请求被提交后该进程继续处理。
当使用同步IO可能避免瓶颈。
某些平台默认支持同步IO,另一些必须特别的配置,有些
系统在某些文件系统类型下只支持同步IO。
2)FILESYSTEMIO_OPTIONS 初始化参数
你能利用 FILESYSTEMIO_OPTIONS 初始化参数来启动或者关闭同步I/O
或者直接IO文件系统上。这个参数是个平台相关的参数。
对于特地的平台都有一个,特定值。FILESYSTEMIO_OPTIONS 初始化参数
FILESYSTEMIO_OPTIONS 参数能别设置成以下几种方式:
ASYNCH: 启动异步IO文件系统,这对于数据传输时机没有需求
DIRECTIO:启动直接IO文件系统,忽略缓存
SETALL:启动异步和直接IO系统
NONE:在文件系统上禁用异步和直接IONOKE:也可以参考平台相关的文档来了解更详细的信息。
内存利用
内存使用会被缓存区限制和初始化参数影响。
高速缓存限制
UNIX高速缓存区消耗操作系统内存支援。尽管
一些版本的UNIX,UNIX缓存区可以分配大量内存。
就那天也要推荐先进的内存管理机制。典型的是做法是
自由内存页面能够被用来缓存IO。在这样的系统中。
通常操作系统报告工具来显示系统有没有空闲的内存这不会
引起问题。
如果进程请求更多的内存,那么用来缓存IO的数据通常会被释放
来分派给进程使用。
影响内存使用的参数
任何一个oracle数据库会话都会要求内存,这个依赖很多因素。
通常情况下的分派因素是:
打开光标的数目
被PL/SQL使用的内存,比如PL/SQL表
SORT_AREA_SIZE排序区大小
在orcle数据库中,PGA_AGGREGATE_TARGET初始化参数给予一个会话更大的内存控制权。
使用操作系统资源管理器
某些平台提供操作系统资源管理器。这优化访问系统资源的模式被设计用来减少峰值负载的影响
通常实施管理策略来控制用户能访问的资源或者每个用户被限制使用多少资源。
操作系统资源管理器不同于域或者其他相似额额工具。
域提供一个或者更多的完整而独立的环境在一个系统中。
磁盘,CPU,内存和其他所有的资源被共享到每个域中。从其他的域不能访问这些资源。
另外的相似的工具是单独划分一部分系统资源到不同的域,通常独立的CPU,或者内存区域。
单独的资源领域致力于只分配给处理该地区,进程不能通过边界迁移。不想域故那里,
所有的起太早元就像磁盘是被作为系统的所有部分公共使用的。
oracle数据库运行在域管理中,在这些不完整的分区结构中就像内存分配至固定而不是动态的。
操作系统资源管理器在全局资源池中优先分配资源,通常是一个域或者整个系统。
进程被分组,在资源池的任何地方轮流分派资源。
本文讨论了如何通过调整操作系统来优化Oracle数据库性能,包括理解操作系统性能问题、解释操作系统问题、理解CPU及解释CPU问题等内容。文章重点介绍了操作系统缓存、内存使用和操作系统资源管理器的应用。
690

被折叠的 条评论
为什么被折叠?



