لائحة الطعام
مجاني
تحقق في
الرئيسية  /  التثبيت والإعداد / باستخدام شاشة نشاط SQL Server. باستخدام مراقب الأداء لتحديد اختناقات الأجهزة التي يقوم بها SQL Server بأفضل أدوات مراقبة MS SQL Server

باستخدام مراقب نشاط SQL Server. باستخدام مراقب الأداء لتحديد اختناقات الأجهزة التي يقوم بها SQL Server بأفضل أدوات مراقبة MS SQL Server

كان على أي مسؤول قاعدة بيانات، بالتأكيد، التعامل مع حقيقة أن كل شيء يعمل ببطء، أو لا يعمل على الإطلاق. أول شيء تحتاج إلى اكتشافه هو أنه يحدث على الإطلاق على خادم SQL في الوقت الحالي. يبدو أن الأمر يبدو في ترسانة المسؤول بكثير من جميع القطع المفيدة: شاشة نشاط Buva، مجموعة من طرق عرض الإدارة الديناميكية (DMV)، SP_WHO و SP_WHO2 الإجراءات المخزنة، والتي ظلت موروثة منذ SQL Server 7 و SQL Server 2000.
ولكن دعونا نرى ...

أدوات المراقبة

مراقبة النشاط
يبدو أنه شيء عظيم، يشارك في حقيقة أنه من الضروري - يتم مراقبة النشاط. أقوم بإطلاق تقرير محاسبي ثقيل وشاهد ما يرنيني مراقب النشاط.
على شاشة نشاط الشاشة من SQL Server 2005:

ومن SQL Server Denali (2012) CTP 3.


M-Yes. وإذا كان دزينة من الناس سوف يطلقون هذه التقارير؟ وهذا ليس غير شائع ... سيكون من غير المريح تماما أن نفهم، على الرغم من، بالطبع، تقدم على الوجه. في شاشة نشاط Denali، فإنه يظهر معلومات أكثر فائدة بكثير (على سبيل المثال، حول أي توقعات موارد خاصة يحدث)، بالإضافة إلى ذلك، يمكننا، على سبيل المثال، على سبيل المثال، من أجل الدورة المرغوبة، قم بتشغيل Profiler مباشرة من الشاشة وتتبعها بالفعل في profiler، ولكن، تلفه، بالإضافة إلى ذلك الأحمال والأحمال وبدون الخادم المحمل. بالإضافة إلى ذلك، هناك بالفعل مشكلة في الفرامل، وتلك التي تطلب ذلك في وقت إطلاق منشأة ملتيون قد بدأت بالفعل في تنفيذها، لن نرى.
وأريد أن أرى هذا - من وماذا يفعل الآن.

sp_who و sp_who2.
في لقطة الشاشة، يؤدي نتيجة تنفيذ SP_WHO (من أعلاه) و SP_WHO2 (أسفل) أثناء بناء التقرير الكامل لأجل:


بلى. مليء بالمعلومات. تبحث في sp_who يمكننا أن نرى فقط ما هو تشغيل شيء ما. بالطبع، يتم تنفيذها - نحن لذلك ونرى، ونحن نرى أن بعض الاختيار يتم تنفيذها. أو بعض الاختيار "ov. عظيم.
sp_who2 يظهر المزيد من المعلومات. الآن يمكننا أن نرى مقدار وقت المعالج الذي قضته الجلسة (والعمود طي الوقت الإجمالي، على ما يبدو)، وعدد عمليات الإدخال / الإخراج، واسم قاعدة البيانات التي يتم بها تنفيذ كل هذا ويتم حظرها من خلال هذه الجلسة ( إذا تم حظرها).
مراقب النشاط، كما نرى، يعطي المزيد من المعلومات.
DMV.
بدءا من SQL Server 2005، تلقينا فرصة جديدة لتلقي معلومات حول حالة الخادم - طرق عرض الإدارة الديناميكية. يقول MSDN: "مناظر ووظائف إدارية ديناميكية إرجاع بيانات حالة البيانات التي يمكن استخدامها لمراقبة صحة مثيل الخادم وتشخيص المشكلة وإعدادات الأداء."
في الواقع، في خادم SQL 2005 "E، هناك مجموعة من الآراء المتعلقة بتنفيذ الطلبات في الوقت الحالي (ومع ذلك، هناك أيضا عروض لعرض" التاريخ "): هنا هم. وعددهم، الإصدار إلى الإصدار يستمر في الزيادة!
من المؤكد أن مسؤولي المصطكي لديهم الكثير من البرامج النصية، مما يتيح لك الحصول على معلومات حول الحالة الحالية للخادم، ولكن ما يجب القيام به إذا لم تكن تجربة العمل مع DMV بعد، ولكن هناك بالفعل مشاكل؟

sp_whoisactive.

طورت Adam Machanic (SQL Server MVP و MCITP) وموثوقة باستمرار الإجراء المخزن SP_WhooseActive، والذي يعتمد فقط على معظم DMV ولعنة سهل الاستخدام. قم بتنزيل أحدث إصدار من sp_whoisactive. في Adam نفسه، هناك سلسلة من المواد المخصصة ل SP_Whoisactive، تتكون من 30 (ثلاثين!)، يمكنك قراءتها، وسأحاول أن أؤمن لك في قراءة هذه المواد :).
لذلك، سوف نفترض أنك قمت بتنزيلها وأطلقت هذا البرنامج النصي في أحد خوادم الاختبار (على أي إصدار، بدءا من عام 2005 وينتهي مع DENALI). ينصح آدم بتخزينه في قاعدة بيانات النظام الرئيسي بحيث يمكن استدعاؤه في سياق أي قاعدة بيانات، لكنه ليس من الضروري، فقط عند الاتصال به في سياق قاعدة بيانات أخرى، عليك كتابة الاسم بالكامل - BD. sham.sp_whoisactive.
لذا حاول. في لقطة شاشة، نتيجة تنفيذها أثناء بناء التقرير نفسه بالكامل:

نتيجة لطلب Exec SP_WhoisActive، Alas، غير موجود في شاشة واحدة، لذلك وصف النص لإخراج الإجراء المخزن الناتج دون معلمات.
  • - للحصول على استفسار نشط، يظهر وقت التنفيذ لدورة "النوم" - وقت "النوم"؛
  • - في الواقع، spid؛
  • - يوضح النص الذي يتم تنفيذه الآن الآن، أو نص الاستعلام الأخير المنفذ، إذا كانت الجلسة نائمة؛
  • - حسنا، فهمت؛
  • - عمود مثير للاهتمام للغاية. يتم عرضه بالتنسيق (AX: BMS / CMS / DMS) E. A هو عدد مهام الانتظار على مورد E. B / C / D - هذا هو وقت الانتظار في المليفي الثانوي. إذا كان المورد يتوقع جلسة واحدة فقط (كما في لقطة الشاشة)، فسيتم عرض وقت الانتظار إذا كانت 2 جلسات هي أوقات انتظارهم بتنسيق B / C. إذا كنت تتوقع 3 أو أكثر - سنرى الوقت والحد الأدنى والحد الأقصى لوقت الانتظار على هذا المورد بتنسيق B / C / D؛
  • - للحصول على استفسار نشط - وقت إجمالي وحدة المعالجة المركزية، الذي تم إنفاقه بهذا الطلب، للحصول على جلسة نوم - وقت إجمالي وحدة المعالجة المركزية ل "كل حياة" هذه الجلسة؛
  • - للحصول على استعلام نشط، هذا هو عدد عمليات التسجيل في TEMPDB أثناء تنفيذ الاستعلام؛ للحصول على جلسة نوم - إجمالي عدد الإدخالات في TEMPDB لجميع مدى الحياة؛
  • - للحصول على استعلام نشط - عدد الصفحات الموجودة في Tempdb المخصصة لهذا الطلب؛ للحصول على جلسة نوم - إجمالي عدد الصفحات في TEMPDB المخصصة لأكمله مدى الحياة للدورة؛
  • - إذا فجأة منعت من قبل شخص ما، سيظهر SPID (Session_id) من محظورنا؛
  • - للحصول على استعلام نشط - عدد القراءات المنطقية التي يتم تنفيذها عند تنفيذ هذا الطلب؛ للحصول على جلسة نوم - عدد صفحات القراءة لجميع مدى الحياة لهذه الجلسة؛
  • - كل نفس، ولكن حول السجل؛
  • - للحصول على استعلام نشط - عدد القراءات الجسدية التي يتم إجراؤها عند تنفيذ هذا الطلب؛ للحصول على جلسة نوم - تقليديا، إجمالي عدد القراءات الجسدية لأكمله مدى الحياة للدورة؛
  • - للحصول على استعلام نشط - عدد الصفحات الثمانية كيلوبايت المستخدمة في تنفيذ هذا الطلب؛ للحصول على جلسة نوم - كم عدد دقائق من صفحات الذاكرة التي تم تسليط الضوء عليها طوال حياتها؛
  • - يتم تنفيذ حالة الدورة، والنوم، وما إلى ذلك؛
  • - يوضح عدد المعاملات لفتح هذه الجلسة؛
  • - يظهر إذا كانت هناك فرصة مثل هذه العملية، وعملية التشغيل (على سبيل المثال، النسخ الاحتياطي، واستعادة)، لا تظهر أبدا مقدار النسبة المئوية المنفذة عن طريق تحديد.
