All But Reality

Imagine a catchphrase here

Simple template. Background and Customization by Shihab Elagib. Powered by Blogger

January 30, 2016

نظرية الـTroubleshooting، الجزء الثاني.

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



في نظرية الـTroubleshooting، الجزء الاول حاولت المرور بصورة عامة على فكرة استكشاف الاعطال او الاخطاء على جانب العتاد. وكنت اعتقد اني ساكرر نفس الاسلوب عند الحديث في جانب البرمجيات. لكني هذه المرة لكن سأحاول التركيز على اداتين فقط تهمانني شخصياً عند محاولة البحث عن مسببات الاعطال عندما يتعلق الأمر بالسوفتوير، اداتي الـEvent Viewer او عارض الاحداث او عارض سجلات الاحداث، و الـResource Monitor او مراقب او راصد الموارد.

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

Windows Event Viewer:

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




ما سيهم الغالبية من هذه الاداة هما نوعين من السجلات كلاهما ضمن سجلات الويندوز: سجلات التطبيقات Application Logs والنظام System Logs. يجب ايضاً الإشارة الى خيار عرض الاحداث الادارية Administrative Views الذي تقوم بفلترة مجموعتي سجلات التطبيقات والنظام وعرض الاحداث التي تحوي فقط على الانذارات او الاخطاء او المشاكل التي تؤدي او أدت لفشل خطير في النظام.

خذ مثلاً -لتوضيح طريقة استخدام الاداة فقط- الحدث التالي من سجلات النظام:



لاحظ للمخرجات التالية: درجة الحدث Level، توقيت حدوثه Date and Time والتعريف القصير عن الحدث في الحيز الرئيسي للسان General اسفل النافذة. 
درجة الحدث ببساطة هي مقياس لتأثيره على سير عمل النظام و\او اختلافه عن ما يعتبره النظام عملية طبيعية. بالنسبة لسجلات النظام والتطبيقات فهنالك اربع درجات تقسم عليها الاحداث:
- معلومة Information، وهي ببساطة نتائج وتأريخ لعمليات طبيعية يقوم بها النظام او التطبيقات المثبتة عليه.
- انذار Warning، حسب تعريف مايكروسوفت فإن هذه الاحداث ليست مشكلة في تستدعي القلق في حد ذاتها لكنها قد تؤدي الى مشاكل اكبر في المستقبل.
- خطأ Error، ويشير الى وجود مشكلة في احدى مكونات النظام او البرامج المستخدمة فيه التي أدت -او قد تؤدي- الى تعطيل النظام او ضياع البيانات.
- حرِج Critical، اسوأ درجة للسجلات، تشير الى حدوث فشل كبير في احد مكونات النظام او البرامج العاملة عليه ادت الى توقفها تماماً عن العمل. في حالة النظام هذا غالباً ما يتمثل في حدوث شاشة الموت الزرقاء BSOD او توقفه عن العمل بدون اي انذار. الحوادث التي تحمل درجتي خطأ و حرِج هما غالباً ما سيهمان مستكشفي الاعطال.

عودة للمثال اعلاه، ستجد ان الحدث تحت السؤال (محاط بصندوق احمر) يحمل درجة حرج، اي انه يوثق حدوث فشل كبير، وبربط وجوده ضمن سجلات النظام بالإمكان الاستنتاج انه يوثق توقف كامل للنظام عن العمل. واذا راجعنا تفصيل الحدث اسفل النافذة فسيخبرك الويندوز بتوقف النظام عن العمل واعادة تشغيله اما لتجمده -ما يعرف دارجياً بالـ " تعليق"-  او حدوث BSOD (التمثيل الغالب للـcrashes في الويندوز، اياً كانت ترجمة هذا المصطلح) او الانقطاع المفاجئ للكهرباء عن الحاسب. والاخير هو سبب حصول هذا الفشل. 

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

ملحوظة مهمة: يجدر الانتباه الى ان غالبية الانذارات و العديد من الاخطاء التي قد تظهر في هذه السجلات لا تستدعي القلق او الاهتمام، لذا ينبغي الحذر عند بناء القرارات عليها.

Windows Resource Monitor:

الجميع يعلم ماهية مدير المهام Task Manage، الانترنت مليء بالكاريكاتيورات والرسومات التهكمية التي تدور حول اختصار الـCtrl+Alt+Delete واستخدامه لحل "جميع المشاكل"، لكن القليل من استخدموا -او حتى علموا بوجود- النسخة الاكثر تفصيلاً من مدير المهام: اداة مراقبة الموارد Resource Monitor.



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

لمراقبة استخدام البرامج (متضمنة النظام) لوحدات التخزين، تتيح الاداة ثلاثة مجموعات من الادوات، تهمنا منها اثنين فقط:
- في حيز Processes with Disk Activity تتيح الاداة مراقبة او متابعة العمليات التي تقوم بالكتابة او القراءة على او من وحدات التخزين. هنا يمكن الربط بين اي عملية Process  واستخدامها لوسائط التخزين الدائمة بالإضاف لمعدلات الكتابة والقراءة لها بالبايت على الثانية.
- في حيز الـDisk Activity يمكن مراقبة العمليات التي تستخدم وسائط التخزين بالإضافة لمعرفة الملف الجاري كتابته او القراءة منه وموقعه في القرص. كما يمكن ايضاً تقدير مدى الضغط على الوسائط عبر عداد Highest Active Time الملحق بهذا الحيز.



لنتصور الان السيناريو الافتراضي التالي: في جهاز ما يواجه مستخدمه تردياً في سلاسة النظام -كتجمد الجهاز لعدة ثوان عند التنقل بين النوافذ المفتوحة- عند استخدام برنامج كبير الحجم كبرنامج الـAutoCAD -مثلاً- على الرغم من ان استهلاك الرام لم يتعدى ال80% والمعالج الـ10%. لكن عند متابعة استهلاك وسائط التخزين، لاحظ المستخدم ان عداد الـHighest Active Time ظل يقفز بين الـ70% والـ100% خاصة عند التحويل بين النوافذ. عند محاولة المرور على استهلاك العمليات لباندويدث الادخال والاخراج (I/O Bandwidth) وجد ان اكثرها تطلباً احدى عمليات النظام تحت اسم system.
هذه المعلومة لوحدها ليس ذات فائدة، حيث ان system عملية في داخلها عدة عمليات متعلقة بالنظام. هنا انتقل المستخدم لمتابعة الملفات التي تقوم عملية الـsystem بمعالجتها ووجد ان اكثرها اثارة للريبة هي ملف pagefile.sys في القرص c.
من هذه المعلومات (وربما القليل من البحث في الانترنت عن ماهية هذا الملف) يمكن للمستخدم استنتاج ان سبب تردي اداء النظام عند التنقل بين النوافذ يعود لكون هذا الاخير قد نقل البيانات الضرورية لعمل نوافذ الخلفية للـpagefile (مساحة يخصصها النظام في وسيط التخزين لنقل البيانات من الذاكرة الرئيسية الRAM عند امتلاء الاخيرة)، وعند التحويل لهذه النوافذ يضطر النظام لإعادة نقلها الى الذاكرة من وسيط التخزين (البطيء جداً). هنا يمكن للمستخدم اتخاذ القرار لحل هذه الاشكالية، اما عبر اغلاق خاصية الـpaging والمخاطرة بالإغلاق التلقائي لأي نافذة لا يوجد لها مكان في الذاكرة، او اضافة المزيد من الذاكرة، او تعديل طريقة استخدامه للحاسب والتقليل من عدد النوافذ المفتوحة عند استخدام البرامج الكبيرة. 

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

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


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



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