パフォーマンス メトリックを格納するためのグラフ作成バックエンドとしてRRDTool ( http://oss.oetiker.ch/rrdtool/ ) を使用しています。これは、Python スクリプトから RRDTool CLI を介して実行されます。
私の問題は、スクリプトがマルチスレッド化されており、各スレッドが RRD を非常に速いペースで更新していることです。1 つのスレッドが RRD ファイルにアクセスしているときに、別のスレッドが RRD ファイルにアクセスしようとしているために、更新が失敗することがあります。
RRDTool は独自のロック メカニズムを使用しているため、これを試しても問題ないという印象を受けましたが、そうではないと思います。
RRDへの同時アクセスのための良いアプローチを持っている人はいますか?
いくつかの方法を考えることができます:
1 つのスレッドでキューを作成し、単一のスレッドからのみ RRD をフィードします。
Python スクリプト内に独自のロック メカニズムを作成します。(どうすればいいですか?)
以前にこの問題に遭遇したことがありますか?