扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:limeinan 来源:赛迪网 2007年9月20日
关键字: 数据库 Informix production tablename
onstat -g rea监控了就绪队列中的线程数目。包括准备运行而且在等待资源的线程。理想的状态下是输出极少的条目或者不显示任何条目。如果输出的某种 VP 类条目持续增长, 那么就要考虑在该类中添加VP。
在onstat-g iog指令的输出中,最需要关注的列是len列。len列的值应该总是为 0 或接近于 0。如果该列的值很高并持续增长,那么我们可能需要添加另一个 AIO/KAIO 虚拟处理器来减少磁盘 I/O 负载。
监控虚拟处理器的方法比较多,可以使用Informix IDS查询语句在系统表中找到虚拟处理器的使用情况:还可以在Unix操作系统中使用系统命令sar、top等来监控操作系统的CPU使用情况;还可以在一段时间内的重复执行Informix IDS命令onstat-g glo来监控各个虚拟处理器已占用的CPU资源。判断CPU的忙闲。
内存使用效率的参数调整和监控
Informix IDS 使用的内存部分被数据库服务器线程以及其他用户和虚拟进程共享,所以这部分的内存叫做共享内存,共享内存减少磁盘 I/O, 提供了最快地进行进程间通信的方法,还可以使数据库服务器减少总的内存使用。
Informix IDS共享内存分为四个部分:驻留部分、虚处理部分、消息部分和虚拟扩展区部分,其中消息部分只有在客户机和服务器采用共享内存方式连接时才有,而且尺寸很小。虚拟扩展区也极小,它包含了用于 DataBlade 模块的线程 heaps 和其他在用户定义的虚拟处理器中运行的用户定义例程。
1.驻留内存部分的参数
驻留内存部分又可以细分为:共享内存头、缓冲区,逻辑日志缓冲区、物理日志缓冲区、锁。
共享内存头在共享内存中包含所有其他结构的描述,还包含到这些结构位置的指针共享内存头是在初始化 Informix IDS 时创建的,并且不能进行调优。
缓冲区存储 Informix IDS 从 dbspace 所读取的数据,是数据库对象数据,如表的数据或索引数据。缓冲区占用了驻留内存中最大的部分。所有的缓冲区被组织到一个较长的最近最少使用(least-recently-used,LRU)缓冲区队列中,并通过最近最少使用(LRU)机制进行管理。定义缓冲区的参数是BUFFERS。称作指定共享内存缓冲区的最大数目,该参数对数据库I/O和事务处理吞吐量有明显的影响。但是,如果分配过多的缓冲区会影响到操作系统的内存并导致过多的交换内存页面的活动。一般建议设置为物理内存的20%到25%。
逻辑日志缓冲区是用来存储最后一次备份开始的逻辑日志记录的。逻辑日志记录保存了 SQL 语句对数据库数据进行的修改。在初始化Informix IDS 时,它创建三个逻辑日志缓冲区,以循环方式运作,来确保将获得的每一条逻辑日志记录都被刷新到磁盘中。LOGBUFF定义了逻辑日志缓冲区的数量,缓冲区的大小决定了它被添满的频率,从而决定了它必须被刷新到硬盘上的逻辑文件中的频率。一般情况下,Informix IDS建议设置为16KB或32KB
物理日志缓冲区在Informix IDS修改或着删除记录之前,将该记录的原始值存入到物理日志缓冲区中,在事务失败时,用于恢复数据,以保持数据的一致性。在Informix IDS初始化时,创建了两个物理日志缓冲区,也以循环的方式运作。与物理日志缓冲区对应的参数是PHYSBUFF。
锁包含可用锁的数量,每个用户对数据库的连接并执行数据库的操作,都需要一定数量的锁。在Informix IDS9.2以后的版本中,当用户的锁不够时,可以动态的分配锁的数量。在以前的版本中,该数值是固定不变的。与锁对应的参数是LOCKS。一般情况下设置为2000到8000000个。
2.共享内存虚拟存储区的参数
共享内存虚拟存储区存储各种各样的不同数据,可以分为:内部表、较大的缓冲区、会话数据、线程数据(堆栈和堆)、数据分布缓存器、字典缓存器、SPL 例程缓存器、SQL 语句缓存器、排序池、全局池。
影响虚拟存储区的参数是:SHMADD、SHMVIRTSIZE 、STACKSIZE。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者