j2_inodeCacheSize调优操纵和内存DR操纵的潜匿伤害副浸染
检测和修复错误的 maxtotalpg 可通过一些方法检测和修复 inode 缓存堆的错误 maxtotalpg 值。 首先,我们可以使用 kdb 并运行 pile 命令来检查 maxtotalpg 是否等于 nPagesPerCacheClass,就像前面介绍的那样。如果 maxtotalpg 和 nPagesPerCacheClass 的值之间出现任何差异,那么我们可以重新启动系统,这样 maxtotalpg 就会恢复到默认值。我们还可以在 kdb 中手动将 maxtotalpg 修改为正确值。 还有另外一种更方便的方法。我们可以先将 j2_inodeCacheSize 增加为一个较大的值,然后将它降低到必要的值。类似的,可以先添加更多的内存,然后将内存删除到需要的内存量。这样就可以得到正确的 maxtotalpg 值。 我们还可以编写一个程序来自动检查和修复 maxtotalpg 值(参见 pilefix.c)。 首先,使用 kdb 获取 iCache 的内存地址: (0)> ns 然后,通过 /dev/kmem 界面读取和对比 maxtotalpg 和 nPagesPerCacheClass 的值。如果 maxtotalpg 的值不同于 nPagesPerCacheClass 的值,那么我们可写回正确的值: open("/dev/kmem", O_RDWR, 0); kread((unsigned long long )icachep, (char *)&icache, sizeof(icache)); ccp = (iCacheClass_t *)icache.cacheTable; for (i=0; i<icache.nCacheClass; i++, ccp++){ kread((unsigned long long )ccp, (char *)&cc, sizeof(iCacheClass_t)); kread((unsigned long long )pmaxtp, (char *)&max_total_pages, 8); if(icache.nPagesPerCacheClass != max_total_pages){ max_total_pages = icache.nPagesPerCacheClass; kwrite((unsigned long long)pmaxtp, (char *)&max_total_pages, 8); } } 结束语 在 AIX 6.1(高于 6100-04 的版本)和 AIX 7.1 中,在执行 j2_inodeCacheSize 调优操作或 DLPAR 内存操作后,inode 缓存类的最大堆大小只能降低。IBM 最近提供了一份特许程序分析师报告 (APAR),表明 IV41462 可以避免此问题。如果 AIX 系统没有应用 IV41462,那么可以使用本文中介绍的方法来避免 inode 缓存耗尽。 下载(编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |