Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44509
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-20 19:32
文章分类
文章存档

2013年(15)

我的朋友

分类: 系统运维

2013-03-20 19:36:05

原文地址:AS400内存使用率的问题 作者:passthru

问题:
 
    根据银监要求,用户有一份报告需要“核心系统内存平均使用率“这个数据,跑来问我。网上查了一些资料,AS/400采用单级存储技术,系统中没有主存(内存)辅存(硬盘)区别。有下面一些疑问,请论坛里知道的朋友帮忙解答:
    1. "OS/400独特的系统结构导致内存使用率对于 OS/400系统来说并无实际意义,OS400系统内存使用率一般都在90%以上。" 怎么理解这句话。
    2. 400的内存使用率无论什么时候一般都接近100%. 比如我的服务器有内存10G,无论什么时候都这么高吗?如果系统闲时,不会free出一些内存出来吗?
    3. 400内存使用原理是怎么样的。*machine/*base/*spool/*interactive 这些内存池怎么分配,private/share 内存池该如何理解。subsystem 如果指定多个system pool,那里面的job会怎样使用内存
    4. 如何和用户解释。如果在给银监的报告上写100%,估计要嗝屁了,该怎么给个数?
 
答:
 
    首先要理解400平台的运行机制。
    400平台是数据库操作系统,os400是建立在DB2/400之下,而不是像unix/windows平台,数据库在os之下的。

    400平台的物理内存都是os400操作系统自动控制的。os400采用pagein和pogeout的调度机制来管理内存的使用。当400平台下的一个应用系统或多个应用系统同时运行时,os400把应用代码和应用数据用page的形式进行装载和卸除。如果内存足够大,最理想的情况下,把应用系统的代码和数据都装载的物理内存中,这样运行效率是最高的。但是,往往物理内存和应用系统的代码和数据不是1+1=2的形式,根据400平台下各应用系统的架构的千差万别,应用系统在运行过程中,必定需要大量的辅助内存,即磁盘上缓存,来与物理内存一起运行应用系统。比如,在ERP系统下,通常用到大量的queryfile,每一个*pgm在被调度之前创建的临时queryfile都要使用一定的运行数据空间。再一个例子,比如网上交易系统,由于大量使用sql操作代码,sql代码使用过程中会需要一定的临时运行数据空间。这些都是会产生1+1>2的效应。

    在CUP处理速度足够快,物理内存非常大的前提下,如果把所有应用系统的代码和数据,包括运行系统需要的临时空间都放在物理内存中,就像股票交易系统,最求处理速度比计算机处理平台投入成本更重要,那又是另外一回事了。前面说过os400与其它操作系统不同之处,所以,IBM的售前工程师一般都会根据客户的应用系统的交易类型和交易量,给客户推荐性能价格比最佳的400平台的配置方案。在通常400平台的配置下,都会使得物理内存使用率达到接近饱和和完全饱和。在这个前提下,各类缓冲池(pool)可以体现它的效率,os400用来pagein和pageout。缓冲池在os400显示数据下,体现un-protected数值,包括代码和数据,这些缓冲池一部分建立在物理内存中,一部分建立在没有RIAD保护的单一磁盘上。缓冲池*base用来装载os400代码和数据的;其它缓冲池根据应用系统的需要,在安装os400系统时可以做出配置方案,进行缓冲池的配置。创建后的缓冲池可以根据应用系统的需要,分配到相应的subsystem下。在使用这些应用系统的缓冲池,通常都是让os400自动进行管理和调度使用,也可以用SETOBJACC命令把应用系统的代码或数据装载到指定的缓冲池中,目的是提高运行处理速度。
阅读(1263) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~