| GZU521.COM学习网 |
|
Windows 2000下的Oracle性能优化需要考虑磁盘i/o、cpu、网络子系统、内存几个子系统,这里着重介绍oracle在windows 2000环境下的内存调整。 优化磁盘配置 oracle是一个磁盘i/o强烈的应用,要确保你恰当地配置磁盘和文件系统: 在磁盘上建立数据文件前首先运行磁盘碎片整理程序 为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果你有足够的连续磁盘空间建立数据文件,那么你就很容易避免数据文件产生碎片。 不要使用磁盘压缩 oracle数据文件不支持磁盘压缩。 不要使用磁盘加密 加密象磁盘压缩一样增加了一个处理层降低磁盘读写速度。如果你担心自己的数据可能泄密,就使用dbms_obfuscation包和label security选择性地加密数据的敏感部分。 不要使用超过70%的磁盘空间 剩余的磁盘空间存放系统临时数据和作为磁盘碎片整理程序存放中间数据。 使用raid 选择硬件raid超过软件raid; 带有硬件raid控制器; 日志文件不要放在raid 5卷上,因为raid 5读性能高而写性能差。 把日志文件和归档日志放在与控制文件和数据文件分离的磁盘控制系统。 分离页面交换文件到多个磁盘物理卷 跨越至少两个磁盘建立两个页面文件。你可以建立四个页面文件并在性能上受益,确保所有页面文件的大小之和至少是物理内存的两倍。 优化cpu使用和配置 取消屏幕保护 屏幕保护吸取大量的cpu资源而且提供的是对数据库服务器毫无意义的用处,特别要禁止3gl屏幕保护,如果你必须使用屏幕保护就用“空屏幕”减少cpu使用。 把系统配置为应用服务器 运行控制面板的“系统”,在高级选项卡中设置“性能选项”到“后台程序”,这提供优先权给应用程序,象类似oracle的服务,反对用户在图形用户界面启动一个笨拙的程序。 监视系统中消耗中断的硬件 消耗cpu中断和时间的硬件应该避免使用。通常这样的硬件是便宜的因为它把工作载入cpu,而cpu要处理外围的高级性能的硬件,通常需要注意: 1、支持总线控制的网卡 2、支持dma而不支持pio的磁盘控制器 使用性能监视器跟踪处理器对象的%interrupt time 计数器数值,和这个计数器的基线和标准,然后监视问题。 3、有利避免中断的方式是使用硬件raid控制器代替windows 2000支持的软件raid。 保持最小的安全审计记录 在专用服务器上运行oracle oracle是内存消耗大户,不要在执行下列功能的系统上运行oracle数据库: 1、主域或备份域控制器(windows 2000下都称域控制器) 2、文件服务器 3、打印服务器 4、远程访问服务器 5、路由器、代理或防火墙 不要使用花哨的壁纸(如果使用,要尽量减小壁纸文件大小 禁止非必须的服务 最好禁止系统里非必须的服务,如果时而需要某些服务功能,可将启动类型设置为“手动”,要做到这一点首先同网络管理员验证实际的服务需求: 1、如果你的系统不需要打印机,通常停止这个服务并设置为手动; 2、停止license logging service服务除非你对它有特殊要求; 3、不应该使用dhcp服务,并禁止它; 4、不要自动启动你不需要的程序; 检查菜单“开始/程序/启动”里的内容,删除不需要的程序。 优化网络配置 网络配置是性能调整的一项很重要的内容,而且很容易隐藏性能瓶颈。 配置网卡使用最快速度和有效模式 这针对自动检测,大多数缺省安装是nic,如果这是可选的就尽量调整为“全双工”和最大化线速度。 删除不需要的网络协议 只保留tcp/ip协议。 优化网络协议绑定顺序 在每个网卡上设置主协议,典型地是tcp/ip,到协议列表的顶端。 为oracle禁止或优化文件共享 理想地应该禁止文件共享功能来最小化安全泄露和网络交通,但如果你需要使用文件和打印共享,那么就配置系统中每个网卡的“连接属性”,设置“最大化网络应用程序数据吞吐量” 内存调优 内存优化是windows平台的关键设置,首先了解一下windows 2000平台的oracle结构: 基于线程的结构 windows2000是基于线程的结构,相反,unix操作系统是基于进程的结构。这意味着windows中更多的应用,包括oracle在内,是以带有多个线程的单个进程的形式执行,这种基于线程的结构的确给window2000带来优势——更容易共享内存。内存空间为每个进程分配,进程间共享内存很笨拙,要使用附加编码,线程是进程的子集,使用比进程少得多的内存。特定进程的所有线程共享同样的进程内存空间,同一进程的线程间共享内存比不同进程共享内存要快,这给基于线程的结构很大优势,更有效。 在服务器上运行的每个应用程序都有一个,而且只有一个进程。进程是应用程序的载体,是用来容纳执行应用程序实际工作的线程的。从用户角度看,进程是不用任何专门工具就可以看到的组件。进程对其他应用程序组件的作用就像容器一样。它持有虚拟的存储空间、数据、系统资源和应用程序设置。虽然线程可以分配、重新分配和释放内存,但是进程接受初始的内存分配,并将它分配到请求内存的所有线程。线程是包含在进程内共享所有进程资源的单个执行路径。它还包含堆栈(存储在内存中的变量和其他数据)、cpu寄存器的状态信息(所以,线程可以恢复它的环境)、和在系统调度程序的执行列表中的一个登录项。每个线程规定了完成任务应用程序需要作的某种工作。 |
责任编辑:gzu521