大家好~ 第一次来这边发问,如有发错板块麻烦告知协助搬到正确板块
首先说系统架构:有2台Server(一台LDAP做security验证;一台做AP,包含有DB2/Informix/Cognos/Web service...etc)
AIX 6.1.8.3 (6cpu , 2 core , 60G Ram ; stacksize(hard:unlimited, soft:8192)+openfiles(hard:unlimited, soft:8192) )
Cognos 10.2 no fix pack(DB2是contentDB,Informix是Report DB, Cognos是报表展现工具)
问题发生在AP server:
我们发现在问题发生时会产生core(PROD或是UAT进行压力测试时),从core dbx where output解析发现是 tcmalloc问题。(MALLOCTYPE=tcmalloc)
所以开发建议是否可以disable tcmalloc,于是我们使用MALLOCTYPE=watson来规避这个问题。
使用MALLOCTYPE=watson时的确规避了error以及core产生,但也严重影响了Cognos报表执行的效能。(执行月报从50分钟增加到3小时)
图形一显示了2次压力测试的结果,从nmon解析的MEM察看(#1为MALLOCTYPE=tcmalloc,有core产生;#2为MALLOCTYPE=watson)
图形二显示了nmon解析中的MEMNEW
现在我的问题是:
Q1: 从NMON看来当时可以用内存的确很低,但为什么只有#1有Core,#2压测没有core/错误产生呢
Q2: 想要知道是AIX OOM还是Cognos的process OOM. 应该从哪里察看呢
Q3: 从NMON中UARG可以看出当时有process执行,但要如何查询那一个process把memory使用完了
麻烦大家了,还有需要什么讯息可以再补充。谢谢
收起