الأعمدة المتبقية ب. الناتج القياسي sp_whoisactive تبدو مثيرة للاهتمام، ولن أصفهم - والغرض منها، وأعتقد أنه من المفهوم أن الجميع (Host_name، Database_name، program_name، start_time، login_time، repress_id، collection_time).

و ماذا؟ كل شيء؟

لا، ليس كل شيء. أنا أيضا أخبرك حول المعلمات (الأكثر إثارة للاهتمام ومفيدة، من وجهة نظري) يمكن أن يسمى sp_whoisactive وماذا سيولد.
  • Help هو معلمة مفيدة فظيعة. عند الاتصال sp_whoisactivehelp \u003d 1، نحصل على معلومات حول جميع المعلمات وأعمدة الإخراج على الشاشة. لذلك إذا ظل شيء غير مفهوم، فيمكنك دائما مشاهدة "المساعدة"
  • تضمين التغريدة ردا على filter_type و filter - تتيح لك تصفية نتيجة التنفيذ. يمكن @ Vilter_Type قبول "الجلسة"، "البرنامج"، "قاعدة البيانات"، "تسجيل الدخول" و "المضيف". في المعلمة، نحدد كائن من النوع المحدد مهتم بنا. على سبيل المثال، نريد أن نرى جميع الجلسات قيد التشغيل في قاعدة البيانات الرئيسية، لهذا نسمي EXEX SP_WHOISACTACTIVEFILTER_TYPE \u003d "قاعدة البيانات"، \u003d "Master". المعلمة مسموح باستخدام "٪"؛
  • not_filter_type و @ not_filter - اسمح لنا بتصفية "على العكس من ذلك". تلك، على سبيل المثال، نريد أن نرى كل شيء، باستثناء تلك الجلسات التي تقف في حقل قاعدة البيانات "ماجستير"، لهذا أداء exec sp_whoisativeNT_FILTER_TYPE \u003d "قاعدة البيانات"، not_filter \u003d "master". حسنا، أو، سوف نريد أن نرى أن جميع المستخدمين باستثناء المستخدم SA ... يمكن تعيين التطبيقات. المعلمةnot_filter مسموح باستخدام "٪"؛
  • show_system_spids \u003d 1 - سيظهر معلومات حول جلسات النظام؛
  • agre_full_inner_text \u003d 1 - في حقل SQL_TEXT، لن يكون مجرد نص الطلب الحالي (Stetiment) في الحزمة (Batche)، ونص الديازي بأكمله بالكامل؛
  • ite_plans - إضافة إلى عمود الإخراج مع خطط تنفيذ الاستعلام؛
  • agre_transaction_info \u003d 1 - يضيف إلى إخراج وحجم السجلات إلى سجلات المعاملات، وكذلك بداية المعاملة الأخيرة؛
  • oget_locks \u003d 1 - يضيف إلى معلومات الإخراج حول جميع الأقفال المفروضة أثناء تنفيذ الاستعلام؛
  • Lefind_block_leaders \u003d 1 - سيتبع سلسلة القفل وإظهار العدد الإجمالي للجلسات التي تنتظر فتح الدورة الحالية؛
  • output_column_list \u003d "[٪]" - ماذا لو كنت لا ترغب في رؤية معلومات حول tempdb في إخراج sp_whoisactive؟ مع هذه المعلمة، يمكنك التحكم في حقيقة أنها تعرض؛
  • Stestination_table \u003d "Table_name" - سيحاول إدراج نتيجة التنفيذ للكتابة إلى الجدول، ولكن هل لن يتحقق هذا الجدول ما إذا كان يكفي لإدراجها فيه.

الآن الجميع

نتيجة لذلك، لدينا أداة أخرى مريحة للغاية ومرنة لتتبع النشاط الحالي على SQL Server. لعملتها الطبيعية، فمن الكفاية تماما لحل حالة خادم عرض وحقوق الاستئناف إلى DMV.
كما أنه يستحق الإضافة، في الحالة عندما يكون من الممكن الاتصال فقط بالخادم

قائمة قضايا تدقيق الأداء

أدخل نتائجك في الجدول أعلاه.

باستخدام مراقب الأداء (Monutor Performance) لتحديد مركبات أجهزة SQL Server الضيقة

من الأفضل البدء في تدقيق أداء SQL Server من شاشة الأداء (مراقب النظام). سيسمح لك مراقبة عدة أمتار رئيسية لمدة 24 ساعة بالحصول على فكرة جيدة عن أي مشاكل في الأجهزة الرئيسية تؤثر على أداء خادم SQL.

من الناحية المثالية، يجب عليك استخدام شاشة الأداء لإنشاء ملف قراءة عداد رئيسي لمدة 24 ساعة. يجب عليك اختيار فترة "نموذجية" 24 ساعة لإنشاء ملف تسجيل. على سبيل المثال، حدد يوم عمل نموذجي، وليس نهاية الأسبوع أو العطلة.

بمجرد تسجيل بيانات مراقبة الأداء في غضون 24 ساعة في ملف التسجيل، قم بعرض الأميات الموصى بها في وضع رسم بياني مراقب الأداء، ثم اكتب القيم المتوسط \u200b\u200bوالحد الأدنى والحد الأقصى في الجدول أعلاه. بمجرد أن تقوم بذلك، قارن نتائجك بنتائج التحليل التالي. ستوفر لك هذه المقارنة هذه الفرصة لتحديد أي اختناقات محتملة للأجهزة التي تؤثر على خادم SQL الخاص بك.

كيفية تفسير عدادات مراقبة الأداء الرئيسية

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

الذاكرة: الصفحات / ثواني

يقيس هذا العداد عدد الصفحات في الثانية الواحدة، والتي تتم إعادة تعيينها من ذاكرة الوصول العشوائي إلى القرص، أو تتم قراءتها إلى ذاكرة الوصول العشوائي من القرص. الصفحات الأكثر كثافة، يتم تحميل الحمل الأكبر على عمليات الإدخال / الإخراج من قبل الخادم الخاص بك، والذي، بدوره، يمكن أن يؤثر سلبا على أداء SQL Server. هدفك هو محاولة تقليل الصفحات إلى الحد الأدنى دون القضاء عليه.

