[转贴]UNIX操作系统性能调优策略

发表于:2007-06-08来源:作者:点击数: 标签:
[color=blue:ca7b9a7d3e] 王彩梅 基于 UNIX 系统的开放性、可移植性、可扩充性、强大的多用户、多任务分时处理以及方便灵活的连网方式等卓越 性能 ,它已经在各行各业得到了最广泛地应用。根据报道, 金融 行业绝大部分应用UNIX作为 服务器 和PC机的操作系统

[color=blue:ca7b9a7d3e]

王彩梅

  基于UNIX系统的开放性、可移植性、可扩充性、强大的多用户、多任务分时处理以及方便灵活的连网方式等卓越性能,它已经在各行各业得到了最广泛地应用。根据报道,金融行业绝大部分应用UNIX作为服务器和PC机的操作系统平台,在其上开发各种应用软件,比如我们建设银行的城市综合业务系统、资金清算系统、信贷信息管理系统等;目前最流行的Inte.net,其上用的1000万台大小不同的主机都运行着各种UNIX操作系统。
  随着UNIX操作系统的普遍应用,越来越多的系统管理员都在努力于怎样提高它的性能问题,笔者就这一问题从几个方面加以叙述,愿对大家有所帮助。我们知道,影响UNIX系统性能的主要因素有三个:系统硬件、文件系统与核心参数。一般来说,在用户安装UNIX操作系统时,系统的硬件资源,比如CPU的主频、内存与高速缓存的大小以及硬盘的容量已经确定了,无法更改。因此这里讨论的主要问题是,在现有的系统硬件资源下,在安装UNIX系统时,如何通过操作系统的配置,使系统在运行某一特定应用时,性能表现更佳。下面就以上三个方面作一些探讨。

一、 系统硬件
  系统硬件资源的改善有利于操作系统性能的提高。比如,CPU主频的提高或者CPU的档次提高,系统性能自然就提高了;内存方面,将内存增大,一般都能使应用软件运行速度加快,其中,有无高速缓存(Cache),影响也较明显;对于多线程的应用(如数据库Informix的操作),采用对称多处理器服务器,能使性能得到明显提高。经测试,双CPU系统性能比单CPU系统性能可提高80%。又如,硬盘的容量以及硬盘控制器的类型也会影响UNIX的读写I/O性能。举个例子,采用fast&wide SCSI-Ⅱ类型的硬盘比采用fast SCSI-Ⅱ的更好;采用磁盘阵列比非磁盘阵列更好。另外,对于系统I/O方面,最好选用智能的网卡或多用户卡,由于这些控制卡有自己的处理器和缓存,可以减少UNIX系统资源的开销,这样UNIX就可腾出资源供应用软件使用。总之,系统硬件是影响UNIX性能的主要因素,用户应根据特定应用的需求与资金的情况合理地选购所需要的系统硬件。

二、 文件系统
  文件系统是UNIX操作系统单独的一块,它由文件、目录以及定位和访问他们所需要的信息组成,可以简单地认为文件系统是文件和目录组织起来的结构。每个UNIX系统在主硬盘上至少有一个根文件系统/root。当主硬盘容量足够大,为了保护数据和更方便地维护系统,最好将主硬盘划分为多个文件系统,即通常所说的/u文件系统。同时,通过安装另外的硬盘可附加更多的文件系统,从而扩展系统的存储空间。如在我们的清算系统中,就有二、三个硬盘,并建立了两个文件系统:/root和/home,后者专门用于安装数据库及应用软件。
  在安装/root文件系统过程中,需要确定交换区(swap area)的大小。交换区至少应和内存一样大,也可根据以下的公式来估算
  用户数*最大进程长度(512K)+大应用程序数*512KB
  通常对于大型数据库应用,交换区的大小一般在内存小于512M时,取内存的两倍,如果内存大于1G取与实际内存相等。
  如果在系统运行期间需要调整系统的交换区,可以使用系统命令swap来增加删除交换区的大小,具体使用方法可以参看UNIX系统的帮助文档。
  采用分离的文件系统有若干优点:1对于一个小的文件系统来说,操作系统只需检索少量的节点和数据块,文件存取速度比较快;2检查和清理两个小的文件系统比一个大的文件系统要节省较多时间;3在一个系统的崩溃过程中,一个较少活动的文件系统要比一个活动的文件系统所经受的破坏小;4此外,分离的文件系统后援容易。这就是我们使用的很多数据库及应用软件安装在分离的文件系统的主要原因。
  另外,维护文件系统的完整性是操作系统工作的组成部份 。UNIX系统在一些结构中存在一定的冗余,因此具有很强的纠错能力。UNIX使用fsck程序一般可修复被损坏的文件系统。任何损坏一般只影响一、两个文件。只有极少的情况,才会造成整个文件系统的瘫痪。但是,作为系统管理员或操作员,需要遵守以下几个原则,以维护文件系统的完整性,1在安装文件系统前一定要检查它;2在未拆卸文件系统前不能物理地搬走它;3在关闭文件系统和拆卸文件系统前必须使用sync命令,它可将高速缓存中的数据写回磁盘;4定期做文件系统的后援。
  文件系统面临的另一个问题是空闲空间可能不够。每个文件系统中至少保证有15%的空间是空闲的,UNIX系统才能运行得最好。如果文件系统的空闲空间少于15%,则系统操作通常变得比较迟钝。因此,特别是对于系统管理员来说,应该有规律地检查所有安装的文件系统的空闲空间总数,并提醒用户使他们不用的文件的目录空闲。当空闲空间不够时,应找出并删除临时文件和core文件,作文件系统的后援,如有必要增加另一个文件系统。

