gpt4 book ai didi

python - 并发访问RRD(RRDTool)

转载 作者:行者123 更新时间:2023-11-28 21:31:01 25 4
gpt4 key购买 nike

我使用 RRDTool ( http://oss.oetiker.ch/rrdtool/ ) 作为存储性能指标的图形后端。这是通过 RRDTool CLI 从 Python 脚本完成的。

我的问题是该脚本是多线程的,并且每个线程都以相当快的速度更新 RRD。有时更新会失败,因为一个线程正在访问 RRD 文件,而另一个线程也尝试访问它。

我的印象是,由于 RRDTool 使用自己的锁定机制,因此可以尝试,但我想事实并非如此。

有人有并发访问 RRD 的好方法吗?

我可以想到几种方法:

  1. 让 1 个线程创建一个队列,并且仅从单个线程提供 RRD。

  2. 在 Python 脚本中创建我自己的锁定机制。 (我该怎么做?)

有更好的办法或者您以前遇到过这个问题吗?

最佳答案

您还可以尝试使用rrdcached 进行更新。然后所有的写更新都会通过rrdcached进行序列化。当您想要读取 RRD 来生成图表时,您可以告诉守护进程刷新它,然后磁盘上的 RRD 将代表最新状态。

如果通过环境变量指向缓存的守护进程,所有 RRD 工具都会透明地执行此操作。

关于python - 并发访问RRD(RRDTool),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/133774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com