تحت افتراض أن SQL Server هو التطبيق الرئيسي الوحيد الذي يعمل على الخادم الخاص بك، يجب أن يكون هذا الرقم بشكل مثالي في الفاصل الزمني بين الصفر و 20. من المحتمل جدا أن تلاحظ الانبعاثات التي تتجاوز 20 عاما، وهو أمر طبيعي تماما. الشيء الرئيسي هنا هو الحفاظ على متوسط \u200b\u200bمشاركة الصفحة في الثانية أقل من 20.

إذا يوضح الخادم الخاص بك ما معدله أكثر من 20 صفحة في الثانية، أحد الأسباب الأكثر احتمالا لهذا هو عدم وجود ذاكرة الوصول العشوائي اللازمة. بشكل عام، كلما زاد تشغيل عنصر ذاكرة الوصول العشوائي، يجب إجراء عمليات تبادل الصفحات الأصغر.

في معظم الحالات، على خادم مادي متخصص تحت خادم SQL، مع كمية كافية من ذاكرة الوصول العشوائي، ستكون قيمة مشاركة الصفحة المتوسط \u200b\u200bأقل من 20. يمكن تعريف عدد مناسب من ذاكرة الوصول العشوائي ل SQL Server وفقا للمعيار التالي: الخادم يجب أن يكون لديك معامل ناجح لذاكرة التخزين المؤقت المخزن المؤقت (نسبة المخزن المؤقت نسبة ذاكرة التخزين المؤقت) 99٪ وما فوق. يوصف هذا العداد أدناه في هذه المقالة. إذا كان لديك SQL Server، فهذا له قيمة 99٪ أو أعلى في غضون 24 ساعة، ولكن يمكنك الحصول على مشاركة الصفحة أكثر من 20 في نفس الفترة الزمنية، قد تشير إلى أنك تعمل وغيرها. تطبيقات على المادية الخادم إلى جانب خادم SQL. إذا كانت هذه هي الحالة، فيجب عليك، من الناحية المثالية، قم بإزالة هذه التطبيقات، مما يسمح ل SQL Server بأن تكون التطبيق الرئيسي الوحيد على الخادم الفعلي.

إذا لم يقم خادم SQL الخاص بك بأي تطبيقات أخرى، وتجاوز تبادل الصفحات 20 في المتوسط \u200b\u200bفي غضون 24 ساعة، فقد يعني أنه قمت بتغيير إعدادات ذاكرة SQL Server. يجب تكوين SQL Server بحيث يتم تعيين خيار "تكوين ذاكرة SQL Server" بشكل حيوي (تكوين ذاكرة SQL Server) بشكل حيوي، ويجب أن يكون تثبيت الذاكرة القصوى في أعظم قيمة. للعمل الأمثل، يجب السماح ل SQL Server باتخاذ الكثير من ذاكرة الوصول العشوائي حيث يلزم احتياجاته الخاصة، دون أن تعاني من الحاجة إلى التنافس على الذاكرة السريعة مع التطبيقات الأخرى.

الذاكرة: المساحة المتاحة

طريقة أخرى لمعرفة ما إذا كان لديك خادم SQL لديه ذاكرة مادية كافية، هو التحقق من كائن الذاكرة: BYTES المتاحة. يجب أن تكون قيمتها أكثر من 5 ميغابايت. خلاف ذلك، يحتاج خادم SQL الخاص بك إلى عدد أكبر من الذاكرة الفعلية. على خادم متخصص في SQL Server، فإن الأخير يحاول الاحتفاظ بالذاكرة الفعلية المجانية من 4 إلى 10 ميجابايت. يستخدم ذاكرة الوصول العشوائي المتبقية من قبل نظام التشغيل و SQL Server. عندما يكون مقدار الذاكرة المتوفرة بالقرب من 5 ميغابايت أو أقل، فمن المرجح أن يخبر SQL Server التحميل الزائد بسبب عدم الذاكرة. إذا كانت هذه هي الحالة، فيجب عليك زيادة عدد ذاكرة الوصول العشوائي الفعلية في الخادم، فقم بتقليل الحمل على الخادم أو تغيير إعدادات تكوين تكوين الذاكرة لخادم SQL الخاص بك، على التوالي.

القرص الفعلي: وقت القرص

يظهر هذا العداد مدى انشغال صفيف القرص الفعلي (وليس قسم منطقي أو قرص منفصل في الصفيف). يوفر مقياسا نسبيا جيدا لمدى مشغول صفائف القرص.

كقاعدة تجريبية، يجب أن تظهر عداد وقت القرص أقل من 55٪. إذا تجاوزت قراءات العداد 55٪ على فترات مستمرة (أكثر من 10 دقائق لمدة 24 ساعة من المراقبة)، فقد تواجه خادم SQL الخاص بك مشاكل في عمليات الإدخال / الإخراج. إذا شاهدت هذا السلوك أحيانا فقط خلال 24 ساعة من الرصد، فلن قلق كثيرا، لكن إذا حدث ذلك في كثير من الأحيان (دعنا نقول، عدة مرات في الساعة)، سأبدأ في البحث عن طرق لزيادة أداء I / العمليات على الخادم أو تقليل تحميل الخادم. تتكون بعض الأساليب لزيادة إدخال القرص / الإخراج في إضافة أقراص جديدة إلى صفيف (إن أمكن)، واستبدال الأقراص إلى أسرع، إضافة ذاكرة التخزين المؤقت على لوحة تحكم (إن أمكن)، باستخدام إصدارات مختلفة من RAID أو تثبيت وحدة تحكم أسرع.

قبل استخدام هذا العداد ضمن NT 4.0، تحتاج إلى تمكينه يدويا عن طريق إدخال ما يلي: "diskperf-y" في موجه الأوامر. بعد ذلك، ستحتاج إلى إعادة تشغيل الخادم الخاص بك. وبالتالي، فمن الضروري أن يتضمن على الفور عدادات الأقراص تحت Windows NT 4.0. إذا كنت تعمل تحت نظام التشغيل Windows 2000، يتم تمكين هذا العداد افتراضيا.

القرص الفعلي: متوسط \u200b\u200bطول قائمة انتظار القرص

بالإضافة إلى مراقبة قيمة العداد، "القرص الفعلي: وقت التشغيل القرص"، من المستحسن أيضا مراقبة قيم الطول الأوسط لقائمة انتظار القرص (متوسط \u200b\u200bطول قائمة انتظار القرص). إذا تجاوزت هذه القيمة القيمة 2 للفترات المستمرة (أكثر من 10 دقائق أثناء مراقبةك على مدار 24 ساعة) لكل محرك أقراص في الصفيف، فيمكن أن تتحول هذه الصفيف إلى أن تكون عنق عملية أداء النظام. مثل عداد وقت القيادة، إذا حدث ذلك في بعض الأحيان أكثر من 24 ساعة من فترة المراقبة، فلن قلق كثيرا، ولكن إذا حدث ذلك في كثير من الأحيان، فسأبدأ في البحث عن طرق لزيادة أداء نظام إدخال / إخراج الخادم، كما هو موضح في الاعلى.

سيتعين عليك حساب هذا المؤشر، لأن شاشة الأداء لا يعرف عدد الأقراص الفعلية الموجودة في صفيفك. على سبيل المثال، إذا كان لديك صفيف من 6 أقراص فادئة، فإن متوسط \u200b\u200bطول قائمة الانتظار هو 10 للحصول على هذه الصفيف، ثم متوسط \u200b\u200bالقيمة الفعلية لقائمة انتظار القرص لكل قرص هو 1.66 (10/6 \u003d 1.66)، وهو مناسب جيدا في المؤشر الموصى به 2 لكل قرص فعلي واحد.

قبل استخدام هذا العداد تحت NT 4.0، لا تنس تشغيله يدويا، والكتابة على الدعوة لإدخال أوامر NT، وما يلي: "diskperf-y" مع إعادة تشغيل الخادم اللاحق. لذلك، تحتاج إلى تضمين عدادات الأقراص مباشرة بعد تثبيت نظام التشغيل Windows NT 4.0. إذا كنت تستخدم نظام التشغيل Windows 2000، فسيتم تمكين هذا العداد افتراضيا.

