سؤال

أنا إنشاء تطبيق ويب مع فري كيو الخلفية.أنا أبحث عن بعض بيانات الأداء الأمثل أداة/تقنية.

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

المحلول

pgfouine يعمل بشكل جيد إلى حد ما بالنسبة لي.و يبدو أن هناك فري بورت من أجل ذلك.

نصائح أخرى

قاعدة بيانات الأمثل هو عادة مزيج من اثنين من الأشياء

  1. تقليل عدد الاستعلامات على قاعدة البيانات
  2. تقليل كمية البيانات التي تحتاج إلى النظر للرد على الاستفسارات

تقليل كمية من الاستفسارات يتم عادة عن طريق التخزين المؤقت غير متطايرة/أقل أهمية البيانات (مثلا ، "أي من المستخدمين على شبكة الإنترنت" أو "ما هي أحدث المشاركات من قبل هذا المستخدم؟") داخل التطبيق (إذا أمكن) أو خارجي - أكثر كفاءة - مخزن البيانات (أعطها ، رديس ، إلخ.).إذا كنت قد حصلت على المعلومات التي تكتب الثقيلة (مثلضرب-عدادات) و لا حاجة حمض-دلالات يمكنك أيضا التفكير في الانتقال من قاعدة بيانات بوستجرس أكثر كفاءة مخازن البيانات.

أمثلية الاستعلام وقت التشغيل هو أكثر صعبة - هذا المبلغ إلى خلق خاصة الفهارس (أو الفهارس في المقام الأول) تغيير (ربما denormalizing) نموذج البيانات أو تغيير النهج الأساسي التطبيق يأخذ عندما يتعلق الأمر إلى العمل مع قاعدة البيانات.انظر على سبيل المثال ترقيم الصفحات فعلت بوستجرس الطريقة الكلام من قبل ماركوس Winand على كيفية إعادة التفكير في مفهوم ترقيم الصفحات لجعلها أكثر كفاءة قاعدة البيانات

قياس الاستفسارات بطريقة بطيئة

ولكن لفهم أي استفسارات ينبغي النظر أولا عليك أن تعرف كيف في كثير من الأحيان يتم تنفيذها والمدة التي تعمل على المتوسط.

نهج واحد هذا هو تسجيل جميع (أو "بطيء") الاستفسارات بما في ذلك وقت التشغيل ومن ثم تحليل سجل الاستعلام.أداة جيدة هذا هو pgfouine التي سبق ذكرها سابقا في هذه المناقشة ، ومنذ ذلك الحين تم استبداله pgbadger الذي هو مكتوب في أكثر ودية اللغة هو أسرع بكثير وأكثر يحتفظ بنشاط.

سواء pgfouine و pgbadger تعاني من حقيقة أنهم بحاجة الاستعلام-تمكين التسجيل ، والتي يمكن أن تسبب أداء ملحوظا ضرب على قاعدة البيانات أو تجلب لك في مساحة القرص المشاكل على رأس حقيقة أن تحليل سجل مع أداة يمكن أن يستغرق بعض الوقت و لن تعطيك ما يصل إلى تاريخ الأفكار حول ما يجري في قاعدة البيانات.

مسرعة مع امتداد

لمعالجة أوجه القصور هذه هناك الآن اثنين من ملحقات والتي تتبع أداء الاستعلام مباشرة في قاعدة البيانات pg_stat_statements (والتي هي مفيدة فقط في الإصدار 9.2 أو أحدث) ، pg_stat_plans.كل ملحقات تقدم نفس الوظائف الأساسية تتبع كيف في كثير من الأحيان معين "تطبيع الاستعلام" (سلسلة الاستعلام ناقص كل التعبير حرفية) تم تشغيل و كم من الوقت استغرق في المجموع.يرجع ذلك إلى حقيقة أن يتم ذلك في حين أن الاستعلام يتم تشغيلها فعليا يتم ذلك بكفاءة عالية ، قابلة للقياس النفقات العامة أقل من 5% في الاصطناعية المعايير.

