zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

Akka学习笔记(四):监督和监控

监控笔记学习 监督 Akka
2023-09-14 08:58:00 时间
supervision表示actors之间的关系。监督者分配任务给下属,因此需要处理反馈的错误。根据不同的错误,监督者supervisor可以做如下操作:

恢复下属,让下属继续运行,继续接收message。当且仅当下属还可以正常运行 重启下属,清空status。一般是第一条情况中,child的异常导致无法正常运行。 关闭自己,向上一级汇报错误 上面的操作都是递归的。

警告
supervision发送的是system messages,用的mailbox也和普通的messages不一样。



一个actor system在启动期间,会至少创建3个actors,如上图所示

/user:监护Actor 它是用户创建的Actor的parent,命名为“/user”。使用system.actorOf()方法创建的Actor都是它的children。这意味着只要这个Actor终止了,系统中所有常规的Actor都会被关掉。在Akka 2.1中,可以设置Supervisor Strategy,配置项为akka.actor.guardian-supervisor-strategy,对应类名为SupervisorStrategyConfigurator。倘若这个Guardian Actor扩大了失败,按照前面描述的Supervisor策略,它会使得root guardian终止该Actor,从而使得这个Actor下的所有子Actor都停止,即关掉了整个Actor系统。

/system:系统监护Actor 名为“/system”。主要是为了在常规Actor被终止时,做到按序的shut-down顺序。它可以监控User Guardian。可以管理Top-Level的System Actor采用一种策略,可以在除了ActorInitializationException与ActorKilledException之外的异常出现时,无限制地重启它。

/:Root监护Actor 由于每个真正的Actor都有一个supervisor,因此,root guardian的supervisor不是一个真正的Actor。

当出现如下三类失败错误时,就可能Restart Actor:

在收到特定消息时,发生系统错误,如编程的错误; 在处理消息时,因为一些外部资源的原因出现错误; Actor的内部状态出现问题 Restart的过程:

暂停Actor(这意味着在Restart期间,不会处理常规的消息,直到它被Resume)。同时,还会递归地暂停所有的children; 调用旧实例的preRestart钩子方法(默认情况下,会发送终止消息给所有children,调用children的postStop())。 等待所有的children被终止(调用context.stop())。这个过程是非阻塞的; 通过调用原来提供的工厂去创建新的Actor实例; 调用新实例的postRestart()方法(默认情况下,仍然要先调用preStart()); 将restart的请求发送给执行第3步时没有被kill掉的children;然后遵循第2步递归地对children执行restart; resume actor。
对于Monitoring而言,能监控的状态就是alive到dead之间的迁移。因此,在Akka中,Lifecycle Monitoring指的就是DeathWatch。Monitoring主要指的是监控其他的Actor,而非Supervision层次中的Actor。

监控的Actor(Monitoring Actor)如果接受到一条Terminated消息,默认行为就会抛出DeathPactException。要侦听Terminated消息,可以调用ActorContext.watch(targetActorRef);停止监听则调用ActorContext.unwatch(targetActorRef)。

如果Supervisor不能简单地重启其Children,又必须终止他们,例如在初始化Actor时出现了错误,就可以使用Monitoring。此时,可以侦听这些children,然后重新创建他们,或者安排时间重试。

使用Monitoring的另一种常见情形是,在缺乏外部资源,且该外部资源属于该Actor的一个children,Actor需要失败。如果第三方通过system.stop(child)或者发送PoisonPill去终止child,supervisor就会受到影响。


什么是模型监控?(Valohai) 型监控是指密切跟踪机器学习模型在生产中的性能的过程。 它使您的 AI 团队能够识别和消除各种问题,包括糟糕的质量预测和糟糕的技术性能。 因此,您的机器学习模型可提供最佳性能。 有效地监控模型对于使您的机器学习服务获得成功非常重要。 它使您能够在现实世界中产生重大影响。 但是在监控模型时应该跟踪什么? 在这篇文章中,您将找到所有详细信息。
使用 Seldon Alibi 进行模型监控 虽然 Seldon 使在生产中部署和服务模型变得容易,但一旦部署,我们如何知道该模型是否在做正确的事情? 训练期间的良好表现并不一定意味着在生产运行几个月后表现良好。 现实世界中发生的事情是我们无法解释的,例如:输入数据逐渐偏离训练数据,以及异常值和偏差。
MLOps:模型监控 使用模型度量堆栈进行模型监视,对于将已部署的ML模型的反馈回路放回模型构建阶段至关重要,这样ML模型可以在不同的场景下不断改进自己。
机器学习模型监控(Aporia)(下) 机器学习模型监控 什么是机器学习 (ML) 模型监控? 机器学习监控是一组用于观察生产中的 ML 模型并确保其性能可靠性的技术。 ML模型通过观察数据集中的示例进行训练,并将代表模型在训练任务中表现的好坏的错误最小化。
机器学习模型监控(Aporia)(上) 机器学习模型监控 什么是机器学习 (ML) 模型监控? 机器学习监控是一组用于观察生产中的 ML 模型并确保其性能可靠性的技术。 ML模型通过观察数据集中的示例进行训练,并将代表模型在训练任务中表现的好坏的错误最小化。