8、Lesser Evil:保护系统整体可用性的内存管理策略

Lesser Evil:保护系统整体可用性的内存管理策略

1. 引言

在处理 Erlang 系统的内存压力时,有一种策略能够在不修改代码的情况下,有效应对低内存状况,这就是 Lesser Evil 策略。它通过监控运行程序,在低内存条件下选择不良值较高的实体并执行补偿操作,以保护系统的整体可用性。

2. 核心概念

2.1 实体

Lesser Evil 将 Erlang 进程视为实体,但并非所有进程都会被考虑。系统进程可以自动识别和排除,而关键和非关键用户进程的区分需要用户手动指定非关键的 Erlang 应用列表。此外,每个应用中的 3 个关键进程(应用主进程、进程 ‘x’ 和应用的主监控进程)必须排除,因为它们的终止会导致整个应用终止。

2.2 不良度

不良度是该策略的核心,用于选择合适的进程执行补偿操作。为有效处理内存压力,不良度会给以下进程赋予较高值:
- 内存使用量高的进程;
- 有多个待处理任务,未来前景不佳的进程。

为最小化补偿操作对其他进程的负面影响,不良度会给以下进程赋予较低值:
- 长期存活,表现良好的进程;
- 对用户重要的进程;
- 在系统中起核心作用,有多个进程依赖的进程。

不良度是一个复合指标,基于以下进程级指标计算:
- Memory:进程使用的字节数。
- MessageQLength:已交付但尚未处理的消息数量。
- Reds:进程完成的工作量,在不良度公式中应用以 10 为底的对数。
- Age:进程存活的检查次数。
- Links:链接到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值