استخدم كل من العداد الموضح أعلاه لمعرفة ما إذا كان الخادم الخاص بك يعاني من مشاكل في نظام الإدخال / الإخراج. على سبيل المثال، إذا رأيت فترات زمنية كثيرة خلالها وقت القرص أكثر من 55٪، وعندما يكون متوسط \u200b\u200bطول قائمة انتظار القرص أكثر من 2 لكل قرص فعلي، يمكنك التأكد من أن الخادم يحتوي على مشاكل في نظام الإدخال.

المعالج: معالج الوقت٪

كائن المعالج: يتوفر مقياس الوقت المعالج لكل معالج مركزي ويقيم استخدام كل وحدة المعالجة المركزية الفردية. يتوفر أيضا متر مماثل بالكامل بالكامل بمجموع المعالجات المركزية (الإجمالي). هذا متر رئيسي لتتبع استخدام المعالج المركزي. إذا تجاوز وقت تحميل المعالج الكلي على هذا المتر 80٪ على فترات مستمرة (أكثر من 10 دقائق لمدة 24 ساعة من المراقبة)، فيمكنك التفكير في المعالج المركزي بنظام ضيق. إذا حدثت هذه الفترات من الحمل القوي أحيانا، وأنت تعتقد أنه يمكنك قبوله، فكل شيء بالترتيب. ولكن إذا حدثت في كثير من الأحيان، يجب أن تنظر في هذه الخيارات لتقليل تحميل الخادم، كاستحواذ المعالجات المركزية بشكل أسرع، تثبيت المزيد من المعالجات المركزية، أو الاستحواذ على المعالجات المركزية التي تحتوي على ذاكرة التخزين المؤقت المدمجة في المستوى الثاني ( L2).

النظام: طول قائمة انتظار المعالج

جنبا إلى جنب مع عداد الوقت المعالج، يجب عليك أيضا التحكم في عداد طول قائمة انتظار المعالج (طول قائمة انتظار المعالج). إذا تجاوز هذا المؤشر قيمة 2 إلى معالج مركزي واحد خلال الفترات المستمرة (أكثر من 10 دقائق خلال فترة الرصد على مدار 24 ساعة)، فمن المحتمل أن هذا نظام ضيق للنظام. على سبيل المثال، إذا كان لديك 4 معالجات مركزية على الخادم الخاص بك، يجب ألا يتجاوز طول قائمة انتظار المعالج قيمة إجمالية 8.

إذا كان طول قائمة انتظار المعالج يتجاوز بانتظام الحد الأقصى الموصى به، ولكن استخدام المعالج المركزي ليس مرتفعا جدا (وهو حالة نموذجية)، ففكر في خيار تقليل قيمة المعلمة تكوين مواضيع SQL Server "Max Worker" ( الحد الأقصى لعدد المواضيع). السبب المحتمل لقيمة عالية لطول قائمة انتظار المعالج هو وجود عدد مفرط من العمال الذين ينتظرون دورها. عن طريق تقليل عددهم الذي تقوم به بهذه المعلمة، فإن قوات تكنولوجيا المعلومات تستخدم سلالات المواضيع (إذا لم يحدث)، أو زيادة دورها.

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

SQL Server العازلة: معامل الوصول الناجح لذاكرة التخزين المؤقت المخزن المؤقت

يظهر هذا العداد (SQL Server Buffer: نسبة ضرب ذاكرة التخزين المؤقت المخزن المؤقت) كم مرة يشير SQL Server إلى المخزن المؤقت، وليس إلى القرص الثابت للحصول على البيانات. في تطبيقات OLTP، يجب أن يتجاوز هذا المعامل 90٪، وبشكل مثالي أعلى من 99٪. إذا كان معامل الاتصال الناجح مع ذاكرة التخزين المؤقت المخزن المؤقت أقل من 90٪، يجب أن تذهب وشراء المزيد من ذاكرة الوصول العشوائي اليوم بالفعل. إذا كان هذا المعامل يكمن في النطاق بين 90٪ و 99٪، فعليك أن تنظر بجدية في خيار شراء ذاكرة الوصول العشوائي الإضافية، حيث اقترب من الاقتراب من 99٪، وسيعمل أسرع خادم SQL الخاص بك. في بعض الحالات، إذا كانت قاعدة البيانات الخاصة بك كبيرة جدا، فلن تكون قادرا على الاقتراب من 99٪، حتى إذا كنت قد وضعت الحد الأقصى المسموح به لعدد ذاكرة الوصول العشوائي على الخادم الخاص بك. ثم كل ما يمكنك فعله هو إضافة ذاكرة إلى الحد الأقصى وقبول الموضع الحالي للأشياء.

في تطبيقات OLAP، يمكن أن يكون المعامل أصغر بكثير بسبب طبيعة تطبيق OLAP هذا. في أي حال، يجب أن تسرع الزيادة في ذاكرة الوصول العشوائي عملية SQL Server.

SQL Server: اتصالات مخصصة

نظرا لأن عدد مستخدمي خادم SQL يؤثرون على أدائها، فمن المستحسن مراقبة الاتصالات المخصصة (كائن إحصائيات SQL Server العامة: مواجهة اتصالات المستخدم). يوضح عدد اتصالات المستخدم، وليس عدد المستخدمين المتصلين بخادم SQL في الوقت الحالي.

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

ماذا بعد

على الرغم من وجود عدد أكبر بكثير من العدادات من أولئك الذين نظرنا فيه، فإن هذا الأخير هو مفتاح المراقبة، والتي يتم تنفيذها في عملية أداء المراجعة. بعد إكمال تحليل مراقب الأداء، استخدم التوصيات الواردة ثم في هذه السلسلة من المقالات لإجراء التغييرات اللازمة التي تجعل SQL Server ستعمل كما ينبغي ذلك.

كان على أي مسؤول قاعدة بيانات، بالتأكيد، التعامل مع حقيقة أن كل شيء يعمل ببطء، أو لا يعمل على الإطلاق. أول شيء تحتاج إلى اكتشافه هو أنه يحدث على الإطلاق على خادم SQL في الوقت الحالي. يبدو أن الأمر يبدو في ترسانة المسؤول بكثير من جميع القطع المفيدة: شاشة نشاط Buva، مجموعة من طرق عرض الإدارة الديناميكية (DMV)، SP_WHO و SP_WHO2 الإجراءات المخزنة، والتي ظلت موروثة منذ SQL Server 7 و SQL Server 2000.
ولكن دعونا نرى ...

أدوات المراقبة

مراقبة النشاط

يبدو أنه شيء عظيم، يشارك في حقيقة أنه من الضروري - يتم مراقبة النشاط. أقوم بإطلاق تقرير محاسبي ثقيل وشاهد ما يرنيني مراقب النشاط.
على شاشة نشاط الشاشة من SQL Server 2005:

ومن SQL Server Denali (2012) CTP 3.


M-Yes. وإذا كان دزينة من الناس سوف يطلقون هذه التقارير؟ وهذا ليس غير شائع ... سيكون من غير المريح تماما أن نفهم، على الرغم من، بالطبع، تقدم على الوجه. في شاشة نشاط Denali، فإنه يظهر معلومات أكثر فائدة بكثير (على سبيل المثال، حول أي توقعات موارد خاصة يحدث)، بالإضافة إلى ذلك، يمكننا، على سبيل المثال، على سبيل المثال، من أجل الدورة المرغوبة، قم بتشغيل Profiler مباشرة من الشاشة وتتبعها بالفعل في profiler، ولكن، تلفه، بالإضافة إلى ذلك الأحمال والأحمال وبدون الخادم المحمل. بالإضافة إلى ذلك، هناك بالفعل مشكلة في الفرامل، وتلك التي تطلب ذلك في وقت إطلاق منشأة ملتيون قد بدأت بالفعل في تنفيذها، لن نرى.
وأريد أن أرى هذا - من وماذا يفعل الآن.

