收藏 分享(赏)

informix 影响CPU使用率的配置参数和环境变量.docx

上传人:dcs1276 文档编号:7921782 上传时间:2019-05-30 格式:DOCX 页数:5 大小:26KB
下载 相关 举报
informix 影响CPU使用率的配置参数和环境变量.docx_第1页
第1页 / 共5页
informix 影响CPU使用率的配置参数和环境变量.docx_第2页
第2页 / 共5页
informix 影响CPU使用率的配置参数和环境变量.docx_第3页
第3页 / 共5页
informix 影响CPU使用率的配置参数和环境变量.docx_第4页
第4页 / 共5页
informix 影响CPU使用率的配置参数和环境变量.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、影 响 CPU 使 用 率 的 配 置 参 数 和 环 境 变 量Online 配置文件 onconfig 中的下列参数对 CPU 的利用率有明显的影响: NUMCPUVPS SINGLE_CPU_VP MULTIPROCESSOR AFF_NPROCS AFF_SPROC NUMAIOVPS OPTCOMPAND NETTYPE NUMCPUVPS、MULTIPROCESSOR 和 SINGL_CPU_VP NUMCPUVPS 参数规定了 Online 开始启动的 CPU VP 的数量。分配的 CPU VP 的个数不要超过可以为它们服务的 CPU 的个数。 对于单处理器的计算机系统,Info

2、rmix 建议使用一个 CPU VP。 对于有 4 个以上 CPU,主要用做数据库服务器的多处理器系统,Informix 建议设置 NUMCPUVPS 的值等于处理器总数减一。 对于双处理器系统,运行两个 CPU VP 可能会改善性能。这需要监控操作系统的 CPU 使用情况。可以使用操作系统命令 sar 或 vmstat。 如果运行多个 CPU VP,应将 MULTIPROCESSOR 设置为 1,当设置 MULTIPROCESSOR 为 1 时, Online 以对应于多处理器的方式执行锁定。否则,设置该参数为 0。 注意:如果设置 SINGLE_CPU_VP 参数为,则 NUMCPUVPS

3、 参数的值也必须是 1,如果后者大于 1,Online 就不能初始化并显示下面的错误信息: Cannot have SINGLE_CPU_VP now-zero and NUMCPUVPS greater than 1AFF_NPROCS 和 AFF_SPROC 在支持 Online 和客户应用的系统上,可以通过操作系统把应用连接到某些特定的 CPU。这样做可以有效地保留剩余的 CPU 给 Online CPU VP 使用,它们是用 AFF-NPROCES 和 AFF_SPROC 配置参数连接到剩余 CPU 的。AFF_NPROCS 指定了连接到 Online 的 CPU VP 上的 CPU

4、的个数。连接一个 CPU VP 到一个 CPU 会引起该CPU VP 在这个 CPU 上的排它性运行。 AFF_SPROC 指定了 Online 把 CPU VP 连接到 CPU 上时所启动的 CPU。AFF_NPROCS 规定了计算机上可以帮定 CPU VP 的 CPU 的数目。NUMCPUVPS 参数指定了 Online 将启动的CPU VP 的数目,AFF_SPROC 参数指定了 Online 连接第一个 CPU 序号。例如,某个 Online 系统所在的硬件平台有 8 个 CPU,AFF_NPROCS 设置为 8(即可用于帮定 CPU VP 的 CPU 有 8 个),NUMCPUVPS

5、 设置为3, AFF_SPROC 设置为 5,则 3 个 CPU VP 需要帮定到 CPU 上,是从第五个 CPU 开始,帮定到第五、六、七个CPU 上。需要注意的是,AFF_SPROC 的取值是在 0 和(AFF_NPROCS - NUMCPUVPS + 1)这两个值之间的,不能大于后者。 NUMAIOVPS 参数 NUMAIOVPS 指定最初产生的 AIO VP 的数目。如果所在的操作系统不支持核心异步 I/O(KAIO),Online使用 AIP VP 来处理所有数据库 I/O 请求。 推荐的 AIP VP 数目取决于 Online 使用的硬盘个数。如果所在操作系统不支持或没有使用 KA

