技术开发 频道

在Windows 2000下优化Oracle9i性能

    三、优化网络配置

    网络配置是性能调整的一项很重要的内容,而且很容易隐藏性能瓶颈。

    配置网卡使用最快速度和有效模式

    这针对自动检测,大多数缺省安装是NIC,如果这是可选的就尽量调整为“全双工”和最大化线速度。

    删除不需要的网络协议

    只保留TCP/IP协议。

    优化网络协议绑定顺序

    在每个网卡上设置主协议,典型地是TCP/IP,到协议列表的顶端。

    为Oracle禁止或优化文件共享

    理想地应该禁止文件共享功能来最小化安全泄露和网络交通,但如果你需要使用文件和打印共享,那么就配置系统中每个网卡的“连接属性”,设置“最大化网络应用程序数据吞吐量”

    四、内存调优

    内存优化是Windows平台的关键设置,首先了解一下Windows 2000平台的Oracle结构:

    基于线程的结构

    Windows2000是基于线程的结构,相反,Unix操作系统是基于进程的结构。这意味着Windows中更多的应用,包括Oracle在内,是以带有多个线程的单个进程的形式执行,这种基于线程的结构的确给Window2000带来优势——更容易共享内存。内存空间为每个进程分配,进程间共享内存很笨拙,要使用附加编码,线程是进程的子集,使用比进程少得多的内存。特定进程的所有线程共享同样的进程内存空间,同一进程的线程间共享内存比不同进程共享内存要快,这给基于线程的结构很大优势,更有效。

    在服务器上运行的每个应用程序都有一个,而且只有一个进程。进程是应用程序的载体,是用来容纳执行应用程序实际工作的线程的。从用户角度看,进程是不用任何专门工具就可以看到的组件。进程对其他应用程序组件的作用就像容器一样。它持有虚拟的存储空间、数据、系统资源和应用程序设置。虽然线程可以分配、重新分配和释放内存,但是进程接受初始的内存分配,并将它分配到请求内存的所有线程。线程是包含在进程内共享所有进程资源的单个执行路径。它还包含堆栈(存储在内存中的变量和其他数据)、CPU寄存器的状态信息(所以,线程可以恢复它的环境)、和在系统调度程序的执行列表中的一个登录项。每个线程规定了完成任务应用程序需要作的某种工作。

    使用Task Manager的主要问题是看不到任何线程。Task Manager被设计成从进程层将应用程序作为整体看待。当然还可以使用性能监视器来监视Windows下的Oracle内存使用。

    从“开始/程序/管理工具”选择“性能”启动“系统监视器”。注意,“性能”包括两个MMC插件:“系统监视器”和“性能日志和变更”。这时,需要一些被监视的计数器(计数器是一些性能指示器,用于对 Windows 2000的特殊对象进行统计,例如统计特定线程所要求的处理器时间)。单击“添加”按钮(在图中看起来象一个加号),将看到“添加计数器”对话框。首先需要选择想监视的“性能”对象。在包含“进程”对象和“线程”对象的“性能”下拉列表中选择。

    进程观察器(Process Viewer)是比较容易检查线程和进程的方法之一。可以在 Windows 2000 Support Tools 或Windows 2000 Resource Kit内找到一些工具。Windows 2000 Support Tools是Windows 2000的一部分,但是并不自动安装。支持安装的Windows Installer文件在ÍROM%\SUPPORT\TOOLS\目录下。只要在2000RKST.MSJ上右击,并从context菜单上选择安装即可。

    内存

    基于线程的结构的确有一些内存限制,因为单个进程由线程组成,而进程的地址空间是受限的,因此很少有空间是机动的。因为Windows 2000仍然是32为操作系统,单个进程地址空间被限制在4GB内,其中一半被操作系统保留,这2GB被OS保留的系统内存也被视为系统地址空间,他包括OS内核编码、硬件抽象层编码(HAL)和需要管理进程和OS交互的不同的其它结构,这2GB的系统地址空间是禁止应用程序进程访问的。因此,Windows 2000标准服务器单个应用程序进程可使用内存空间共2GB。在Windows 2000高级服务器启动文件boot.ini中有/3GB开关,改变这个比例到3GB,这项技术被称作4GB调优(4-gigabyte tuning,或4GT),我们将针对这个问题展开详细讨论。

    保留的内存是分配给线程的内存并且留作将来使用,但没有实际使用的内存。因为没有实际使用,因此它对其它进程仍然有效。但是,因为它已经被分配,它仍然由对拥有线程的进程的总的内存限制产生,因此,保留内存的计算针对2GB或3GB的限制,并且进程保留的和使用的内存的总和不能超过这个限制。

    除了系统中安装的物理内存之外,Windows 2000还使用虚拟内存。这实际上是驻留在硬盘上的内存。但是Windows 2000使得它对应用程序来说,就像是安装在机器上内存一样。当某个应用程序块要求访问那个内存时,Windows 2000就把另外的内存块复制到磁盘上,而把所要求的内存放到物理内存中,这些内存块的大小是4KB。也就是说,每次应用程序提出对内存的要求时,内存就被分配在4KB的页面内。在磁盘上模拟内存的文件叫做页面调度文件。Virtual Memory Manager(VMM虚拟内存管理器)是操作系统管理机器上的虚拟内存组件。所有的内存访问都通过VMM。这意味着每当操作系统需要进行内存调页时,就要提出VMM请求。

0
相关文章