sp_who و sp_who2.

في لقطة الشاشة، يؤدي نتيجة تنفيذ SP_WHO (من أعلاه) و SP_WHO2 (أسفل) أثناء بناء التقرير الكامل لأجل:


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

DMV.

بدءا من SQL Server 2005، تلقينا فرصة جديدة لتلقي معلومات حول حالة الخادم - طرق عرض الإدارة الديناميكية. يقول MSDN: "تمثيلات إدارية ديناميكية ووظائف إرجاع بيانات خادم الإرجاع التي يمكن استخدامها للتحكم في صحة مثيل الخادم، وتشخيص المشكلات وإعدادات الأداء."
في الواقع، في SQL Server 2005، هناك مجموعة من الآراء المتعلقة بتنفيذ الطلبات في اللحظة الحالية (ومع ذلك، لعرض "السجل" هناك أيضا عروض): ها هم. وعددهم، من الإصدار إلى الإصدار يستمر في الزيادة!
من المؤكد أن مسؤولي المصطكي لديهم الكثير من البرامج النصية، مما يتيح لك الحصول على معلومات حول الحالة الحالية للخادم، ولكن ما يجب القيام به إذا لم تكن تجربة العمل مع DMV بعد، ولكن هناك بالفعل مشاكل؟

sp_whoisactive.

طورت Adam Machanic (SQL Server MVP و MCITP) وموثوقة باستمرار الإجراء المخزن SP_WhooseActive، والذي يعتمد فقط على معظم DMV ولعنة سهل الاستخدام. قم بتنزيل أحدث إصدار من sp_whoisactive. في Adam نفسه، هناك سلسلة من المواد المخصصة ل SP_Whoisactive، تتكون من 30 (ثلاثين!)، يمكنك قراءتها، وسأحاول أن أؤمن لك في قراءة هذه المواد :).
لذلك، سوف نفترض أنك قمت بتنزيلها وأطلقت هذا البرنامج النصي في أحد خوادم الاختبار (على أي إصدار، بدءا من عام 2005 وينتهي مع DENALI). ينصح آدم بتخزينه في قاعدة بيانات النظام الرئيسي بحيث يمكن استدعاؤه في سياق أي قاعدة بيانات، لكنه ليس من الضروري، فقط عند الاتصال به في سياق قاعدة بيانات أخرى، عليك كتابة الاسم بالكامل - BD. sham.sp_whoisactive.
لذا حاول. في لقطة شاشة، نتيجة تنفيذها أثناء بناء التقرير نفسه بالكامل:

نتيجة لطلب Exec SP_WhoisActive، Alas، غير موجود في شاشة واحدة، لذلك وصف النص لإخراج الإجراء المخزن الناتج دون معلمات.

  • - للحصول على طلب نشط، يظهر وقت التنفيذ، لدورة "النوم" - الوقت "النوم"؛
  • - في الواقع، spid؛
  • - يوضح النص الذي يتم تنفيذه الآن الآن، أو نص الاستعلام الأخير المنفذ، إذا كانت الجلسة نائمة؛
  • - حسنا، فهمت؛
  • - عمود مثير للاهتمام للغاية. يتم عرضه بالتنسيق (AX: BMS / CMS / DMS) E. A هو عدد مهام الانتظار على مورد E. B / C / D - هذا هو وقت الانتظار في المليفي الثانوي. إذا كان المورد يتوقع جلسة واحدة فقط (كما في لقطة الشاشة)، فسيتم عرض وقت الانتظار إذا كانت 2 جلسات هي أوقات انتظارهم بتنسيق B / C. إذا كنت تتوقع 3 أو أكثر - سنرى الوقت والحد الأدنى والحد الأقصى لوقت الانتظار على هذا المورد بتنسيق B / C / D؛
  • - للحصول على استفسار نشط - وقت إجمالي وحدة المعالجة المركزية، التي تنفقها هذا الطلب، من أجل جلسة النوم - إجمالي الوقت لوحد المعالجة المركزية ل "كل الحياة" لهذه الجلسة؛
  • - للحصول على استعلام نشط، هذا هو عدد عمليات التسجيل في TEMPDB أثناء تنفيذ الاستعلام؛ للحصول على جلسة نوم - إجمالي عدد الإدخالات في TEMPDB لجميع مدى الحياة؛
  • - للحصول على استعلام نشط - عدد الصفحات الموجودة في Tempdb المخصصة لهذا الطلب؛ للحصول على جلسة نوم - إجمالي عدد الصفحات في TEMPDB المخصصة لأكمله مدى الحياة للدورة؛
  • - إذا فجأة منعت من قبل شخص ما، سيظهر SPID (Session_id) من محظورنا؛
  • - للحصول على استعلام نشط - عدد القراءات المنطقية التي يتم تنفيذها عند تنفيذ هذا الطلب؛ للحصول على جلسة نوم - عدد صفحات القراءة لجميع مدى الحياة لهذه الجلسة؛
  • - كل نفس، ولكن حول السجل؛
  • - للحصول على استعلام نشط - عدد القراءات الجسدية التي يتم إجراؤها عند تنفيذ هذا الطلب؛ للحصول على جلسة نوم - تقليديا، إجمالي عدد القراءات الجسدية لأكمله مدى الحياة للدورة؛
  • - للحصول على استعلام نشط - عدد الصفحات الثمانية كيلوبايت المستخدمة في تنفيذ هذا الطلب؛ للحصول على جلسة نوم - كم عدد دقائق من صفحات الذاكرة التي تم تسليط الضوء عليها طوال حياتها؛
  • - يتم تنفيذ حالة الدورة، والنوم، وما إلى ذلك؛
  • - يوضح عدد المعاملات لفتح هذه الجلسة؛
  • - يظهر إذا كانت هناك فرصة مثل هذه العملية، وعملية التشغيل (على سبيل المثال، النسخ الاحتياطي، واستعادة)، لا تظهر أبدا مقدار النسبة المئوية المنفذة عن طريق تحديد.

الأعمدة المتبقية ب. الناتج القياسي sp_whoisactive تبدو مثيرة للاهتمام، ولن أصفهم - والغرض منها، وأعتقد أنه من المفهوم أن الجميع (Host_name، Database_name، program_name، start_time، login_time، repress_id، collection_time).

و ماذا؟ كل شيء؟