6、IO,则 Informix 建议对包含数据库表的每一个磁盘分配一个 AIO VP。可以对 Online 频繁访问的每六块增加额外的 AIO VP。 如果所在的操作系统使用 KAIO VP,CPU VP 将直接向操作系统发出原始的 I/O 请求。在这种情况下,可以只配置一个 AIO VP,此时 AIO VP 只处理文件系统方式的 chunk。如果文件系统方式的 chunk 有增加时,可以增大 AIO VP 的数目。分配 AIO VP 的目的是要分配足够的 AIO VP 以便 I/O 请求队列的长度保持很短,即队列中保持尽可能少的 I/O 请求。OPTCOMPIND OPTCOMPIND 参数帮组

7、优化程序为应用选择合适的访问方法。 如果 OPTCOMPIND 等于 0,优化程序给予现存索引优先权,即使在表扫描比较快时。 如果 OPTCOMPIND 设置为 1,给定查询的隔离级设置为 Repeatable Read 时,优化程序才使用索引。 如果 OPTCOMPIND 等于 2,优化程序选择基于开销选择查询方式。,即使表扫描可以临时锁定整个表。 NETTYPE NETTYPE 参数为 Online 实例支持的每个连接类型配置轮询线索。如果 sqlhosts 文件中支持一个以上的接口或协议的连接,就必须对每个连接类型规定独立的 NETTYPE 参数。也即,每中与数据库服务器名字有关的连接类

8、型都需要单独指定一个 NETTYPE 参数。 每个用 NETTYPE 表项配置或动态加入的轮询线索在不同的 VP 上运行,轮询线索可以在两类 VP 上运行:NET VP和 CPU VP。为得到最佳性能,Informix 建议使用 NETTYPE 表项为 CPU VP 类只分配一个轮询线索,将其余轮询线索轮询线索分配给 NET VP。分配给任何一种连接类型的轮询线索不得超过 NUMCPUVPS 的取值。 单 CPU 计算机上每个轮询线索的最佳连接个数不超过 300,多 CPU 机上可多达 350 个。但一个轮询线索最多支持 1,024 甚至更多的连接。NETTYPE 的配置格式如下:NETTYP

9、E connection_type,poll_threads ,c_per_t ,vp_class connection_type 标识轮询线索分配的连接协议。 poll_threads 是分配给该连接类型的轮询线索数目。对任何连接类型,这个值不能超过 NUMCPUVPS 值。 c_per_t 是每个轮询线索的连接数目。可以用如下公式计算这个值: c_per_t = connections / poll_threadsconnections 是所希望指定的连接类型支持的最大连接数。对于共享内存连接(ipcshm),该值应该加倍以获得最好的性能。 vp_class 是可运行轮询线索的 VP 类。

10、如果 CPU VP 上只运行一个轮询线索,那么指定为 CPU VP。为了达到最好性能,当要求多个轮询线索时应该指定为 NET VP。 如果 c_per_t 的值超过了 350,而当前连接的轮询线索数小于 NUMCPUVPS,可以增加轮询线索数目,但不能超过 NUMCPUVPS,然后重新计算 c_per_t 的取值。 注意:每个 ipcshm 连接需要一个信号量。当 c_per_t 的值很大时,对于某些操作系统要相应增加信号量。 如 何 监 控 系 统 CPU 的 使 用 情 况 : 1. 使用 UNIX 的监控工具 SAR 或 VMSTAT 来监控 CPU 的使用情况。例:sar 5 10 %

11、usr %sys %wio %idle 10:06:22 34 1 0 65 10:06:27 34 2 0 64 10:06:32 34 1 0 65 10:06:37 17 1 0 82 10:06:47 1 1 0 98 连续监控%idle 来确认 CPU 没有超载。如果 %sys 的值很大则可能应用有问题。2. 监控 CPU VP 的方法onstat -g glo Individual virtual processors: vp pid class usercpu syscpu total 可以通过该监控看出 CPU 忙占用的时间 (隔 60 秒分别监控结果)。如果非常忙,则需要增加