مما يجعل الشعور البيانات

قائمة الاستفسارات نفسها جدا "الجاف" من المعلومات المنظور.هناك العمل على التمديد الثالث في محاولة لمعالجة هذا الواقع و نقدم أجمل تمثيل البيانات يسمى pg_statsinfo (جنبا إلى جنب مع pg_stats_reporter), لكنه قليلا من تعهد الحصول عليها وتشغيلها.

أن نقدم أكثر ملاءمة حل هذه المشكلة بدأت العمل على مشروع تجاري والذي تركز حول pg_stat_statements و pg_stat_plans و تقوي المعلومات التي تم جمعها من قبل الكثير من البيانات الأخرى انسحبت من قاعدة البيانات.هذا يسمى pganalyze ويمكنك العثور عليه في https://pganalyze.com/.

أن نقدم لمحة موجزة من أدوات مثيرة للاهتمام والمشاريع في بوستجرس رصد المنطقة كما أنني بدأت بتجميع قائمة في بوستجرس ويكي والتي يتم تحديثها بانتظام.

لقد استعملت pgtop قليلا.الأمر يختلف تماما الخام ، ولكن على الأقل أستطيع أن أرى أي استعلام تشغيل لكل معرف العملية.

حاولت pgfouine ولكن لو تذكر أنها أداة غير متصل.

كما ذيل psql.ملف سجل و تعيين قطع الأشجار المعايير إلى مستوى حيث أستطيع أن أرى مشكلة الاستعلامات.

#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements
                                        # and their durations, > 0 logs only
                                        # statements running at least this time.

أود أيضا أن استخدام EMS بوستجرس مدير الادارة العامة للعمل.أنها لا تفعل أي شيء بالنسبة لك, ولكن لا تجعل معظم المهام أسهل ويجعل مراجعة و إعداد مخطط أكثر بساطة.أجد أنه عند استخدام واجهة المستخدم الرسومية ، فمن الأسهل بكثير بالنسبة لي على الفور التناقضات (مثل عداد المفقودين مؤشر مجال المعايير ، إلخ.).إنه فقط واحد من اثنين من برامج أنا على استعداد لاستخدام برنامج VMWare على بلدي ماك لاستخدام.

مونين بسيطة جدا لكنها فعالة للحصول على اتجاهات كيف قاعدة البيانات المتطورة و الأداء مع مرور الوقت.في عدة القياسية من مونين يمكنك جملة الشيء رصد حجم قاعدة البيانات, عدد أقفال عدد من اتصالات متتابعة بفحص حجم سجل العمليات طويلة تشغيل الاستعلامات.

سهلة الإعداد و لتبدأ وإذا لزم الأمر يمكنك كتابة البرنامج المساعد الخاص بك بسهولة تامة.

تحقق من أحدث كيو الإضافات التي يتم شحنها مع مونين هنا:

http://munin-monitoring.org/browser/branches/1.4-stable/plugins/node.d/

أول شيء القيام به هو محاولة على جميع الاستفسارات الخاصة بك من psql باستخدام "شرح" ومعرفة ما إذا كان هناك متتابعة بفحص التي يمكن تحويلها إلى مؤشر بفحص طريق إضافة الفهارس أو إعادة كتابة الاستعلام.

بخلاف ذلك, أنا مهتم في الإجابة على هذا السؤال كما أنت.

تحقق من البرق المشرف, أنه يحتوي على واجهة المستخدم الرسومية لالتقاط سجل البيانات ليست مثالية ولكن يعمل كبيرة بالنسبة لمعظم الاحتياجات. http://www.amsoftwaredesign.com

DBTuna http://www.dbtuna.com/postgresql_monitor.php بدأت في الآونة الأخيرة دعم كيو الرصد.ونحن استخدامه على نطاق واسع في الخلية الرصد ، حتى إذا كان يوفر نفس بوستجرس ثم ينبغي أن يكون مناسبا لك جدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top