لا، ليس كل شيء. أنا أيضا أخبرك حول المعلمات (الأكثر إثارة للاهتمام ومفيدة، من وجهة نظري) يمكن أن يسمى sp_whoisactive وماذا سيولد.

  • Help هو معلمة مفيدة فظيعة. عند الاتصال sp_whoisactivehelp \u003d 1، نحصل على معلومات حول جميع المعلمات وأعمدة الإخراج على الشاشة. لذلك إذا ظل شيء غير مفهوم، فيمكنك دائما أن ترى "مساعدة"
  • تضمين التغريدة ردا على filter_type و filter - تتيح لك تصفية نتيجة التنفيذ. يمكن @ Vilter_Type قبول "الجلسة"، "البرنامج"، "قاعدة البيانات"، "تسجيل الدخول" و "المضيف". في المعلمةfilter، نحدد أي كائن من النوع المحدد من النوع يهتم بنا. على سبيل المثال، نريد أن نرى جميع الجلسات قيد التشغيل في قاعدة البيانات الرئيسية، لهذا نسمي exec sp_whoisactivefilter_type \u003d "قاعدة البيانات"، filter \u003d "master". المعلمة @ filter يجوز استخدامها "٪"؛
  • not_filter_type و @ not_filter - اسمح لنا بتصفية "على العكس من ذلك". هؤلاء.، على سبيل المثال، نريد أن نرى كل شيء، باستثناء هذه الجلسات، والتي في حقل "قاعدة البيانات" هي "ماجستير"، لهذا، تنفيذ exec sp_whoisactivent_filter_type \u003d "قاعدة البيانات"، @ master ". حسنا، أو، سوف نريد أن نرى أن جميع المستخدمين باستثناء المستخدم SA ... يمكن تعيين التطبيقات. المعلمةnot_filter مسموح باستخدام "٪"؛
  • show_system_spids \u003d 1 - سيظهر معلومات حول جلسات النظام؛
  • agre_full_inner_text \u003d 1 - في حقل SQL_TEXT، لن يكون مجرد نص الطلب الحالي (Stetiment) في الحزمة (Batche)، ونص الديازي بأكمله بالكامل؛
  • ite_plans - إضافة إلى عمود الإخراج مع خطط تنفيذ الاستعلام؛
  • agre_transaction_info \u003d 1 - يضيف إلى إخراج وحجم السجلات إلى سجلات المعاملات، وكذلك بداية المعاملة الأخيرة؛
  • oget_locks \u003d 1 - يضيف إلى معلومات الإخراج حول جميع الأقفال المفروضة أثناء تنفيذ الاستعلام؛
  • Lefind_block_leaders \u003d 1 - سيتبع سلسلة القفل وإظهار العدد الإجمالي للجلسات التي تنتظر فتح الدورة الحالية؛
  • output_column_list \u003d "[٪]" - ماذا لو كنت لا ترغب في رؤية معلومات حول tempdb في إخراج sp_whoisactive؟ مع هذه المعلمة، يمكنك التحكم في حقيقة أنها تعرض؛
  • Stestination_table \u003d "Table_name" - سيحاول إدراج نتيجة التنفيذ للكتابة إلى الجدول، ولكن هل لن يتحقق هذا الجدول ما إذا كان يكفي لإدراجها فيه.

الآن الجميع

نتيجة لذلك، لدينا أداة أخرى مريحة للغاية ومرنة لتتبع النشاط الحالي على SQL Server. لعملتها الطبيعية، فمن الكفاية تماما لحل حالة خادم عرض وحقوق الاستئناف إلى DMV.
كما أنه يستحق الإضافة، في الحالة عندما يكون من الممكن الاتصال فقط بالخادم

منتج البرنامج هذا هو Sybase، والعمل مع SQL Server وإصدار مجموعة متنوعة من المعلومات حول أداء الخادم في النموذج الرسومي. هذه المعلومات مفيدة بشكل استثنائي عند تحليل أسباب تقليل أدائها.

الإصدار 11.0.1 لديه عدد من الفرص المهمة الجديدة التي تميز الإصدار الجديد بشكل كبير من جميع تلك السابقة. 11.0.1 يمكن أن تعمل مع أي إصدار من SQL Server، بدءا من 4.9.2 ونظام نهاية 11.

ومع ذلك، يتم إصدار بعض الأنواع الأكثر إثارة للاهتمام من المعلومات المتعلقة بطبيعة استخدام كائنات قاعدة البيانات وتفاعل الخادم مع الشبكة فقط عند مراقبة نظام SQL Server 10 ونظام 11. بطبيعة الحال، بيانات عن تشغيل المخازن المؤقتة مخزن التخزين المؤقت المسمى يتم إصدار فقط عند التحكم في أداء نظام SQL Server 11.

بالنسبة للتوافق مع الإصدارات السابقة 11.0.1 يدعم أيضا وضع إصدار المعلومات الإحصائية حول أداء الخادم إلى الملفات التي يمكن استخدامها للمقارنة والتحليل اللاحقة. هذه الفرصة مفيدة للغاية في الممارسة العملية، لكن استخدامها يعقد عملية التثبيت.

يتكون من مكونين: وحدة خادم يعمل على جهاز واحد مع SQL Server لتوفير الوصول إلى منطقة ذاكرة الخادم المشتركة، وحدة عميل قادرة على العمل على أي جهاز كمبيوتر. تتمثل المهمة الرئيسية في وحدة العميل في قراءة المعلومات المتراكمة بواسطة وحدة الخادم، وعرضها من قبل المستخدم في النموذج الرسومي.

عند البدء، يجب عليك إلغاء فحص ذاكرة الخادم التي يؤديها الأمر DBCC Memusage، لأن هذا الأمر يبطئ بشكل كبير في عملية الخادم بشكل كبير. للقيام بذلك، عند بدء تشغيل SQLMon (وحدة العميل)، يجب عليك تحديد المعلمة NEMEM.

يوفر التكوين الافتراضي اتصال متزامن إلى خمس وحدات عميل إلى وحدة خادم واحدة. بمعنى آخر، يمكنه الاتصال بمحدود خادم واحد أو خمس وحدات عميل مع نافذة واحدة على كل عميل، أو عميل واحد مع خمسة نوافذ مفتوحة.

الحد الأقصى لعدد العملاء في نفس الوقت يتم تثبيت العملاء المفتوحين عند بدء تشغيل وحدة الخادم.

وبالتالي، لدعم 20 نوافذ في ملف الأوامر لوحدة وحدة الخادم، يجب عليك تحديد المعلمة P2 0. سيتطلب ذلك تغييرا على عنوان منطقة ذاكرة الخادم المحددة باستخدام أمر Buildmaster وبعض الإجراءات الأخرى. لا يمكن إجراء هذه الإجراءات أثناء عملية SQL Server. (تفاصيل حول عملية توسيع عدد العملاء المدعومين في وقت واحد، راجع دليل وحدة خادم ملحق الخادم.)

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

هذا غير مريح عند مراقبة خادم كبير مع عدد كبير من أجهزة الخادم. بالإضافة إلى ذلك، لا يمكن للمستخدم تحديد الأجهزة والمعلومات التي سيتم تضمينها في الرسم البياني، وكذلك التبديل بين مجموعات مختلفة من الأجهزة.

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

كما لا يسمح لفترة طويلة لعرض ديناميات التغييرات في مؤشرات الأداء.

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

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

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

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

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

النافذة الرئيسية (النافذة الرئيسية)
أنه يحتوي على قائمة من Windows المدعوم من البرنامج. في حالة أنه عند بدء تشغيل وحدة العميل SGLMON- العميل، لم يتم تحديد المعلمة NEMEM، سيتم إصدار مخطط الدائرة لذاكرة Memory of the Server في هذه النافذة.

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

بيانات المخزن المؤقت ذاكرة التخزين المؤقت فقط لنظام SQL Server 11 (CACH البيانات)
تقارير النافذة عن عدد عمليات الإدخال / الإخراجية الجسدية والمنطقية لكل من مخازن التخزين المؤقت المسماة التي تم تكوينها على الخادم.

إدخال القرص / الإخراج (الجهاز I / O)
فيما يلي الجداول الموجزة والرسومات على العدد الحالي والكامل من الطعون إلى الأقراص. أنها تساعد على تحسين التوزيع I / O بين أجهزة الخادم المتاحة. عند تحليل المعلومات الصادرة، من المفيد استخدام المخطط القياسي للاطلاع على أسماء أجهزة الخادم بأسماء الأقسام المقابلة للأقراص الفعلية، لأنه من خلال مراقبة سعر الصرف مع أجهزة الخادم، يجب أن تعرف كيف كل هذه الأجهزة متصلة التي تحكم القرص.

العمل مع الشبكة، فقط لنظام SQL Server 10 و 11 (نشاط الشبكة)
يتم إبلاغ النافذة بمعلومات إحصائية عن إدخال الشبكة "الإخراج - حجم الحزم، وحجم حركة المرور، إلخ.

قفل الوصول إلى الكائنات فقط لنظام SQL Server 10 و 11 (حالة قفل الكائن)
يوفر معلومات حول حظر البيانات إلى جداول البيانات، بما في ذلك توزيع مفصل لأنواع الأقفال المستخدمة، وأسماء العمليات التي تحمل القفل، إلخ.

