tensorflow - tensorflow 服务模型负载影响其他模型图运行尾延迟
问题描述
我正在使用相同的 tensorflow 模型服务器实例(在单个 Docker 容器内运行)加载两个模型 A 和 B。(使用 tensorflow_model_sever v2.5.1)
这些模型在磁盘上约为 5GB,其中大约 1.7GB 只是与推理相关的节点。
模型 A 只加载一次,模型 B 每隔一段时间就会获得一个新版本。我的客户只请求模型 A 的预测。不使用模型 B。顺便说一句,两个模型都有预热数据。
每次为模型 B 加载新版本时,模型 A 中图形运行的尾部延迟从 20 毫秒跳到 > 100 毫秒(!)。我从 tensorflow 模型服务器 - :tensorflow:serving:request_latency_bucket 以及我的 GRPC 客户端都得到了尾部延迟。
容器有足够的可用内存和 CPU,这在 GPU 上也可以看到。
我尝试更改 num_load_threads 和 num_unload_threads、flush_filesystem_caches,但无济于事。
到目前为止,还没有使用 GRPC 对冲/手动双重调度(但正在努力)摆脱它,任何人都见过这个,并且更好地设法克服这个问题?谢谢!
解决方案
推荐阅读
- python - 我的 c!givecookie {member} 命令中缺少什么?不和谐机器人 python
- arrays - 如何使用 PureData 中的循环写入数组?
- java - 在 Java 映射或集合中逐键查找
- c - 如何在C中修改二进制文件中结构的成员变量
- python - 连接python和mysql时,接口报错怎么处理?
- android - Firebase_core 依赖于 firebase_core_web 和 firebase_core_web 需要 flutter_web_plugins 尝试获取项目的依赖项时出错
- database - 适用于 Oracle 12c 的 SSL 和 TLS
- python - 遍历行,比较日期并追加到列表
- javascript - 打算滚动 iFrame 内容时,iFrame 会继续滚动站点
- python - 如何设置单选按钮组的宽度以填充 Bootstrap 中父容器的宽度?