celery - 芹菜池统计字段
问题描述
我试图了解芹菜统计数据pool::writes::avg
显示的内容。从芹菜文档writes
:
特定于 prefork 池,这显示了在使用异步 I/O 时对池中每个进程的写入分布。
我的理解是all
给定进程完成的总任务的百分比,是给定进程raw
完成的任务数。但是avg
告诉我什么?
我的一个子集celery -A proj inspect stats
是:
"pool": {
"max-concurrency": 2,
"max-tasks-per-child": "N/A",
"processes": [
23743,
23744
],
"put-guarded-by-semaphore": false,
"timeouts": [
0,
0
],
"writes": {
"all": "58.06%, 41.94%",
"avg": "48.39%",
"inqueues": {
"active": 0,
"total": 2
},
"raw": "18, 13",
"strategy": "fair",
"total": 31
}
},
解决方案
如您所知,“pool.writes”统计信息特定于 prefork 池,它显示了使用异步 I/O 时池中每个进程的写入分布(来自 Celery 文档)
来自 bin/worker.py:
'avg': per(total / len(self.write_stats) if total else 0, total),
wherewrite_stats
似乎是一个 collections.Counter 跟踪池中的进程。per(v, total) 是一个函数,它返回一个包含v/total
百分比的字符串。我希望有 Celery 内部知识的人能提供更多关于这个的细节。
推荐阅读
- python - 在python中删除另一个数据框中具有公共列值的数据框中的行
- c - C 中的致命错误 - 没有这样的文件或目录
- flutter - 未来
项目空/空/相同的值| 扑 - gremlin - 为什么对 tinkergraph 和 janusgraph 运行相同的查询会产生不同的结果?
- python - AttributeError:'Seq' 对象在 Biopython 的 ProtParam 模块中没有属性 'islower'
- c - 如何搜索字符串的一部分并显示它?
- regex - 带前瞻的多行正则表达式
- selenium - 从具有相同类名的对象列表中选择正确的元素
- node.js - 我可以在我的节点应用程序中同时使用 REST 和 SOAP 吗?是否会影响应用程序的性能
- java - 如何在 Spring Boot 应用程序中配置两个数据源 JDBC?