مقدمة من صفحات الكائن فقط لنظام SQL Server 10 و 11 (صفحة الكائن I / O)
تحتوي النافذة على معلومات حول شدة مقاييس I / O لأحد جداول بيانات الخادم. إيلاء الاهتمام بالفعالية عند رسم قائمة من جداول الخادم الأكثر استخداما. لا يتم إصدار هذه المعلومات بواسطة الإجراء sp_sysmon.

Summar الأداء (الأداء)
هنا، يتم تقديم صورة عامة لوظيفة SQL Server - النسبة المئوية لوقت المعالج المقدمة، وكمية المعاملة التي تمت معالجتها في الثانية، وكمية حركة مرور الشبكة، والقرص I / O، بالإضافة إلى شدة استخدام الأقفال وبعد

ديناميات مؤشرات الأداء (اتجاه الأداء)
يتم بناء الرسوم البيانية المستمرة لمؤشرات الحد الزمني الصادر في نافذة ملخص الأداء في النافذة.

نشاط عملية الخادم (Activit العملية)
تتيح لك النافذة تحديد عمليات خادم واحد أو أكثر واتبع استخدام المعالج وحدات التخزين I / O لكل عملية من العمليات.

تفاصيل العملية التفصيلية (تفاصيل العملية)
تحتوي النافذة على معلومات مفصلة حول عملية الخادم المحددة.

قائمة العملية (قائمة العملية)
تحتوي النافذة على قائمة بجميع عمليات الخادم المتاحة حاليا التي تشير إلى وضعها. تشبه إلى حد بعيد إصدار أمر SP_WHO Server.

باستخدام الأقفال (نشاط قفل العملية)
تصدر النافذة معلومات حول استخدام الأقفال إلى عملية الخادم التي حددتها.

باستخدام الإجراءات المخزنة (نشاط الإجراء المخزن)
تحتوي النافذة على معلومات حول تنفيذ الإجراءات المخزنة ووقت التشغيل لكل إجراء.

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

12.26.2006 كيفن كين

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

المزيد من الطيران - مجرد ملاحظة منهجية

ولكن هل هذا هو الشيء الوحيد الذي يمكن القيام به؟ من الممكن إجراء مراقبة أداء استباقية، إجراء إدارة بسيط يستخدم تعريف المعلمات الأساسية للنظام، تلقي المعايير والملاحظة المستمرة. في هذه المقالة، سأخبرك بكيفية تطبيق المراقبة الاستباقية وكيفية إنشاء نظام تحكم مجاني باستخدام شاشة نظام Windows.

مراقبة استباقية

مراقبة الأداء الاستباقي هو نظام بسيط يسمح لك بحل المشكلات قبل أن يصبح حرجا. ربما يستخدم شخص ما بالفعل ملاحظة المواقف الاستثنائية عند إنشاء العمليات الآلية التي تلاحظ الانحرافات فقط من القاعدة، ولكن لا تقدم معلومات عميقة ولا توفر فرصا لمنع المشكلات. يراقب مراقبة الأداء الاستباقية، على العكس من ذلك، المستخدم بكل أنواع المعلومات حول بيئة العمل والتطبيقات، وقصير الأجل، على المدى الطويل. تتم إزالة قراءات خصائص قاعدة البيانات، يتم تعيين مقاييس مرجعية ويتم دعم وضع المراقبة النشط.

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

المعلمات الأساسية، المعيار، مراقب

دعنا نبدأ بتعريف العديد من المصطلحات. معلمات خط الأساس (خط الأساس) - هذه مجموعة من المعلمات التي تعرض سلوك الخادم والتطبيقات في الظروف العادية. يتم الحصول على المعلمات الأساسية كمتوسط \u200b\u200bنتائج العديد من القياسات المقدمة في نفس الشروط؛ وهي إرشادات مرجعية.

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

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

الآن سوف نتعامل مع المراقبة الاستباقية. يمكنك استخدام منتجات الطرف الثالث أو الحل المجاني الذي يستخدم مراقب النظام. يمكن قرارات شركات الطرف الثالث تبسيط عملية ضبط المراقبة الاستباقية وتحصل على وظائف أخرى غير تلك التي يمكن أن توفر حل مضمن مجانا. ولكن قبل أن تبدأ، سأظهر كيفية المتابعة لأداء مراقبة استباقية باستخدام مراقب النظام.

الخطوة 1: تحديد معلمات الأداء الأساسية.

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

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

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

تحديد المعلمات الأساسية باستخدام مراقب النظام

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

لتبدأ، جرب الفاصل الزمني الافتراضي 15 ثانية. أو حدد فاصل زمني آخر عن طريق الضغط على الخصائص (أو استخدم بطاقة مفتاح الاختصار Ctrl + Q)، ثم أدخل القيمة تحت لافتات العينة تلقائيا كل: _ ثانية. لا تشغل الفواصل الزمنية أقل مساحة أقل، فهي توفر بيانات أقل تفصيلا.

حدد جدول ملفات السجل وتحديد الموقع حيث سيتم تخزين البيانات. من الممكن عرض البيانات لاحقا باستخدام طريقة عرض ملف سجل الملفات. ستبدو مراقب النظام على الشاشة 1 عندما يجمع بيانات معلمات الأداء الأساسية. يمكن ملاحظة أنه أثناء تتبع مجموعة متنوعة من الأمتار، يمكنك جمع الكثير من البيانات، لذلك يجب عليك تحديد عداد بعناية للخط الرئيسي.

الخطوة 2: إعداد القيم المرجعية

بعد تثبيت معلمات أداء الخادم الأساسية، يمكنك البدء في تثبيت القيم المرجعية، مما يجعل من السهل فهم أداء الخادم عند العمل في العديد من المواقف المحددة مسبقا.

بالنسبة للمعايير، يتم استخدام نفس وضع المراقبة لتحديد المعلمات الأساسية. يمكنك استخدام الحل الخاص بك أو أحد الأدوات الصناعية المشتركة، مثل TPC-C أو SAP، ولكن يتم الحصول على أفضل النتائج لحساب القيم المرجعية عند تطوير السيناريوهات الفردية التقليدية، والتي تم تكوينها لاستخدام خادم قاعدة بيانات محدد وتطبيقاتها.

يمكنك إنشاء السيناريو الخاص بك باستخدام مجموعة البرنامج النصي T-SQL أو أدوات مساعدة OSQL أو محلل الاستعلام و SQL Profiler ومراقب النظام. عادة ما يستغرق تطوير سيناريوهات اختبار التحميل في T-SQL عدة أيام. حتى الآن قد يكون من الضروري جمع تنفيذ اختبارات التحميل وتحليل البيانات التي تم الحصول عليها.

بعد تحديد المعلمات الأساسية لأداء الخادم مع الأحمال المحددة مسبقا، سيكون من الممكن معرفة ما يمكن توقعه من النظام. استخدم البيانات التي تم جمعها عند تلقي القيم المرجعية لتشكيل أساس الملاحظة المخطط لها. على سبيل المثال، اتضح أن الخادم قادر على توفير ما يصل إلى 249 معاملة في الثانية، قبل أن يبدأ عملها في التباطؤ. في هذه الحالة، يمكنك تثبيت إشعار ذو أولوية منخفضة عندما يصل الخادم إلى التنزيل حوالي 200 TPS والإخطار بأولوية عالية عندما يصل الخادم إلى 235 TPS. ستتيح هذه الطريقة للمسؤول التعرف على المشكلات المحتملة مع الخادم واتخاذ التدابير اللازمة قبل لاحظ المستخدمين أي شيء. ولا توجد حالات حرجة. الآن هو ممكن.

الخطوة 3: الرصد المخطط

ربما يكون العنصر الأكثر أهمية في وضع المراقبة الاستباقية. بدون ذلك، من المستحيل اتباع عمل قاعدة البيانات أو اكتشاف المشاكل في الأداء.

يمكنك إنشاء أداة غير مكلفة لرصد SQL Server باستخدام مجموعة من وكيل SQL Server ومراقب النظام. يسمح لك عميل SQL Server بتحديد إخراج الحدث الذي يتم تشغيله على الشاشة، والذي يتلقى خطأ حول الأحداث وإرسال إشعار تلقائيا عند ظهور حدث خطأ.

