动态服务器必须具有唯一的SERVERNUM。给参数用作系统共享内存段的码(key)。客户连接时根据参数DBSERVERNAME确认服务器,所以该参数也必须唯一,同时它也必须与通讯配置文件中的条目匹配。DBSERVDERNAME或DBSERVDERALIASES都必须与一种通讯接口(共享内存,tli,sockets)相应。在通讯配置文件中必须包括所有的服务器名。 如果系统内存严重不足,UNIX会将某些进程整个交换出实存。通过设置RESIDENT参数,可以保证共享内存的驻留段始终在共享内存中不会被交换到磁盘上,否则系统的性能将会受到极大的影响。
许多UNIX操作系统会降低长时间运行的进程的优先级。组成服务器的oninit进程因而会受到影响,导致系统性能下降。参数NOAGE将禁止这种情况的发生。该参数与系统平台有关。如果在系统中出现上述现象,但系统又不支持NOAGE参数,可以利用renice命令提高优先级。ps命令的PRI列表示进程的优先级。在某些系统上,利用top命令也可以显示进程优先级。
NETTYPE
参数NETTYPE中定义了客户与动态服务器连接的方式。如果要与系统连接,就必须为每一类连接定义一个NETTYPE以记录网络和通讯协议的类型。
NETTYPE的第二个字段指定了为该协议启动的轮询(poll)线索数。这些轮询线索负责客户与服务器间的通讯。一般来说,一个轮询线索最多可以为100个用户服务。关于如何配置线索数目才能达到最优,将在以后的章节中详细讨论。
NETTYPE的第三个字段决定了该协议的连接数。共享内存协议利用此参数决定共享内存消息段的大小。NETTYPE的最后一个字段决定了轮询线索应在那一种VP类上运行。有两种VP类可以选择:CPU或NET。属于NET类的VP包括SOC,TLI或SHM。在CPU VP上运行的效率最高,但只能运行一种通讯协议。
如果轮询线索运行在CPU VP上,轮询线索数不能超过CPU VP数。但如果轮询线索运行在NET类VP上,轮询线索数将决定SOC,TLI,或共享内存VP的数量,意即系统将为每一轮询线索启动一个NET类VP
如果如下设置NETTYPE
sockcp,2,10,NET
系统会启动两个SOC VP。
注意每一轮询线索能支持的连接数即为最大用户数,所以上例中的设置能支持20个用户。请不要超过最大用户限制,否则会给轮询线索带来许多负担。
配置CPU VP
正确配置CPU VP的数量对于系统的性能有很大的影响。系统需要有足够多的CPU VP来加速线索的执行从而保证系统中其它进程能占用足够的CPU时间。
具体的配置方法如下:
利用onstat -g rea 命令监控线索就绪队列。检查CPU VP类线索的数目是否总是大于CPU VP地数量。若是,则表明总是有有一些CPU线索在等待CPU VP,应该增加CPU VP数量。
命令onstat -glo可以显示CPU VP的信息。
从系统的角度来说应随时监控分析CPU的使用情况,以了解系统是否还要潜力可挖。有很多系统提供这一类工具,例如sar。只要有CPU空闲时间或I/0等待时间,就说明可以增加CPU VP数量以完成更多的任务(在相同时间内)。但如果系统CPU资源已充分利用,增加CPU VP的数量也不会提高系统性能。
处理器绑定
所谓处理器绑定(processor affinity)是特定的进程只能在特定的CPU上执行。特定的CPU仍然能为其它进程服务,但特定的进程只能在该CPU上执行,如果平台支持,INFORMIX动态服务器可以将CPU VP(oninit)绑定到指定的处理器上。
处理器从0开始连续编号。在某些SMP平台上,由一个CPU专门处理系统中断。如果配置的CPU VP数量小于物理处理器数量,则应避免将CPU VP绑定到处理中断的CPU上。利用mpstat 命令可以查出那一个CPU处理中断(由intr列标识)。
如果系统用户非常多(>;300).用户进程可能会与CPU VP争夺处理器。此时可以将CPU VP绑定到一些处理器上,而将用户进程绑定到另外的处理器上。例如,系统有16个CPU,则将CPU VP绑定到0至10号CPU上,而将所有的应用进程绑定到11-15号进程上。如何在这两类进程分配CPU数目,需要通过测试才能达到较优的性能。
配置环境
共享内存参数的最优配置依赖于动态服务器的运行环境。我们讨论的系统运行环境包括:数据载入,索引建立,OLTP和DSS。在实际的系统中,最好为上述不同的环境分别建立参数配置文件。
例如:
数据载入: onconfig.load 索引建立: onconfig.index OLTP: onconfig.oltp DSS: onconfig.dss |
最新相关文章
发表评论