升级后,Solaris群集和资源需求减少
德尔福克 工程 和 支持 是非常棒的人。他们继续寻求解决方案,无论需要多长时间和复杂的挑战’面临支持异构环境,硬件配置和客户需求。
此帖子支持我们团队的努力,导致以前受影响的Solaris 11.2集群配置稳定。从Oracle的研究,修补,测试和然后导致Oracle的认证是我们团队的大量企业,我希望这些信息提供社区,但德尔普建议毫无办法。它’在我们的团队使用该系统的逻辑决策后,才能解决问题的方法。
挑战
研究
$ echo “::memstat” | mdb -k
Page Summary Pages MB %Tot
———— —————- —————- —-
Kernel 151528 3183 24%
Anon 185037 1623 12%
...
我们也可以通过KMSASTAT击败内核内存区域的第二种方式:
::kmsastat cache buf buf buf memory alloc alloc name size in use total in use succeed fail ------------------------- ------ ------ ------ --------- --------- ----- kmem_magazine_1 16 3371 3556 57344 3371 0 kmem_magazine_3 32 16055 16256 524288 16055 0 kmem_magazine_7 64 29166 29210 1884160 29166 0 kmem_magazine_15 128 6711 6741 876544 6711 0 ...
甲骨文 ZFS弧缓存
下一个Oracle ZFS具有非常智能的缓存层,也称为 弧 (自适应替换缓存)。祝福和诅咒,弧消耗可用的内存,但如果它应该释放到其他应用程序的内存’需要。此内存用于补充任何慢磁盘I / O.检查我们的环境时,将超额分配到弧形。这可能是由于Oracle 12.2的新性,但在群集中,记忆饥饿可能是节点驱逐的常见原因。
我们可以检查以下文件中的arc的大小统计信息:
view /proc/spl/kstat/zfs/arcstats
这假设ZFS安装在/ proc上,因此您的实际arcStats文件可能驻留在不同的路径位置而不是上图。在文件中,查看以下信息:
c
is the 目标大小 of the ARC in bytesc_max
is the 最大尺寸 of the ARC in bytessize
is the 目前的规模 of the ARC in bytes
我们的一切都在吃东西,剩下100%的记忆,因为我们’LL在这篇文章的下一部分讨论。
甲骨文 ClusterWare内存
甲骨文 Clusterware是第三个区域,该区域被调查,可用于可以修剪下来的轻浮内存使用情况。那里’s some 清除记录的步骤 调查甲骨文的错误配置和功能问题,可以帮助识别许多这些问题。
所以,升级后和修补后,你可以做些什么来修剪内存用法,以避免内存升级来支持群集升级?
变化
- 添加 set user_reserve_hint_pct = 80
- 进行此更改以限制ZFS对电弧高速缓存的内存量。当CRS流程Weren时,客户对客户产生了重大问题’能够分配内存。 80%是在没有节点重新启动的情况下设置的最高百分比,我们都更喜欢不发生。
- 停止群集健康监视器(CHM)流程。这是12C集群软件中的全新背景过程,收集工作负载数据,在生产环境中显着更有价值,但在开发和测试中?它可以很容易地是随后的CPU和存储器的漏极可以更好地用于更多虚拟数据库。
- 要执行此操作,将使用以下命令作为root用户:
$ crsctl stop res ora.crf -init
$ crsctl delete res ora.crf -init
- 删除了跟踪文件分析器收集器(Tfactl)。此后台进程收集多个跟踪文件Oracle生成一个位置。友好的故障排除,但它’S基于Java和具有重要的内存占用空间,并受Java堆问题。
- 它用以下命令卸载为群集每个节点上的$ ORACLE_HOME所有者:
$ tfactl uninstall
- 工程停止并禁用群集验证实用程序(CVU)。在以前的版本中,这是一个实用程序,可以手动添加到安装或执行帖子以通过管理员解决问题。这是另一个简单地饮用可以重新分配给开发和测试环境的资源的功能,因此是时候停止和禁用它:
$ srvctl cvu stop $ srvctl cvu disable
额外的变化
- 减少ASM实例的内存分配。
- 12.2中的ASM实例现在使用1GB内存,以前的256MB。那’巨大的变化可以影响依赖于该记忆的其他特征。
- 在研究时,发现750MB充足,因此如果需要更多的内存重新分配,请考虑将每个节点上的内存降低到750MB。
- 要执行这组实例级参数更改,请在任何节点上运行以下内容,然后重新启动每个节点,直到群集已循环以将变化效果效果:
$ export ORACLE_HOME=<Grid Home> $ export ORACLE_SID=<Local ASM SID> $ sqlplus / as sysasm alter system set "_asm_allow_small_memory_target"=true scope=spfile; alter system set memory_target=750m scope=spfile; alter system set memory_max_target=750m scope=spfile;
大多数DBA的高CPU使用功能可能会令人不安,但是 ’在开发和测试数据库上经验丰富,通常授予较少的资源,以便于生成开始,更改通常可以提高这些环境的稳定性和寿命。
- 所有数据库中的禁用高分辨率时间刻度,包括ASM DBS,常规DB和网格基础架构管理存储库DB(GIMR,SID为-MGMTDB)。高分辨率刻度是12C的一个新功能,它们似乎导致群集时间保留后的大量CPU使用量像VKTM等。这里’s禁用高分辨率刻度的SQL(必须在每个DB中运行一次):
alter system set "_disable_highres_ticks"=TRUE scope=spfile;
- Solaris内核:1GB RAM
- 电弧缓存:1-2GB之间
- 甲骨文 ClusterWare:3GB