三、 核心参数
  在建立UNIX系统时,核心参数的协调如何是影响应用系统的重要因素。第一次建立系统时,系统会自动地为适应大多数应用产生一个确省的核心参数配置。但是,用户应该针对具体应用的模式和特性,调整核心参数配置,从而提高性能以适应特殊的应用。系统的核心控制着大量经常使用的、释放和重复使用的资源(包括缓冲区、表项及其它可定义的值,以管理特殊的资源,比如信号灯的数量等)。一般存在下列原因时,需对系统资源进行重新分配:
  ●安装了附加的硬件存储器。
  ●显示持续的错误表明系统的某些资源(如节点和表项)已用完。
  ●系统响应时间一直较慢,表明其它资源限制过死,系统不能高效地工作。
  ●资源需重新调整以适应特别应用的需要。
  专业化的应用为了获得最优的性能需要对关键资源(核心参数)进行重新分配。例如,使用大型的Informix数据库时,需要同时锁住多于当前文件锁所允许的文件个数;要求共享内存为系统总内存的四分之一等;系统存在大量的交互式通讯时,应用所要求的信号灯个数以及每个信号灯标示符的信号灯个数可能都超过系统的确省值。系统核心参数的调整应由有经验的系统管理员来完成,调整后应重新链接UNIX的核心,调整的参数才能生效。
  在系统持续出现某个错误时,需要重新分配系统资源。首先,设法少量地增加资源。如问题仍存在,则以它初始值的50%至100%增加资源,问题或许能够得到解决。如,出现这些信息时,“Inode Table Overflow”,“no file”或“no more process”应增加NINDOE、NFILE、NPROC等参数的值。NINDOE定义Ⅰ节点活动表的大小,一般为100—400,最大为16000,NFILE定义系统文件活动表的大小,一般为100—600,最大为16000,NPROC定义系统允许的最大进程数,一般取值为50—3000。
  磁盘的I/O操作可能是系统性能的一个瓶颈,解决方法有:1选择适当的缓冲区数目(NBUF和NHBUF),NBUF定义系统中全部缓冲区的数量,一般为100—600,最大为65536,NHBUF定义系统的混合队列,最小为32,默认为256,最大为131072,一般与NBUF配套调整;2组织文件系统以减少磁盘访问次数等。增加NBUF和NHBUF的值到某一点,便可提高系统的性能。一般系统内存为4MB的系统大约可提供600K的空间给缓冲区。NHBUF的值为2的n次方,大约为NBUF的四分之一。
  作为系统管理员,应该非常熟悉vmstat命令,因为vmstat是应用程序检测和协调系统性能的十分有用的工具。
  值得注意的是,系统核心参数的变化直接影响系统的性能,因此改变时应十分小心。应对影响具体应用的参数的不同组合做实验,以找到最优组合。

作者单位:建设银行河南省分行(郑州450002)[/color:ca7b9a7d3e]

原文转自:http://www.ltesting.net