سؤال

أنا مهتم في معرفة ما إذا كان هناك أي بديل rrdtool تسجيل بيانات السلاسل الزمنية.أنا أبحث في شيء يمكن أن مقياس لعدد كبير من أجهزة رصد.

من ما قرأت في هذا الموضوع ، rrdtool هو I/O bound عندما تضغط عليه مع كميات كبيرة من البيانات.منذ أتصور هذا المقياس على عدد كبير جدا من أجهزة رصد أنا الغريب إذا كان هناك أي بديل لا تختنق I/O.الأفضل SQL القائمة ، ولكن ليس بالضرورة.

شكرا

هل كانت مفيدة؟

المحلول

إذا I / O الأداء هو القلق الرئيسي ثم تريد أن ننظر إلى ما يشبه <لأ href = "http://oss.oetiker.ch/rrdtool/doc/rrdcached.en.html" يختلط = "نوفولو noreferrer "> rrdcached التي تتوفر في الإصدار الحالي (1.4) من RRDTools.

وو/ O النفقات العامة I ليس وظيفة من البيانات التي تكتب، بعد كل شيء كل قيمة 8 بايت في مصدر البيانات. عرض النطاق الترددي I / O يأتي من حقيقة يحتاج القطاع بأكمله (عادة 4K) يجب أن تقرأ في قبل مكتوبة. فجأة لكتابة 8 بايت كنت قد قرأت / كتب 8K بايت.

ووrrdcached coalesces كل هذه الكتابة معا حتى عندما يتم تحديثها على RRD نسبة بيانات مفيدة (قيم DS الفعلية) لبيانات الضائع (بايت الغيار في القطاع) يتم تخفيض.

وسوف جميع RRDTools تعمل تلقائيا مع rrdcached عندما كشف أنه يعمل (عبر متغير البيئة). وهذا يتيح لهم تحريك الإحمرار عند الحاجة، على سبيل المثال عند إنشاء رسم بياني من البيانات.

وحين تحول إلى حل على أساس SQL قد تساعد النظر في I اضافية / O التي ستكون مطلوبة لدعم SQL. وبالنظر كنت لا أميل إلى استخدام البيانات RRD في هذا النوع من نمط الوصول العشوائي قاعدة بيانات قليلا من مطرقة لهذه المشكلة. بينما الخلاف مع RRDTool سيبقي الوصول إلى كل النظام البيئي من الأدوات التي يمكن فهمها والعمل مع الملفات، وهو أمر مفيد خاصة إذا كنت معتادا على ذلك بالفعل.

نصائح أخرى

هناك بعض الوقت سلسلة قواعد البيانات التي توفر عالية و/أو قابلية كما الأهداف.

ربما يكون لديك نظرة على

  • rrdcached, التخزين المؤقت طبقة على رأس rrd
  • الهمس, مشغل قاعدة بيانات وراء الجرافيت
  • opentsdb هو توزيع قابلة الوقت سلسلة بيانات (TSDB) مكتوبة على رأس HBase
  • يستطلع على الرغم من أن يتم التركيز أكثر على الرصد

وهناك صديق لي فعل بعض العمل منذ فترة على الواجهة الخلفية SQL لتخزين البيانات جولة روبن: HTTP: // RRS .decibel.org

ولكن، أظن أنه منذ كنت طالبا عن "أجهزة لمراقبة"، يمكنك أن تبحث عن حل أكثر اكتمالا.

إن عمليات الإدخال/الإخراج في الثانية هو عنق الزجاجة الرئيسي و كنت تستخدم لينكس ، هناك طريقة سهلة الإختراق أن تكاليف فقط الذاكرة.استخدام tmpfs جبل إلى المرحلة RRD يكتب.

جميع عمليات الإدخال/الإخراج سوف يتم في الذاكرة و لن تتحمل أي من الاختناقات الموجودة في القرص i/o (هذا هو أسرع من استخدام أقراص الحالة الصلبة).ثم يمكنك استخدام وظيفة كرون و رسينك نسخ فقط تغير RRDs إلى القرص مرة واحدة كل بضع دقائق.


إنشاء الدلائل

bash-4.2# mkdir /mnt/rrd-reads
bash-4.2# mkdir /mnt/rrd-writes

إنشاء 500MB-الحد الأقصى ذاكرة الوصول العشوائي الملفات مع الخيارات المناسبة

bash-4.2# mount -t tmpfs -o size=500m,mode=0750,uid=collectd,gid=collectd none /mnt/rrd-writes
bash-4.2# echo "none /mnt/rrd-writes tmpfs size=500m,mode=0750,uid=collectd,gid=collectd 1 2" >> /etc/fstab

نسخ القديمة RRD الملفات إلى نقطة التحميل

bash-4.2# cp -a /var/lib/collectd/rrd/* /mnt/rrd-writes

تكوين rrd-كتابة تطبيق لكتابة الجديد جبل نقطة

bash-4.2# sed -i -e 's/DataDir "\/var\/lib\/collectd\/rrd"/DataDir "\/mnt\/rrd-writes"/' /etc/collectd/collectd.conf

إعداد وظيفة كرون مزامنة فقط تغير RRDs إلى القرص مرة واحدة كل 2 دقيقة

bash-4.2# echo "*/2 * * * * collectd rsync -a /mnt/rrd-writes/* /mnt/rrd-reads/ ; sync" > /etc/cron.d/rrd-sync

لا تنسى نسخ المحفوظة RRD الملفات إلى نقطة التحميل قبل بدء الخاص بك rrd-كتابة التطبيق!قد تحتاج إلى تحرير init النصي لهذه الخدمة التأكد من الملفات قبل أن يبدأ.إذا كان يبدأ بدون الملفات في المكان العارية الجديدة التي سيتم إنشاؤها ستكون مشوشة جدا بمجرد قراءة الدليل يحصل الكتابة مع فارغة RRDs.

إذا كان في مرحلة تحتاج إلى تغيير حجم tmpfs جبل ، يمكنك أن تفعل ذلك على الطاير:

bash-4.2# mount -t tmpfs -o remount,size=850m /mnt/rrd-writes
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top