- 论坛徽章:
- 0
|
本帖最后由 qingzhou 于 2013-04-27 16:46 编辑
1. "OS/400独特的系统结构导致内存使用率对于 OS/400系统来说并无实际意义,OS400系统内存使用率一般都在90%以上。" 怎么理解这句话。
A:
OS/400是单一存储结构,这个独特的系统结构导致内存使用率对于 OS/400系统来说利用率较高,系统会把内存(MEMORY)和外存(ASP)作为单一存储池,通过SLIC实现存储的自动优化和管理。当系统接到指令需要处理数据时,首先从硬盘(ASP)读入数据到内存(MEMORY),然后再进入处理器进行处理;处理器处理完毕,再通过内存写回硬盘。一旦系统运行,内存总是在承担频繁交换数据和存放数据的双功能,所以你会感觉到OS400系统内存使用率通常较高。
2. 400的内存使用率无论什么时候一般都接近100%. 比如我的服务器有内存10G,无论什么时候都这么高吗?如果系统闲时,不会free出一些内存出来吗?
A:
通常OS/400应用使用的时候,尤其在业务高峰期,你会看到内存使用率接近100%,这个是正常现象,说明系统在快速处理数据。
如果业务低谷时,或者没有运行业务系统时,内存使用率并没有想象中的接近100%使用。为了合理利用内存资源,OS/400系统自动进行了一些优化内存措施,比如QINTER交互子系统的使用内存规则,由于交互作业在OS/400操作系统层面的优先级为20较高,所以往往交互作业有优先处理数据的优势,但是,有时如果交互作业处于闲置状态,那么系统在CLASS: QGPL/QINTER使设定了Eligible for purge(*YES)默认参数,当交互作业占用内存但暂时又不在处理数据时,系统会自动把读入的数据先存放回硬盘,需要处理时再读入,这样就可以把内存腾出给其他作业运行,从而提高了系统运行效率。
Display Class Information
System: XXXXXXX
Class . . . . . . . . . . . . . . . . . . . . . . : QINTER
Library . . . . . . . . . . . . . . . . . . . . : QGPL
Run priority . . . . . . . . . . . . . . . . . . : 20
Time slice in milliseconds . . . . . . . . . . . : 2000
Eligible for purge . . . . . . . . . . . . . . . : *YES
Default wait time in seconds . . . . . . . . . . : 30
Maximum CPU time in milliseconds . . . . . . . . : *NOMAX
Maximum temporary storage in megabytes . . . . . : *NOMAX
Maximum threads . . . . . . . . . . . . . . . . . : *NOMAX
Text . . . . . . . . . . . . . . . . . . . . . . : Interactive Subsystem Class
此外,当我们把自动调整性能的系统值打开后system value: QPFRADJ,Performance adjustment(2=Adjustment at IPL and automatic adjustment),我们也可以在主存储池(main storage pools)使用Expert Cache,体现为Paging Option (*CALC)参数,也就是说允许主存储池动态使用内存资源,这个也是共享存储池的特征。
3. 400内存使用原理是怎么样的。*machine/*base/*spool/*interactive 这些内存池怎么分配,private/share 内存池该如何理解。subsystem 如果指定多个system pool,那里面的job会怎样使用内存
A:
*machine/*base/*spool/*interactive 这些内存池通过系统自动合理分配,也可以通过系统值QMCHPOOL(Machine storage pool size)和QBASPOOL(Base storage pool minimum size)调整*MACHINE和*BASE存储池的大小,但是不建议随意调整,尤其是*MACHINE存储池,这个是充分保证OS/400稳定运行的安全保障。*BASE存储池是默认存储池,也是基本存储池,当我们自定义共享存储池(*SHRPOOL1,2,3...)时,系统会从*BASE存储池中划分出内存给共享存储池(*SHRPOOL1,2,3...)使用,当子系统结束后,内存又重新回归到*BASE存储池。
private/share 内存池该如何理解呢?OS/400存储池分2类,即共享存储池(*share)和私有存储池(*private),当我们创建子系统时,如果直接分配存储池固定大小,这个存储池就叫私有存储池(*private),该大小也从*BASE存储池直接划分出来。由于私有存储池(*private)固定了内存大小,所以无法动态分配,当系统繁忙时,其它子系统也无法从私有存储池(*private)抢夺内存资源,当系统闲置时,同样私有存储池(*private)也不会自动释放内存资源,所以要根据实际情况谨慎设定私有存储池(*private)。OS/400中共支持64个共享存储池,其中包括系统定义好的*machine/*base/*interact/*spool这4个共享存储池,我们可通过WRKSHRPOOL命令来定义其它60个共享存储池(*SHRPOOL1,2,3...60)。交互作业和批处理作业不宜混合使用同个存储池,否则影响运行效率。
subsystem 如果指定多个system pool,那里面的job会怎样使用内存呢?我们在subsystem的Routing entries定义了不同的进入子系统的路径,每个Routing Entry Detail定义了该路径使用的Pool identifier,该Pool identifier对应的是子系统描述中2. Pool definitions的pool ID号,由此来对应哪个路径进入该子系统后使用哪个存储池。
4. 如何和用户解释。如果在给银监的报告上写100%,估计要嗝屁了,该怎么给个数。
A:
如果用户购买了LICPGM:
5761PT1 V6R1M0 5050 Performance Tools for i5/OS - Base
5761PT1 V6R1M0 5101 Performance Tools - Manager Feature
可以通过OS/400命令行执行GO PERFORM(IBM Performance Tools for i5/OS)- 2. Collect performance data 先启动性能收集服务,然后再通过7. Display performance data查看某一时间段的内存使用率。此外,还可以通过一些功能键查看其它性能指标,F6=Display all jobs/F13=Display by subsystem/F14=Display by job type/F15=Display by interval/F19=Display pool detail/F20=Display disk detail/F21=Display communications detail,还可以参考性能分析后系统提供的建议。
Display Recommendations
System: XXXXXXX
Member . . . . . . : Q116000004 Library . . . . . : QPFRDATA
System . . . . . . : XXXXXXX Version/Release . : 6/ 1.0
Start date . . . . : 04/26/13 Model . . . . . . : 520
Start time . . . . : 00:00:05 Serial number . . : 65-9ECCF
Partition ID . . . : 002 Feature Code . . . : 7457-8955
QPFRADJ . . . . . : 2 Int Threshold . . : 100.00 %
QDYNPTYSCD . . . . : 1 Virtual Processors : 1
QDYNPTYADJ . . . . : 1 Processor Units . : .50
Type options, press Enter.
5=Display details
Option Recommendations and conclusions
Recommendations
Decrease pool size for listed pools.
Increase pool size for listed pools.
Size of pools needs to be increased.
Conclusions
Disk over runs exceeded guideline.
More...
F3=Exit F6=Print F9=Tune system F12=Cancel F21=Command line
这样我们提供给用户的报告就能够做到科学、合理。
|
|