Akka学习笔记(四):监督和监控
2023-09-14 08:58:00 时间
supervision表示actors之间的关系。监督者分配任务给下属,因此需要处理反馈的错误。根据不同的错误,监督者supervisor可以做如下操作:
恢复下属,让下属继续运行,继续接收message。当且仅当下属还可以正常运行
重启下属,清空status。一般是第一条情况中,child的异常导致无法正常运行。
关闭自己,向上一级汇报错误
上面的操作都是递归的。
警告
supervision发送的是system messages,用的mailbox也和普通的messages不一样。
![](http://img.blog.csdn.net/20141112112354406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NzY3kyMDA0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
一个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模型通过观察数据集中的示例进行训练,并将代表模型在训练任务中表现的好坏的错误最小化。
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模型通过观察数据集中的示例进行训练,并将代表模型在训练任务中表现的好坏的错误最小化。
相关文章
- linux性能监控利器20个
- 8个DBA最常用的监控Oracle数据库的常用shell脚本
- Memcached管理与监控
- centos8平台基于iftop监控网络流量
- jmeter全面总结-6-jmeter性能数据监控系统 influxdb,grafana
- url拨测,url访问检测,监控网站url是否正常
- 一个简单的小技巧,监控网页所有动态标签创建的调用处
- 【SpringBoot笔记17】SpringBoot集成Actuator依赖获取应用程序监控信息
- DataScience之Grafana:Grafana(数据可视化和监控平台)的简介、安装方法、使用方法
- springboot09、监控
- 云图说|云上应用监控神器——应用性能监控APM2.0
- 0505-Hystrix保护应用-Turbine集群状态监控
- Python开发学习之Python实现用手机监控远程控制电脑
- 【微服务笔记11】微服务组件之Hystrix服务监控的三种方式
- 微服务 全链路监控工具pinpoint 安装配置pinpoint服务
- 老杨说运维 | 企业数字化转型中,统一监控的必要性
- ServerStatus 云监控