我使用 RRDTool ( http://oss.oetiker.ch/rrdtool/ ) 作为图形后端来存储性能指标。这是通过 Python 脚本中的 RRDTool CLI 完成的。
我的问题是脚本是多线程的,每个线程都以相当快的速度更新 RRD。有时更新失败是因为一个线程正在访问 RRD 文件,而另一个线程也尝试访问它。
我的印象是这可以尝试,因为 RRDTool 使用自己的锁定机制,但我想这不是真的。
有没有人有并发访问 RRD 的好方法?
我可以想到几种方法:
让 1 个线程创建一个队列,并且仅从单个线程提供 RRD。
在 Python 脚本中创建我自己的锁定机制。(我该怎么做?)
有什么更好的或者你以前遇到过这个问题吗?