【发布时间】:2021-06-09 13:50:29
【问题描述】:
我有一个用 Haskell 写的微服务,编译器是 8.8.3。
我使用--profile 选项构建它并使用+RTS -p 运行它。它运行了大约 30 分钟,有 <my-service>.prof 文件,但它是空的(字面意思是 0 字节)。以前我是在本地机器上做的,我用 CTRL-C 停止服务,退出后它产生<my-service>.prof 文件,该文件不为空。
所以,我有两个问题:
- 当 Haskell 微服务在 Kubernetes 下以最正确的方式运行时如何收集 profiling 信息(以便能够读取此 .prof 文件)?
- 对于 8.8.3,如何将运行时参数传递给 Haskell 运行时保存此 .prof 文件的位置(如果没有这样的选项,可能有一些解决方法) - 因为我觉得文件可能很大,我可以命中磁盘空间问题。此外,我不知道如何在微服务运行时刷新/读取/获取此文件。我想如果我能够传递这个 .prof 文件的完整路径,那么我可以将它保存在某个永久卷上的其他位置,例如用
INT信号“杀死”服务,并从中获取这个 .prof 文件音量。
当服务在 Kubernetes 中运行时,获取此 .prof 文件的常用/便捷方式是什么?
PS。我在最新版本的文档中看到了一些相关选项,但我使用的是 8.8.3
【问题讨论】:
标签: haskell kubernetes profiling