قد يكون تثبيت عامل SQL Server وقتا طويلا وتحديا، لذلك سيكون من الضروري الرجوع إلى قسم الوصف التنبيهات في SQL Server كتب عبر الإنترنت (بول)وبعد يقوم وكيل SQL Server عادة بالتحكم الحالي في رسائل خطأ تشغيل خادم قاعدة البيانات وعدم التحكم في التنفيذ.

يستخدم مراقب النظام لمراقبة أداء الخادم لمراقبة العداد الحالي (تعيين تردد المسح يصل إلى 15 دقيقة).

صفحات الذاكرة / ثانية

واجهة الشبكة-بايت إجمالي / ثانية

نقل القرص الفعلي / ثانية

معالج معالج الوقت

SQLServer: طرق الوصول - عمليات مسح كاملة / ثانية

SQLServer: نسبة المخزن المؤقت للمدير المخزن المؤقت

SQLServer: قواعد البيانات قاعدة بيانات التطبيقات - المعاملات / ثانية

SQLServer: الإحصاءات العامة - Innections

SQLServer: مزلاج المزدوج

SQLServer: تأمين متوسط \u200b\u200bالوقت الانتظار

SQLServer: مهلة أقفال قفل / ثانية

SQLServer: أقفال عدد الجمود / ثانية

SQLServer: يمنح الذاكرة مدير الذاكرة في انتظار

اضبط القيمة لكل عداد بين قيم المعلمات الأساسية والقيم المرجعية التي تظهر اختبارها. على سبيل المثال، يمكنك تعيين إشعار عندما يصل العداد إلى 75 بالمائة من أعلى قيمة الحمل، ورسالة التحذير عندما يمر بنسبة 90 في المائة.

لإجراء تحذيرات، يمكنك استخدام أدوات مجانية مثل تنبيهات وإخطارات SQL Server أو مراقبة النظام أو شراء Microsoft Operations Manager (MOM) أو وسائل أخرى. أوصي بإعداد التحذيرات على الأقل للحالات التالية:

  • الأخطاء التي تؤثر على العملية، وخاصة الأخطاء مع مؤشر الأهمية من 19 إلى 25
  • قفل
  • باستخدام المعالج
  • استخدام القرص
  • المسح الضوئي (SQLServer: طرق الوصول)

يمكنك إرسال أجهزة الإنذار لإعلام المسؤولين عبر البريد الإلكتروني أو النداء أو الشبكة. يمكنك تثبيت التحذيرات الآلية للرسائل التالية:

  • مجلة SQL Server.
  • مجلة عميل SQL.
  • النوافذ والأمان والنظام
  • سجل تنفيذ الوظيفة SQL Server

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

المراقبة الاستباقية للأداء SQL Server تعني تعريف معلمات الأداء الأساسية لكل من الخادم والتطبيق؛ تثبيت القيم المرجعية التي تحاكي أداء الخادم وفقا للسيناريو المحدد مسبقا المستخدم، وتنفيذ المراقبة المجدولة، من الناحية المثالية على تحذير عند اكتشاف المشكلة. بغض النظر عما إذا كانت أدوات مجانية أو مدمجة تستخدم أو يتم تحديد حلول الشركات المستقلة، فإن وجود ضمانات التحكم التي ستتلقى المعلومات اللازمة حول تشغيل التطبيقات الخاصة بك في SQL Server في اللحظة المطلوبة.

جدول 1. كائنات ومشكر النظام متر لتحديد المعلمات الأساسية
كائن ومكافحة وصف
صفحات الذاكرة / ثانيةعدد صفحات القراءة أو الكتابة إلى القرص في الثانية الواحدة. هذا العداد هو مؤشر نوع الخطأ الأساسي الناجم عن التأخير النظامي أو مشاكل الأداء
واجهة الشبكة-بايت إجمالي / ثانيةعدد البايتات التي تمر عبر واجهة الشبكة في الثانية. عندما ينخفض \u200b\u200bمؤشر هذا العتبة أو لديه هذا الاتجاه، يشير هذا إلى أن مشاكل الشبكة يمكن أن تؤثر على التطبيق
التحويلات / ثانيةتقييم عمليات القرص قراءة / كتابة. تثبيت العداد لكل قرص فعلي على الخادم
معالج معالج الوقتالنسبة المئوية للوقت الذي يقضي المعالج تنفيذ سير العمل. يعمل هذا المضادة كمؤشر نشاط معالج أساسي. إذا أظهرت جميع المعالجات التي تعمل على SQL Server استخدام مئة في المائة، فإن طلبات المستخدم النهائي يتم تجاهلها على الأرجح
SQLServer: طرق الوصول - عمليات مسح كاملة / ثانيةعدد الجداول غير المحدودة المكتملة أو الفحص الفهرس في الثانية. خفض قيم هذا العداد للأفضل لأن الآراء غالبا ما تسبب عدم وجود موارد مشكلة التخزين المؤقت
SQLServer: نسبة المخزن المؤقت للمدير المخزن المؤقتالنسبة المئوية من الصفحات التي لم تتطلب القراءة من القرص. كلما ارتفع عددهم، أصغر الإدخال / الإخراج على القرص يتم تنفيذها. في نظام تم ضبطه جيدا، يجب أن تكون هذه القيمة 80 أو أعلى.
SQLServer: قواعد البيانات-سجل النموبقدر ما، بالنسبة لقاعدة بيانات محددة، نمت ملف المعاملة. في نظام ضبط جيد، يجب أن تكون قيمة هذا العداد منخفضة، ربما أقل من واحد في غضون أيام قليلة
SQLServer: قاعدة بيانات قواعد البيانات قاعدة بيانات النسبة المئوية المستخدمةالنسبة المئوية للمساحة الحرة في ملف السجل. سيختلف هذا العداد، ولكن يجب ألا تصل إلى 100
SQLServer: قواعد البيانات قاعدة بيانات التطبيقات - المعاملات / ثانيةعدد المعاملات المؤكدة في قاعدة البيانات. هذه الأوقات العدادة خفضت في المعايير. شاهد عندما تبدأ المعاملات في التصميم، وهذا يشير إلى أن إدخال القرص / الإخراج قد يكون بطيئا
SQLServer: مزلاج المزدوجوقت تأخير الاستعلام قبل التعبئة. يمكن أن تكون القيمة المضادة هذه مرتفعة عندما يواجه الخادم التنافس للموارد، خاصة بالنسبة للذاكرة أو للإدخال / الإخراج
SQLSERVER: وقت الانتظار في المتوسط، قفل ينتظر / ثانية، عدد الجمود / ثانيةأقفال مؤقتة عقد موارد SQL Server. شاهد الاتجاه الصعودي من حظر الموصل هذا، مما يدل على مشكلة إنتاجية محتملة
SQLServer: الإحصاءات العامة - اتصالات المستخدمعدد الاتصالات المخصصة إلى خادم قاعدة البيانات. تحقق من أي تحولات ملحوظة في قيمة هذا العداد. قد يشيرون إلى مشاكل الشبكة وإشارة الأحمال والتباطؤ.
SQLServer: يمنح الذاكرة مدير الذاكرة في انتظارالعدد الحالي للعمليات التي تنتظر توفير مساحة الذاكرة. قد تشير قيمة عالية أو متزايدة إلى الذاكرة غير الكافية.
SQLServer: استعلام المستخدم الخاص بالمستخدم (استعلام Tracer)متر متخصص، والمعروف أيضا باسم مؤشر الاستعلام. هذا العداد هو طلب تم إنشاؤه من قبل المستخدم يشير إلى السرعة الكلية أو كفاءة النظام. لتعيين هذه القيمة، يستدعي التطبيق SP_USER_COUNTER1 وإرجاع قيمة رقمية.