Я использую RRDTool (http://oss.oetiker.ch/rrdtool/) в качестве графического контура для хранения показателей производительности. Это делается через CLI RRDTool из сценария Python.Параллельный доступ к RRD (RRDTool)
Моя проблема заключается в том, что сценарий многопоточен, и каждый поток обновляет RRD довольно быстро. Иногда обновление выходит из строя, потому что один поток обращается к файлу RRD, а другой пытается получить к нему доступ.
У меня создалось впечатление, что это нормально, так как RRDTool использует свой собственный механизм блокировки, но я думаю, это неверно.
Есть ли у кого-нибудь хороший подход к параллельному доступу к RRD?
Я могу придумать несколько способов пойти:
имеют 1 поток создать очередь и только кормить RRD из одного потока.
Создайте собственный механизм блокировки внутри скрипта Python. (как бы я это сделал?)
получил что-то лучшее или у вас возникли проблемы перед этим?
Вы пробовали привязки python RRDTool?Являются ли они не многопоточными/многопроцессорными? – Gregory 2008-11-22 20:14:36