12、 CPU VP。 onstat -g rea Ready threads tid tcb rstcb prty status vp-class name 如果有大量的线索在等待队列中,则说明需要增加 CPU VP。 影 响 内 存 使 用 效 率 的 Online 配 置 参 数 SHMVIRTSIZE SHMADD BUFFERS RESIDENT STACKSIZE LOCKS LOGBUFF PHYSBUFF SHMVIRSIZE SHMVIRTSIZE 参数规定了初始分配给 Online 的共享内存的虚拟区的大小。共享存储器的虚拟区存储与会话、请求有关的数据及其它信息。虽然 Onlin

13、e 按处理大型查询或高峰负荷的需要增加共享内存给虚拟区,但共享内存的分配增加事务处理的时间,Informix 建议设置 SHMVIRTSIZE 以提供一个满足一般日常操作需要的虚拟接口。 SHMADD SHMADD 参数规定 Online 自动加到虚拟区的共享内存增量的大小。在决定该值的大小时有些折中因素。增加共享内存要占用 CPU 周期:每次的增加量越大,增加次数就越少,留给其它的进程的内存也越少。通常采用大增加量,但当内存负荷很重时,少量增加使其他程序更好的共享内存资源。Informix 有如下建议: 内存大小 SHMADD=512 32,768KBBUFFERS BUFFERS 是可以用

14、于 Online 的数据缓冲区数。这些缓冲区驻留在驻留区,用来缓存主存中的数据库的数据页。可用的缓冲区越多,所需的数据页就越可能用于前一次请求而已经在内存里。这个参数对数据库 I/O 和事务处理吞吐量有明显的影响。但是,分配过多的缓冲区会影响内存系统并导致过多的页面活动。 Informix 建议设置 BUFFERS 为物理内存 (以 MB 为单位) 的 20%到 25%。实际 BUFFERS 的单位为页,不同操作系统的页大小是不同的,因此需要计算。 使用 onstat -p 监控读缓存的频率。这个频率代表一个查询请求的数据库页已经在共享内存里的百分比。(还没有存在的页必须从磁盘拷贝到内存中)。

15、如果此值很低,可增加 BUFFERS 并重新启动 Online。在增加 BUFFERS 值时,到达某一点后,增加 BUFFERS 也不再明显改善读缓存的频率,或者达到操作系统共享内存分配的上限。 如果读高速缓存的比率很高,则应下调 BUFFERS 并重启动 Online。 RESIDENT RESIDENT 参数规定是否强制共享内存驻留作为 Online 共享内存驻留区。这个参数只对支持强制驻留的机器有效。Online 中的驻留区,包含用于数据库读写作业的 LRU 队列。 LOCKS 参数 LOCKS 设置任意时刻可用的锁的最大数量。 Online 中每个锁需要占用驻留区段的 44 个字节,分

16、配共享内存时要考虑锁所用的资源。一般锁可以分配的大些,对应用比较忙的系统可以到 800 万以上。 LOGBUFF 参数 LOGBUFF 指定为三个用来保存逻辑日志记录的缓冲区分别保留的共享内存的数量。这些缓冲区保存着逻辑日志记录,直到它们被刷新到硬盘上的逻辑日志文件。缓冲区的大小决定了它被添满的频率,从而决定了它必须被刷新到硬盘上的逻辑文件中的频率。 PHYSBUFF 参数 PHYSBUFF 指定为两个用来暂时保存将被修改的数据页的缓冲区分别保留的共享内存的数量。缓冲区的大小决定了它被添满的频率,从而也决定了它被写到硬盘上的物理日志的频率。 如 何 监 控 内 存 使 用 情 况 : 1. 使

17、用 ONSTAT -G SEG 命令监控共享内存的 SEGMENTS。 onstat -g seg Segment Summary (resident segments are not locked) id key addr size ovhd class blkused blkfree这里三行分别代表了驻留内存段(class 为 R)、虚拟内存段(class 为 V)、消息内存段(class 为 M)。blkused 和blkfree 分别代表使用空间和空闲空间。如果虚拟内存段的 blkused 频繁增加,则需要将 SHMVIRTSIZE 和SHMADD 相应调大,调整后重新启动 Onlin

