向 Trains 服务器报告的弹性如何?
Posted
技术标签:
【中文标题】向 Trains 服务器报告的弹性如何?【英文标题】:How resilient is reporting to Trains server? 【发布时间】:2020-11-24 17:39:16 【问题描述】:在以下情况下,Trains 如何将丢失的数据发送到服务器?
运行实验时互联网连接暂时中断 Internet 连接中断并且在实验结束前无法恢复(任何手动方式来发送所有丢失的数据?) 运行 Trains 服务器的机器在实验过程中重置【问题讨论】:
【参考方案1】:免责声明:我是 allegro.ai 火车团队的一员
火车将自动重试发送日志,基本上是永远。日志/指标在后台线程中发送,因此不应干扰执行。您可以通过调整~/trains.conf
文件中的sdk.network.iteration.retry_backoff_factor_sec
参数来设置退避参数,以控制重试频率,参见示例here
当实验结束时,实验将尝试将所有指标刷新到后端,即进程将等待 at_exit,直到发送所有指标。这意味着如果连接被断开,它将重试,直到它再次启动。如果手动中止实验,则无法捕获/重新发送那些丢失的指标报告。也就是说,在新的 0.16 版本中,引入了离线模式。这样就可以离线运行整个实验,然后报告所有日志/指标/工件。
Trains-Server 机器是完全无状态的(状态本身存储在机器上的数据库中),这意味着从实验的角度来看,连接断开了几分钟,然后再次可用。对于您的问题,如果 Trains-Server 重新启动,它对所有实验都是透明的,并且它们照常继续,不会丢失任何报告。
【讨论】:
以上是关于向 Trains 服务器报告的弹性如何?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 TRAINS python 自动魔法实验管理器手动注册 sci-kit 模型?
PDO::__construct():服务器向客户端发送未知字符集 (255)。请向开发人员报告
PDO::__construct():服务器向客户端发送未知字符集 (255)。请向开发人员报告