18、e。 2. 使用 ONSTAT -P 1)ovlock 指出分配的 locks 的不足量,如果该值持续增长,则需要增大参数 LOCKS 的值。 2)ovbuf 指出分配的 buffers 的不足量,如果该值持续增长,则需要增大参数 BUFFERS 的值。 3)lockwaits/lockreqs * 100 应该小于 1%,如果这个计算值比较高,则应有如下考虑:。 是否用了太多的 page level locks。如果是,可以考虑用 row level locks。 考虑用了 table level lock 的应用是否可以用其它类型的 lock。 是否有太多的 isolation 设置为 R

19、epeatable Read 和 Cursor Stability。确定是否可以使用更多的 Dirty Read来替代。 4)bufreads %cached 的值指出 buffer 读的百分比,该值建议大于 95%,否则增大 BUFFERS,bufwrits %cached 的值指出 buffer 写的百分比,该值建议大于 85%,但太大如大于 97%则可以将 BUFFERS 相应减少些。 。 影 响 I/O 的 配 置 参 数 CKPTINTVL PHYSFILE CLEANERS LRUS LRU_MAX_DIRTY LRU_MIN_DIRTY CKPINTVL,PHYSFILE CKP

20、INTVL 参数指定检查点之间的时间间隔。当检查点间隔到了,则系统执行检查点操作。但如果这期间的所有数据物理上是一致的,Online 可以跳过检查点操作。另外,一旦物理日志(PHYSFILE)的 75%已满,检查点也会发生。通过设置 CKPTINTVL 为长时间间隔,可以利用物理日志容量来触发基于实际数据库活动而不是任意时间单位的检查点操作。但是,使用长检查点间隔回增加失败事件之后的恢复时间。 LRUS、LRU_MAX_DIRTY 和 LRU_MIN_DIRTY LRUS 参数指示共享内存缓冲池中设置的最近最少使用(LRU)队列数目。配置较多的 LRU 队列将允许有更多的页清除器操作,并减少每

21、个 LRU 队列的大小。对于单 CPU 系统,Informix 建议设置 LRUS 参数为最小值 4。对于多CPU 系统, Informix 建议设置 LRUS 为最小值 4 和 NUMCPUVPS 的取值之中较大的一个。 可以用 LRUS 和 LRU_MAX_DIRTY 及 LRU_MIN_DIRTY 来控制在满的检查点之间页被刷新到磁盘的频度。在某些情况下,通过设置这些参数,使得在检查点发生时需要刷新的修改的页数量很少,可以达到高的吞吐量;这样,检查点的主要功能是更新物理日志和逻辑日志文件。 CLEANERS CLEANERS 参数指定执行的页清除线索的数目。对于少于 20 磁盘的系统,I

22、nformix 推荐 CLEANERS 的取值为磁盘的个数。对于 20 至 100 的磁盘的系统,Informix 推荐每两个磁盘分配一个 CLEANERS。对于更多的磁盘系统,Informix 推荐每四个磁盘分配一个 CLEANERS。 如 何 监 控 系 统 的 I/O 情 况 使用 onstat -g ioq,onstat -g iof, onstat -d 监控磁盘的负载情况: onstat -g ioq AIO I/O queues: class/hvp-id len maxlen totalops dskread dskwrite dskcopy 如果 aio 队列很大,则可增加一个 AIO VP。如果某些 class 为 gfd 所对应的 len 和 maxlen 非常大,则需要考虑你的数据分布是否合理,记住这些 gfd 所对应的 hvp-id 的值,再通过 onstat -g iof 查出是那几个设备: onstat -g iof gfd pathname totalops dskread dskwriteio/s这里 gfd 的值等于 onstat -g ioq 中那几个 hvp-id 的值所对应的 pathname 就是 I/O 负载较大的设备。用onstat -d 可确定是哪个 dbspace。则可以考虑重新分配磁盘

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报