عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

innotop - عبر الإنترنت في السحابة

قم بتشغيل innotop في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر innotop الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


innotop - مراقب حالة/معاملات MySQL وInnoDB.

موجز


لمراقبة الخوادم بشكل طبيعي:

com.innotop

لمراقبة معلومات حالة InnoDB من ملف:

innotop /var/log/mysql/mysqld.err

لتشغيل innotop بشكل غير تفاعلي في تكوين الأنابيب والتصفية:

innotop --count 5 -d 1 -n

لمراقبة قاعدة بيانات على نظام آخر باستخدام اسم مستخدم وكلمة مرور معينة:

إينوتوب -u -ص -ح

الوصف


يقوم Innotop بمراقبة خوادم MySQL. يُظهر لك كل وضع من أوضاعه جانبًا مختلفًا لما هو موجود
يحدث في الخادم. على سبيل المثال، هناك وضع لمراقبة النسخ المتماثل، واحد لـ
الاستعلامات، وواحدة للمعاملات. يقوم innotop بتحديث بياناته بشكل دوري، لذلك ترى رسالة
عرض التحديث.

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

بداية سريعة


لبدء innotop، افتح المحطة الطرفية أو موجه الأوامر. إذا قمت بتثبيت innotop على
نظامك، يجب أن تكون قادرًا فقط على كتابة "innotop" والضغط على Enter؛ خلاف ذلك، أنت
سوف تحتاج إلى التغيير إلى دليل innotop واكتب "Perl innotop".

مع عدم تحديد أي خيارات، سيحاول innotop الاتصال بخادم MySQL على المضيف المحلي
باستخدام mysql_read_default_group=client لمعلمات الاتصال الأخرى. إذا كنت بحاجة إلى
حدد اسم مستخدم وكلمة مرور مختلفين، واستخدم الخيارين -u و -p، على التوالي. ل
لمراقبة قاعدة بيانات MySQL على مضيف آخر، استخدم الخيار -h.

بعد الاتصال، من المفترض أن يعرض لك innotop شيئًا مثل ما يلي:

[RO] قائمة الاستعلامات (؟ للمساعدة) المضيف المحلي، 01:11:19، 449.44 QPS، 14/7/163 con/run

CXN عند تحميل QPS Slow QCacheHit KCacheHit BpsIn BpsOut
المضيف المحلي إجمالي 0.00 1.07 ألف 697 0.00% 98.17% 476.83 ألف 242.83 ألف

معرف مستخدم CXN Cmd استعلام وقت قاعدة البيانات
استعلام المضيف المحلي 766446598 اختبار 10.0.0.1 foo 00:02 INSERT INTO table (

(يتم اقتطاع هذه العينة على اليمين بحيث يتم احتواؤها على المحطة الطرفية عند تشغيل 'man
إينوتوب')

إذا كان الخادم الخاص بك مشغولاً، فسترى المزيد من المخرجات. لاحظ السطر الأول على الشاشة،
والذي يخبرك أنه تم ضبط readonly على true ([RO])، والوضع الذي تستخدمه والخادم الذي تستخدمه
أنت متصل به. يمكنك التغيير إلى أوضاع أخرى بضغطات المفاتيح؛ اضغط على "T" للتبديل
إلى قائمة معاملات InnoDB، على سبيل المثال.

اضغط على '؟' مفتاح لمعرفة المفاتيح النشطة في الوضع الحالي. يمكنك الضغط على أي منها
ستتخذ هذه المفاتيح وinnotop الإجراء المطلوب أو ستطالبك بمزيد من الإدخال.
إذا كان نظامك يتمتع بدعم Term::ReadLine، فيمكنك استخدام TAB والمفاتيح الأخرى للإكمال التلقائي
وتحرير المدخلات.

للخروج من innotop، اضغط على المفتاح "q".

OPTIONS


يتم تكوين innotop في الغالب عبر ملف التكوين الخاص به، ولكن بعض إعدادات التكوين
يمكن أن تأتي الخيارات من سطر الأوامر. يمكنك أيضًا تحديد ملف لمراقبته لـ InnoDB
إخراج الحالة؛ راجع "مراقبة ملف" لمزيد من التفاصيل.

يمكنك إلغاء بعض الخيارات عن طريق وضع بادئة لاسم الخيار بـ --no. على سبيل المثال، --noinc
(أو --no-inc) ينفي "--inc".

--اللون
تمكين أو تعطيل التلوين الطرفي. يتوافق مع إعداد ملف التكوين "اللون".

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

--عدد
قم بالتحديث لعدد المرات المحدد فقط (علامات التجزئة) قبل الخروج. كل تحديث هو
توقف مؤقتًا لمدة ثواني "فاصلة"، متبوعة بطلب البيانات من اتصالات MySQL و
طباعته إلى المحطة.

--تأخير
يحدد مقدار الوقت للإيقاف المؤقت بين علامات التجزئة (التحديثات). يتوافق مع
خيار التكوين "الفاصل الزمني".

--مساعدة
اطبع ملخصًا لاستخدام سطر الأوامر والخروج.

--مضيف
المضيف المراد الاتصال به.

--شركة
يحدد ما إذا كان يجب على innotop عرض الأرقام المطلقة أو الأرقام النسبية (الإزاحات
من قيمها السابقة). يتوافق مع خيار التكوين "status_inc".

--الوضع
يحدد الوضع الذي يجب أن يبدأ فيه innotop. يتوافق مع التكوين
خيار "الوضع".

--nonint
تمكين التشغيل غير التفاعلي. راجع "العملية غير التفاعلية" للمزيد.

--كلمه السر
كلمة المرور لاستخدامها في الاتصال.

--ميناء
المنفذ الذي سيتم استخدامه للاتصال.

--skipcentral
لا تقرأ ملف التكوين المركزي.

--المستعمل
المستخدم لاستخدامه للاتصال.

--الإصدار
إخراج معلومات الإصدار والخروج.

--اكتب
يضبط خيار التكوين "للقراءة فقط" على 0، مما يجعل كتابة innotop قيد التشغيل
التكوين ل ~/.innotop/innotop.conf عند الخروج، إذا لم يتم تحميل أي ملف التكوين
عند بدء التشغيل.

مفاتيح التشغيل السريع


Innotop تفاعلي، ويمكنك التحكم فيه بالضغط على المفاتيح.

· المفاتيح الكبيرة للتبديل بين الأوضاع.

· المفاتيح الصغيرة تبدأ بعض الإجراءات ضمن الوضع الحالي.

· تقوم المفاتيح الأخرى بشيء خاص مثل تغيير التكوين أو إظهار ترخيص innotop.

يضعط '؟' في أي وقت لرؤية المفاتيح النشطة حاليًا وما تفعله.

MODES


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

ب: المخازن المؤقتة InnoDB
يعرض هذا الوضع معلومات حول تجمع المخزن المؤقت InnoDB وإحصائيات الصفحة والإدراج
المخزن المؤقت، ومؤشر التجزئة التكيفي. تأتي البيانات من عرض حالة INNODB.

يحتوي هذا الوضع على "buffer_pool" و"page_statistics" و"insert_buffers" و
الجداول "adaptive_hash_index" بشكل افتراضي.

ج: ملخص الأمر
هذا الوضع مشابه لوضع ملخص الأوامر الخاص بـ mytop. يظهر "cmd_summary"
الجدول، والذي يبدو كما يلي:

ملخص الأمر (؟ للمساعدة) مضيف محلي، 25+07:16:43، 2.45 QPS، 3th، 5.0.40
_____________________ ملخص الأمر _____________________
اسم القيمة نسبة مئوية آخر نسبة مئوية
Select_scan 3244858 69.89% 2 100.00%
اختر_النطاق 1354177 29.17% 0 0.00%
اختر_كامل_الانضمام 39479 0.85% 0 0.00%
Select_full_range_join 4097 0.09% 0 0.00%
Select_range_check 0 0.00% 0 0.00%

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

يوضح المثال ما تراه إذا كانت البادئة هي "Select_". البادئة الافتراضية هي
"كوم_". يمكنك اختيار بادئة باستخدام مفتاح 's'.

إنه يشبه تشغيل SHOW VARIABLES LIKE "prefix%" مع الذاكرة ولطيف
التنسيق.

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

د: الجمود InnoDB
يعرض هذا الوضع المعاملات المتضمنة في آخر حالة توقف تام لـ InnoDB. طاولة ثانية
يظهر الأقفال لكل معاملة عقدت وانتظرت. يحدث الجمود بسبب دورة
في الرسم البياني للانتظار، لذلك يجب أن يكون هناك قفلان معلقان وواحد منتظر إلا
يتم اقتطاع معلومات حالة توقف تام.

يضع InnoDB معلومات حالة توقف تام قبل بعض المعلومات الأخرى في SHOW INNODB
إخراج الحالة. إذا كان هناك الكثير من الأقفال، فيمكن أن تنمو معلومات حالة الجمود بشكل كبير
كبير، وهناك حد لحجم إخراج SHOW INNODB STATUS. كبير
الجمود يمكن أن يملأ الإخراج بأكمله، أو حتى يتم اقتطاعه، ويمنعك من الرؤية
معلومات أخرى على الإطلاق. إذا كنت تقوم بتشغيل innotop في وضع آخر، على سبيل المثال T
الوضع، وفجأة لا ترى أي شيء، قد ترغب في التحقق ومعرفة ما إذا كان أ
لقد أدى الجمود إلى مسح البيانات التي تحتاجها.

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

يمكنك أيضًا تكوين innotop ليكتشف تلقائيًا متى يلزم وجود حالة توقف تام كبيرة
سيتم استبداله بآخر صغير (راجع "auto_wipe_dl").

يعرض هذا الوضع جدولي "deadlock_transactions" و"deadlock_locks" بشكل افتراضي.

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

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

يعرض هذا الوضع جدول "fk_error" بشكل افتراضي.

أنا: معلومات الإدخال/الإخراج في InnoDB
يعرض هذا الوضع إحصائيات الإدخال/الإخراج الخاصة بـ InnoDB، بما في ذلك سلاسل الإدخال/الإخراج وملف الإدخال/الإخراج المعلق
I/O المتنوعة، وسجل الإحصائيات. فإنه يعرض "io_threads"، "pending_io"،
الجداول "file_io_misc" و"log_statistics" بشكل افتراضي.

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

يمكنك تكوين MySQL وinnotop لمراقبة ليس فقط أقفال المعاملة
ينتظرون، ولكن أولئك المحتجزين حاليًا أيضًا. يمكنك القيام بذلك باستخدام قفل InnoDB
شاشة (http://dev.mysql.com/doc/en/innodb-monitor.html>). ولم يتم توثيقه في
دليل MySQL، ولكن إنشاء شاشة القفل باستخدام العبارة التالية أيضًا
يؤثر على مخرجات SHOW INNODB STATUS، والتي يستخدمها innotop:

إنشاء جدول innodb_lock_monitor(a int) ENGINE=INNODB;

يؤدي هذا إلى قيام InnoDB بطباعة مخرجاته إلى ملف MySQL كل 16 ثانية أو نحو ذلك
مذكور في الدليل، ولكنه أيضًا يجعل إخراج SHOW INNODB STATUS العادي متضمنًا
معلومات القفل، والتي يمكن لـ innotop تحليلها وعرضها (وهذا هو الملف غير الموثق
الميزة).

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

يعرض هذا الوضع جدول "innodb_locks" افتراضيًا. وهنا عينة من الشاشة
عندما يكون أحد الاتصالات في انتظار الأقفال التي يحملها اتصال آخر:

_________________________________ أقفال InnoDB __________________________
نوع معرف CXN، انتظار، انتظار، فهرس جدول قاعدة بيانات الوضع النشط
المضيف المحلي 12 سجل 1 00:10 00:10 X اختبار t1 الأساسي
المضيف المحلي 12 الجدول 0 00:10 00:10 التاسع اختبار t1
المضيف المحلي 12 سجل 1 00:10 00:10 X اختبار t1 الأساسي
المضيف المحلي 11 الجدول 0 00:00 00:25 التاسع اختبار t1
المضيف المحلي 11 سجل 0 00:00 00:25 X اختبار t1 الأساسي

يمكنك رؤية الاتصال الأول، المعرف 12، ينتظر قفل المفتاح الأساسي قيد التشغيل
test.t1، وكان ينتظر لمدة 10 ثوانٍ. الاتصال الثاني لا ينتظر،
لأن عمود الانتظار يساوي 0، ولكنه يحمل أقفالًا على نفس الفهرس. هذا يخبرك
الاتصال 11 يمنع الاتصال 12.

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

يعرض هذا الوضع "slave_sql_status" و"slave_io_status" و"master_status"
الجداول بشكل افتراضي.

س: الجداول المفتوحة
يأتي هذا القسم من الأمر SHOW OPEN TABLES الخاص بـ MySQL. بشكل افتراضي يتم تصفيته
لإظهار الجداول المستخدمة بواسطة استعلام واحد أو أكثر، حتى تتمكن من إلقاء نظرة سريعة عليها
ما هي الجداول "الساخنة". يمكنك استخدام هذا لتخمين الجداول التي قد تكون مقفلة
بشكل ضمني.

يعرض هذا الوضع وضع "open_tables" افتراضيًا.

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

يوجد رأس إعلامي يعرض معلومات الحالة العامة الخاصة بك
الخادم. يمكنك تشغيله وإيقافه باستخدام المفتاح "h". بشكل افتراضي، يخفي innotop
العمليات غير النشطة والعملية الخاصة بها. يمكنك تبديل هذه العناصر وإيقافها باستخدام "i"
ومفاتيح "أ".

يمكنك شرح استعلام من هذا الوضع باستخدام المفتاح "e". يؤدي هذا إلى عرض الاستعلام
النص الكامل، ونتائج EXPLAIN، وفي إصدارات MySQL الأحدث، حتى الإصدارات المحسنة
الاستعلام الناتج عن EXPLAIN EXTENDED. يحاول innotop أيضًا إعادة كتابة استعلامات معينة
لجعلها قادرة على شرح. على سبيل المثال، عبارات INSERT/SELECT قابلة لإعادة الكتابة.

يعرض هذا الوضع جدولي "q_header" و"processlist" بشكل افتراضي.

R: عمليات صف InnoDB والإشارات
يُظهر هذا الوضع عمليات الصف InnoDB، وعمليات الصف المتنوعة، والإشارات، و
المعلومات من مجموعة الانتظار. يعرض "row_operations"،
جداول "row_operation_misc" و"الإشارات" و"wait_array" بشكل افتراضي.

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

يمكنك التبديل بين طرق العرض بالضغط على المفتاح. يطبع مفتاح 's' سطرًا واحدًا
في كل مرة يتم تحديث الشاشة بأسلوب vmstat. يقوم المفتاح "g" بتغيير طريقة العرض إلى
رسم بياني لنفس الأرقام، نوعا من مثل تفريغ. يغير المفتاح "v" طريقة العرض إلى a
جدول محوري لأسماء المتغيرات على اليسار، مع تمرير التحديثات المتعاقبة عبره
الشاشة من اليسار إلى اليمين. يمكنك اختيار عدد التحديثات التي تريد وضعها على الشاشة
باستخدام متغير التكوين "num_status_sets".

قد يتم اختصار الرؤوس لتلائم الشاشة أثناء التشغيل التفاعلي. اختار أنت
المتغيرات التي سيتم عرضها باستخدام المفتاح "c"، والتي يتم الاختيار من بين مجموعات محددة مسبقًا، أو
يتيح لك إنشاء مجموعاتك الخاصة. يمكنك تحرير المجموعة الحالية باستخدام المفتاح "e".

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

T: معاملات InnoDB
يعرض هذا الوضع المعاملات من مخرجات شاشة InnoDB تيشرت-مثل الشكل.
هذا الوضع هو السبب الذي جعلني أكتب innotop.

يمكنك إيقاف الاستعلامات أو العمليات باستخدام المفتاحين "k" و"x"، وشرح الاستعلام باستخدامهما
المفاتيح "e" أو "f". لا يقوم InnoDB بطباعة الاستعلام الكامل في المعاملات، لذلك
قد لا يعمل الشرح بشكل صحيح إذا تم اقتطاع الاستعلام.

يمكن تشغيل وإيقاف رأس المعلومات باستخدام المفتاح "h". بشكل افتراضي،
يخفي innotop المعاملات غير النشطة والمعاملات الخاصة به. يمكنك تبديل هذا
وإيقاف باستخدام المفتاحين "i" و"a".

يعرض هذا الوضع جدولي "t_header" و"innodb_transactions" بشكل افتراضي.

إنوتوب الوضع


السطر الأول الذي يعرضه innotop هو "شريط الحالة" من نوع ما. ما يحتوي عليه يعتمد على
الوضع الذي أنت فيه، والخوادم التي تراقبها. الكلمات القليلة الأولى هي دائما
[RO] (إذا تم ضبط القراءة فقط على 1)، وضع innotop، مثل "InnoDB Txns" لوضع T،
متبوعًا بتذكير للضغط على "؟" للمساعدة في أي وقت.

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

إذا كنت في وضع InnoDB، مثل T أو B، فإن الكلمة التالية هي "InnoDB" متبوعة ببعض
معلومات حول إخراج SHOW INNODB STATUS المستخدم لعرض الشاشة. الكلمة الأولى
هو عدد الثواني منذ آخر حالة عرض INNODB، والتي يستخدمها InnoDB لحسابها
بعض الإحصائيات في الثانية. التالي هو وجه مبتسم يشير إلى ما إذا كان InnoDB
يتم اقتطاع الإخراج. إذا كان الوجه المبتسم :-)، فكل شيء على ما يرام؛ لا يوجد اقتطاع. أ
:^| يعني أن قائمة المعاملات طويلة جدًا، وقد قام InnoDB بطباعة بعض المعاملات فقط
المعاملات. أخيرًا، العبوس :-( يعني أن الإخراج غير مكتمل، وهو على الأرجح بسبب
إلى طريق مسدود يطبع الكثير من معلومات القفل (راجع "D: InnoDB Deadlocks").

تشير الكلمتان التاليتان إلى استعلامات الخادم في الثانية (QPS) وعدد سلاسل الرسائل
(اتصالات) موجودة. وأخيرًا، رقم إصدار الخادم هو آخر شيء على السطر.

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

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

راجع "معالجة الأخطاء" للحصول على مزيد من التفاصيل حول معالجة الأخطاء في innotop.

MONITORING A FILE
إذا أعطيت اسم ملف في سطر الأوامر، فلن يتصل innotop بأي خوادم على
الجميع. سيشاهد الملف المحدد لإخراج حالة InnoDB ويستخدمه كبياناته
مصدر. سيُظهر دائمًا اتصالاً واحدًا يسمى "ملف". وبما أنه لا يمكن
الاتصال بالخادم، ولا يمكنه تحديد المدة التي استغرقها الخادم الذي يراقبه؛
لذلك فهو يحسب وقت تشغيل الخادم باعتباره الوقت منذ بدء تشغيل innotop.

الخادم إدارة


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

يمكنك إنهاء اتصال، أو في الإصدارات الأحدث من MySQL، يمكنك إنهاء استعلام ولكن ليس
الاتصال، من أوضاع "Q: Query List" و"T: InnoDB Transactions". اضغط على "k" لإصدار أ
أمر KILL، أو "x" لإصدار أمر KILL QUERY. سوف يطالبك innotop بـ
الخادم و/أو معرف الاتصال للقتل (لا يطالبك innotop إذا كان هناك معرف واحد فقط
الخيار الممكن لأي إدخال). يقوم innotop بتحديد الاستعلام الأطول تشغيلًا مسبقًا، أو
أقدم اتصال. قم بتأكيد الأمر بـ "y".

في "حالة النسخ المتماثل للتابع"" في الوضع "M: Master"، يمكنك بدء تشغيل العبيد وإيقافهم باستخدام
المفاتيح "a" و"o" على التوالي. يمكنك إرسال هذه الأوامر إلى العديد من العبيد في وقت واحد.
يقوم innotop بملء الأمر الافتراضي الخاص بـ START SLAVE أو STOP SLAVE لك، ولكن يمكنك ذلك
قم بتحرير الأمر فعليًا وأرسل أي شيء تريده، مثل SET GLOBAL
SQL_SLAVE_SKIP_COUNTER=1 لجعل العبد يتخطى حدث binlog واحد عند بدايته.

يمكنك أيضًا أن تطلب من innotop حساب أقدم سجل يستخدمه أي تابع وإصدار ملف
تطهير السجلات الرئيسية على اللوحة الرئيسية. استخدم المفتاح "b" لهذا الغرض. سوف يطالبك innotop بـ
master لتشغيل الأمر، ثم يطالبك بأسماء الاتصال الخاصة بهذا السيد
العبيد (لا توجد وسيلة لـ innotop لتحديد ذلك بشكل موثوق بنفسها). سوف تجد innotop
الحد الأدنى من binlog المستخدم بواسطة هذه الاتصالات التابعة واقتراحه كوسيطة لـ
تطهير السجلات الرئيسية.

الخادم CONNECTIONS


عند إنشاء اتصال بالخادم باستخدام "@"، يطلب منك innotop سلسلة من المدخلات، مثل
يتبع:

DSN A DSN هو اسم مصدر البيانات، وهو الوسيطة الأولية التي تم تمريرها إلى وحدة DBI
للاتصال بالخادم. وعادة ما يكون من النموذج

DBI:mysql:;mysql_read_default_group=mysql;host=HOSTNAME

نظرًا لأنه تم تمرير DSN هذا إلى برنامج تشغيل DBD::mysql، فيجب عليك قراءة برنامج التشغيل
الوثائق على "/search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm"" في "http: for the
تفاصيل دقيقة عن كافة الخيارات التي يمكنك تمريرها للسائق في DSN. يمكنك القراءة
المزيد عن DBI فيhttp://dbi.perl.org/docs/>، وخاصة في
<http://search.cpan.org/~timb/DBI/DBI.pm>.

يتيح خيار mysql_read_default_group=mysql لبرنامج تشغيل DBD قراءة خيارات MySQL الخاصة بك
الملفات ، مثل ~ / .my.cnf على أنظمة UNIX-ish. يمكنك استخدام هذا لتجنب تحديد أ
اسم المستخدم أو كلمة المرور للاتصال.

جدول الجمود InnoDB
يخبر هذا العنصر الاختياري innotop باسم الجدول الذي يمكن استخدامه لإنشاء جدول
حالة توقف تام صغيرة (راجع "D: InnoDB Deadlocks"). إذا قمت بتحديد هذا الخيار، تحتاج فقط
للتأكد من أن الجدول غير موجود، وأن innotop يمكنه إنشاء الجدول وإسقاطه
باستخدام محرك التخزين InnoDB. يمكنك حذف الإعداد الافتراضي أو قبوله بأمان إذا كنت
لا تنوي استخدام هذا.

اسم المستخدم
سوف يسألك innotop عما إذا كنت تريد تحديد اسم مستخدم. إذا قلت "y" ، فسيتم ذلك بعد ذلك
يطالبك باسم المستخدم. إذا كان لديك ملف خيار MySQL الذي يحدد ملف
اسم المستخدم، ليس عليك تحديد اسم مستخدم.

اسم المستخدم الافتراضي هو اسم تسجيل الدخول الخاص بك على النظام الذي تعمل عليه innotop.

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

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

الخادم فئات


إذا كان لديك مثيلات MySQL متعددة، فيمكنك وضعها في مجموعات مسماة، مثل "الكل"،
"الأسياد" و"العبيد"، والتي يمكن لـ innotop مراقبتها جميعًا معًا.

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

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

التبديل بين CONNECTIONS


يتيح لك innotop التبديل بسرعة بين الخوادم التي تراقبها. الطريقة الأساسية هي عن طريق
الضغط على المفتاح "@" وكتابة اسم (أسماء) الاتصال (الاتصالات) الذي تريد استخدامه. هذا
يكون الإعداد لكل وضع، لذا يمكنك مراقبة الاتصالات المختلفة في كل وضع، وinnotop
يتذكر الاتصالات التي تختارها.

يمكنك التبديل بسرعة إلى الاتصال "التالي" بالترتيب الأبجدي باستخدام المفتاح "n".
إذا كنت تراقب مجموعة خوادم (راجع "مجموعات الخوادم")، فسيتم التبديل إلى المجموعة الأولى
الاتصال.

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

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

لا يقوم innotop بجلب البيانات بالتوازي من الاتصالات، لذلك إذا كنت تراقب مجموعة كبيرة
مجموعة أو العديد من الاتصالات، قد تلاحظ زيادة في التأخير بين علامات التجزئة.

عند مراقبة أكثر من اتصال واحد، يتغير شريط الحالة الخاص بـ innotop. راجع "INNOTOP
حالة".

خطأ معالجة


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

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

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

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

غير تفاعلي OPERATION


يمكنك تشغيل innotop في الوضع غير التفاعلي، وفي هذه الحالة يتم التحكم فيه بالكامل
ملف التكوين وخيارات سطر الأوامر. لبدء innotop في غير التفاعلية
في الوضع، قم بإعطاء خيار سطر الأوامر L"<--nonint">. يؤدي هذا إلى تغيير سلوك innotop في ملف
الطرق التالية:

· لم يتم تحميل بعض وحدات بيرل. المصطلح::لم يتم تحميل Readline، منذ innotop
لا يطالب بشكل تفاعلي. وحدات Term::ANSIColor وWin32::Console::ANSI هي
غير محمل. لا يزال مصطلح::ReadKey مستخدمًا، نظرًا لأنه قد يتعين على innotop المطالبة بذلك
كلمات مرور الاتصال عند بدء التشغيل.

· لا يقوم innotop بمسح الشاشة بعد كل علامة.

· innotop لا يستمر في إجراء أية تغييرات على ملف التكوين.

· إذا تم إعطاء "--count" وكان innotop في الوضع التزايدي (راجع "status_inc" و
"--inc")، يقوم innotop فعليًا بالتحديث مرة أخرى أكثر من المحدد حتى يتمكن من الطباعة
إحصائيات تزايدية. يؤدي هذا إلى منع الإخراج أثناء العلامة الأولى، لذلك قد يقوم innotop بذلك
يبدو أن يتعطل.

· يعرض innotop الجدول الأول فقط في كل وضع. هذا هو ما يمكن أن يكون الإخراج
تتم معالجتها بسهولة باستخدام أدوات مساعدة لسطر الأوامر الأخرى مثل awk وsed. للتغيير
ما هي الجداول التي يتم عرضها في كل وضع، راجع "الجداول". نظرًا لأن وضع "Q: Query List" هو كذلك
مهم، يقوم innotop تلقائيًا بتعطيل جدول "q_header". وهذا يضمن لك
راجع جدول "قائمة العمليات"، حتى إذا قمت بتكوين innotop لإظهار q_header
الجدول أثناء العملية التفاعلية. وبالمثل، في وضع "T: InnoDB Transactions"، يتم تشغيل ملف
يتم منع جدول "t_header" بحيث ترى جدول "innodb_transactions" فقط.

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

· يقوم innotop بطباعة رؤوس الأعمدة مرة واحدة فقط بدلاً من كل علامة (راجع "hide_hdr").
لا يقوم innotop بطباعة التسميات التوضيحية للجدول (راجع "display_table_captions"). يضمن innotop
لا توجد أسطر فارغة في الإخراج.

· لا يحترم innotop التحويل "المختصر"، الذي يؤدي عادةً إلى تقصير بعض العناصر
الأرقام إلى صيغ يمكن قراءتها بواسطة الإنسان.

· لا يقوم innotop بطباعة سطر الحالة (راجع "حالة INNOTOP").

التكوين


تقريبًا كل شيء يتعلق بـ innotop قابل للتكوين. من الممكن تغيير معظم الأشياء
الأوامر المضمنة، ولكن يمكنك أيضًا تحرير ملف التكوين.

أثناء تشغيل innotop، اضغط على المفتاح '$' لإظهار مربع حوار تحرير التكوين.
اضغط على مفتاح آخر لتحديد نوع البيانات التي تريد تحريرها:

S: بيان أوقات النوم
يقوم بتحرير تأخيرات سكون عبارة SQL، مما يؤدي إلى توقف innotop مؤقتًا للمدة المحددة
الوقت بعد تنفيذ البيان. راجع "بيانات SQL" للحصول على تعريف لكل منها
بيان وماذا يفعل. بشكل افتراضي، لا يتأخر innotop بعد أي بيانات.

تم تضمين هذه الميزة حتى تتمكن من تخصيص الآثار الجانبية الناجمة عن المراقبة
الخادم الخاص بك. قد لا ترى أي تأثيرات، لكن بعض مستخدمي innotop لاحظوا ذلك
تستغرق بعض إصدارات MySQL تحت التحميل العالي جدًا مع تمكين InnoDB وقتًا أطول من المعتاد
لتنفيذ عرض الحالة العامة. إذا اتصلت innotop بإظهار قائمة العمليات الكاملة على الفور
وبعد ذلك، تحتوي قائمة العمليات على استعلامات أكثر مما يصل إليه الجهاز فعليًا
في أي لحظة. تكوين innotop للتوقف لفترة وجيزة بعد الاتصال بـ SHOW GLOBAL
STATUS يخفف هذا التأثير.

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

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

ز: التكوين العام
يبدأ تشغيل محرر التكوين لتحرير التكوين العام والتكوين الخاص بالوضع
المتغيرات (انظر "الأوضاع"). يطالبك innotop باختيار متغير من بين ملفات
العالمية والخاصة بالوضع اعتمادًا على الوضع الحالي.

ك: قواعد تلوين الصف
يبدأ تشغيل محرر قواعد تلوين الصفوف على أحد الجدول (الجداول) المعروضة. انظر "الألوان"
للتفاصيل.

ع: إدارة المكونات الإضافية
يبدأ تشغيل محرر تكوين البرنامج المساعد. راجع "المكونات الإضافية" للحصول على التفاصيل.

الصورة: مجموعات الخادم
يتيح لك إنشاء وتحرير مجموعات الخادم. راجع "مجموعات الخوادم".

t: اختر الجداول المعروضة
يتيح لك اختيار الجداول التي سيتم عرضها في هذا الوضع. انظر "الأوضاع" و"الجداول".

CONFIGURATION FILE


مواقع ملفات التكوين الافتراضية لـ innotop هي $HOME/.innotop و
/etc/innotop/innotop.conf، ويتم البحث عنها بهذا الترتيب. إذا كان الأول
ملف التكوين موجود، ولن تتم معالجة الثاني. يمكن تجاوز تلك مع
خيار سطر الأوامر "--config". يمكنك تحريره يدويًا بأمان، ولكن يقرأه innotop
ملف التكوين عند بدء تشغيله، وإذا تم تعيين القراءة فقط على 0، فسيتم كتابته مرة أخرى
عندما يخرج. وبالتالي، إذا تم تعيين readonly على 0، فإن أي تغييرات تجريها يدويًا أثناء استخدام innotop
قيد التشغيل سيتم فقدان.

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

يكون ملف التكوين افتراضيًا للقراءة فقط. يمكنك تجاوز ذلك بـ "--write". يرى
"يقرأ فقط".

يتم ترتيب ملف التكوين إلى أقسام مثل ملف INI. يبدأ كل قسم
بـ [اسم القسم] وينتهي بـ [/ اسم القسم]. تحتوي إدخالات كل قسم على
بناء جملة مختلف اعتمادًا على البيانات التي يحتاجون إلى تخزينها. يمكنك وضع التعليقات في
ملف؛ أي سطر يبدأ بحرف # هو تعليق. لن يقرأ innotop ملف
التعليقات، لذلك لن يتم كتابتها مرة أخرى إلى الملف عند الخروج. التعليقات في القراءة-
ومع ذلك، فإن ملفات التكوين فقط هي التي لا تزال مفيدة.

السطر الأول في الملف هو رقم إصدار innotop. يتيح هذا لـ innotop ملاحظة متى
تنسيق الملف غير متوافق مع الإصدارات السابقة، ويمكنك الترقية بسلاسة دون إتلاف ملفاتك
التكوين المخصص.

تصف القائمة التالية كل قسم من ملف التكوين والبيانات الخاصة به
يحتوي على:

جنرال لواء
يحتوي القسم "العامة" على متغيرات التكوين العامة والمتغيرات التي قد
تكون خاصة بالوضع، ولكنها لا تنتمي إلى أي قسم آخر. بناء الجملة بسيط
مفتاح = قائمة القيم. يكتب innotop تعليقًا فوق كل قيمة لمساعدتك في تحرير الملف
باليد.

S_func
يتحكم في العرض التقديمي لوضع S (راجع "S: المتغيرات والحالة"). إذا ز، القيم هي
رسوم بيانية. إذا كانت s، تكون القيم مثل vmstat؛ إذا p، القيم موجودة في جدول محوري.

S_set
يحدد مجموعة المتغيرات التي سيتم عرضها في وضع "S: Variables & Status". يرى
"مجموعات متغيرة".

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

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

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

cmd_filter
هذه هي البادئة التي تقوم بتصفية المتغيرات في وضع "C: Command Summary".

اللون
ما إذا كان التلوين الطرفي مسموحًا به.

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

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

ملف التصحيح
ملف يقوم innotop بكتابة المعلومات إليه عند حدوث عطل. يرى
"الملفات".

Display_table_captions
يعرض innotop تسمية توضيحية للجدول أعلى معظم الجداول. يمنع هذا المتغير أو
يعرض التسميات التوضيحية على كافة الجداول على مستوى العالم. تم تكوين بعض الجداول باستخدام
خاصية Hide_caption، التي تتجاوز هذا.

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

لم يعد بإمكاني العثور على الموقف الذي لم يكن مسموحًا فيه بـ GLOBAL أو إعادة إنتاجه، ولكنني
أعرف أنه كان هناك واحد.

graph_char
يحدد الحرف الذي سيتم استخدامه عند رسم الرسوم البيانية في وضع "S: Variables & Status".

header_highlight
يحدد كيفية تمييز رؤوس الأعمدة. يعمل هذا فقط إذا كان Term::ANSIColor موجودًا
متاح. القيم الصالحة هي "غامق" و"تسطير".

Hide_hdr
إخفاء رؤوس الأعمدة على مستوى العالم.

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

يقبل هذا المتغير أجزاء من الثانية.

طريقة
الوضع الذي يجب أن يبدأ فيه innotop. الوسائط المسموح بها هي نفسها
الضغط على المفاتيح التي تحدد الوضع بشكل تفاعلي. انظر "الأوضاع".

كانت num_digits
كم عدد الأرقام التي يجب إظهارها بالأرقام الكسرية والنسب المئوية. نطاق هذا المتغير
يتراوح بين 0 و9 ويمكن ضبطه مباشرة من وضع "S: Variables & Status" باستخدام
المفاتيح "+" و"-". يتم استخدامه في "set_precision" و"shorten" و"percent"
التحولات.

num_status_sets
يتحكم في عدد مجموعات متغيرات الحالة التي سيتم عرضها في "S: Variables &
"وضع الحالة". كما أنه يتحكم في عدد المجموعات القديمة من المتغيرات التي يحتفظ بها innotop
في ذاكرته، فكلما زاد حجم هذا المتغير، زاد استخدام الذاكرة في innotop.

plugin_dir
يحدد أين يمكن العثور على المكونات الإضافية. بشكل افتراضي، يقوم innotop بتخزين المكونات الإضافية في ملف
الدليل الفرعي "المكونات الإضافية" لدليل تكوين innotop الخاص بك.

للقراءة فقط
ما إذا كان ملف التكوين للقراءة فقط. لا يمكن تعيين هذا بشكل تفاعلي.

show_cxn_errors
يجعل أخطاء اتصال الطباعة innotop بـ STDOUT. راجع "معالجة الأخطاء".

show_cxn_errors_in_tbl
يجعل أخطاء اتصال العرض innotop كصفوف في الجدول الأول على الشاشة. يرى
"معالجة الأخطاء".

show_percent
يضيف حرف '%' بعد القيمة التي يتم إرجاعها بواسطة التحويل "النسبة المئوية".

أظهر شريط الحالة
التحكم في إظهار شريط الحالة على الشاشة أم لا. راجع "حالة INNOTOP".

Skip_innodb
تعطيل جلب SHOW INNODB STATUS، في حالة عدم احتواء الخادم (الخوادم) لديك على InnoDB
تم تمكينه ولا تريد أن يحاول innotop جلبه. يمكن أن يكون هذا مفيدًا أيضًا
عندما لا يكون لديك الامتياز الفائق المطلوب لتشغيل SHOW INNODB STATUS.

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

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

مرشحات
يحتوي هذا القسم على مرشحات محددة من قبل المستخدم (راجع "المرشحات"). كل سطر في الشكل
filter_name=text='نص التصفية' tbls='قائمة الجدول'.

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

active_filters
يقوم هذا القسم بتخزين عوامل التصفية النشطة في كل جدول. كل سطر في
تنسيق table_name=filter_list.

tbl_meta
يقوم هذا القسم بتخزين الأعمدة المعرفة أو المخصصة بواسطة المستخدم (راجع "الأعمدة"). كل
السطر بالتنسيق col_name=properties، حيث تكون الخصائص a
الاسم = قائمة القيمة المقتبسة.

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

active_connections
يحتوي هذا القسم على قائمة بالاتصالات النشطة في كل وضع. كل سطر هو
بالتنسيق mode_name=connection_list.

server_groups
يحتوي هذا القسم على مجموعات الخادم. كل سطر بالتنسيق name=connection_list.
راجع "مجموعات الخوادم".

active_server_groups
يحتوي هذا القسم على قائمة بمجموعة الخوادم النشطة في كل وضع. كل سطر هو
بالتنسيق mode_name=server_group.

max_values_seen
يحتوي هذا القسم على الحد الأقصى للقيم المرئية للمتغيرات. يستخدم هذا لتوسيع نطاق
الرسوم البيانية في وضع "S: المتغيرات والحالة". كل سطر بالتنسيق name=value.

active_columns
يحتوي هذا القسم على قوائم أعمدة الجدول. كل سطر في الشكل
tbl_name=column_list. انظر "الأعمدة".

Sort_cols
يحمل هذا القسم تعريف الفرز. كل سطر في الشكل
tbl_name=column_list. إذا كان العمود مسبوقًا بـ "-"، فسيتم فرز هذا العمود تنازليًا.
انظر "الفرز".

visual_tables
يحدد هذا القسم الجداول التي تكون مرئية في كل وضع. كل سطر في
تنسيق mode_name=table_list. انظر "الجداول".

فارسيتس
يحدد هذا القسم مجموعات المتغيرات للاستخدام في وضع "S: الحالة والمتغيرات". كل خط
بالتنسيق name=variable_list. انظر "المجموعات المتغيرة".

الألوان
يحدد هذا القسم قواعد التلوين. كل سطر في الشكل
tbl_name=property_list. انظر "الألوان".

stmt_sleep_times
يحتوي هذا القسم على بيان أوقات النوم. كل سطر في الشكل
statement_name=sleep_time. راجع "S: بيان أوقات النوم".

مجموعة من
يحتوي هذا القسم على قوائم أعمدة لتعبيرات الجدول group_by. كل سطر فيه
التنسيق tbl_name=column_list. انظر "التجميع".

التخصيص


يمكنك تخصيص innotop كثيرًا. على سبيل المثال، يمكنك:

· اختر الجداول التي تريد عرضها وبأي ترتيب.

· اختر الأعمدة الموجودة في تلك الجداول، وقم بإنشاء أعمدة جديدة.

· قم بتصفية الصفوف التي يتم عرضها باستخدام المرشحات المضمنة، والمرشحات المحددة من قبل المستخدم، والمرشحات السريعة
المرشحات.

· قم بفرز الصفوف لوضع البيانات المهمة أولاً أو تجميع الصفوف ذات الصلة معًا.

· تسليط الضوء على الصفوف مع اللون.

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

· صمم تعبيراتك الخاصة لاستخراج البيانات ودمجها حسب حاجتك. هذا يعطيك
مرونة غير محدودة.

كل هذا وأكثر سيتم شرحه في الأقسام التالية.

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

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

يمكنك اختيار الجداول التي تريد إظهارها بالضغط على المفتاح "$". انظر "الأوضاع" و"الجداول".

دورة حياة الجدول هي كما يلي:

· يبدأ كل جدول بمصدر بيانات، وهو عبارة عن مجموعة من التجزئات. انظر أدناه ل
تفاصيل عن مصادر البيانات.

· يصبح كل عنصر من عناصر مصدر البيانات صفًا في الجدول النهائي.

· بالنسبة لكل عنصر في مصدر البيانات، يقوم innotop باستخراج القيم من المصدر و
ينشئ صفًا. هذا الصف عبارة عن تجزئة أخرى، والتي ستشير إليها الخطوات اللاحقة باسم $set.
يتم تحديد قيم مستخلصات innotop بواسطة أعمدة الجدول. كل عمود لديه
روتين فرعي للاستخراج، تم تجميعه من تعبير (راجع "التعبيرات"). النتيجة
الصف عبارة عن تجزئة تتم تسمية مفاتيحها بنفس اسم العمود.

· يقوم innotop بتصفية الصفوف، وإزالة تلك التي لا يلزم عرضها. يرى
"المرشحات".

· innotop فرز الصفوف. انظر "الفرز".

· يقوم innotop بتجميع الصفوف معًا، إذا تم تحديد ذلك. انظر "التجميع".

· innotop تلوين الصفوف. انظر "الألوان".

· يقوم innotop بتحويل قيم الأعمدة في كل صف. انظر "التحويلات".

· يقوم innotop بتدوير الصفوف بشكل اختياري (انظر "التمحور")، ثم يقوم بتصفيتها وفرزها.

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

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

يتم وصف كل جدول مدمج أدناه:

Adaptive_hash_index
يعرض بيانات حول مؤشر التجزئة التكيفي الخاص بـ InnoDB. مصدر البيانات: "STATUS_VARIABLES".

buffer_pool
يعرض بيانات حول تجمع المخزن المؤقت لـ InnoDB. مصدر البيانات: "STATUS_VARIABLES".

cmd_summary
يعرض متغيرات الحالة المرجحة. مصدر البيانات: "STATUS_VARIABLES".

deadlock_locks
يُظهر الأقفال التي تم تعليقها وانتظارها حتى آخر حالة توقف تام تم اكتشافها. بيانات
المصدر: "DEADLOCK_LOCKS".

deadlock_transactions
يعرض المعاملات المتضمنة في آخر حالة توقف تام تم اكتشافها. مصدر البيانات:
"DEADLOCK_TRANSACTIONS".

شرح
يظهر إخراج EXPLAIN. مصدر البيانات: "شرح".

file_io_misc
يعرض بيانات حول ملف InnoDB وعمليات الإدخال/الإخراج. مصدر البيانات:
"الحالة_المتغيرة".

fk_error
يعرض بيانات متنوعة حول آخر خطأ في المفتاح الخارجي لـ InnoDB. مصدر البيانات:
"الحالة_المتغيرة".

innodb_locks
يعرض أقفال InnoDB. مصدر البيانات: "INNODB_LOCKS".

innodb_transactions
يعرض بيانات حول معاملات InnoDB الحالية. مصدر البيانات:
"INNODB_TRANSACTIONS".

Insert_buffers
يعرض بيانات حول المخزن المؤقت للإدراج في InnoDB. مصدر البيانات: "STATUS_VARIABLES".

io_threads
يعرض بيانات حول سلاسل الإدخال/الإخراج الخاصة بـ InnoDB. مصدر البيانات: "IO_THREADS".

log_statistics
يعرض بيانات حول نظام التسجيل الخاص بـ InnoDB. مصدر البيانات: "STATUS_VARIABLES".

master_status
يعرض حالة النسخ المتماثل الرئيسية. مصدر البيانات: "STATUS_VARIABLES".

open_tables
يعرض الجداول المفتوحة. مصدر البيانات: "OPEN_TABLES".

page_statistics
يعرض إحصائيات صفحة InnoDB. مصدر البيانات: "STATUS_VARIABLES".

hanging_io
يعرض InnoDB عمليات الإدخال/الإخراج المعلقة. مصدر البيانات: "STATUS_VARIABLES".

قائمة العمليات
يعرض عمليات MySQL الحالية (المواضيع/الاتصالات). مصدر البيانات: "قائمة العمليات".

q_header
يعرض قيم الحالة المختلفة. مصدر البيانات: "STATUS_VARIABLES".

Row_operation_misc
يعرض بيانات حول عمليات صف InnoDB. مصدر البيانات: "STATUS_VARIABLES".

Row_operations
يعرض بيانات حول عمليات صف InnoDB. مصدر البيانات: "STATUS_VARIABLES".

الإشارات
يعرض بيانات حول إشارات InnoDB وكائنات المزامنة. مصدر البيانات: "STATUS_VARIABLES".

Slave_io_status
يعرض بيانات حول مؤشر ترابط الإدخال/الإخراج التابع. مصدر البيانات: "STATUS_VARIABLES".

Slave_sql_status
يعرض بيانات حول مؤشر ترابط SQL التابع. مصدر البيانات: "STATUS_VARIABLES".

t_header
يعرض قيم حالة InnoDB المختلفة. مصدر البيانات: "STATUS_VARIABLES".

var_status
يعرض البيانات القابلة للتكوين من قبل المستخدم. مصدر البيانات: "STATUS_VARIABLES".

wait_array
يعرض بيانات حول مصفوفة انتظار نظام التشغيل InnoDB. مصدر البيانات: "OS_WAIT_ARRAY".

الأعمدة
الأعمدة تنتمي إلى الجداول. يمكنك اختيار أعمدة الجدول بالضغط على المفتاح "^"، والذي
يبدأ تشغيل "TABLE EDITOR" ويتيح لك اختيار الأعمدة وتحريرها. الضغط على "e" من الداخل
يتيح لك محرر الجدول تحرير خصائص العمود:

· تقرير التنمية البشرية: رأس العمود. يظهر هذا في الصف الأول من الجدول.

· فقط: مبرر. "-" تعني "مبرر لليسار" و "" تعني "مبرر لليمين"، تمامًا كما هو الحال
مع رموز التنسيق printf (ليس من قبيل الصدفة).

· ديسمبر: ما إذا كان سيتم محاذاة العمود بشكل أكبر على العلامة العشرية.

· الرقم: ما إذا كان العمود رقميًا. يؤثر هذا على كيفية فرز القيم (معجميًا أو
عدديا).

· التسمية: ملاحظة صغيرة حول العمود تظهر في مربعات الحوار التي تساعد المستخدم
اختر الأعمدة.

· src: تعبير يستخدمه innotop لاستخراج بيانات العمود من مصدره (انظر
"مصادر البيانات"). راجع "التعبيرات" لمعرفة المزيد عن التعبيرات.

· الحد الأدنى: يحدد الحد الأدنى لعرض العرض. وهذا يساعد على استقرار الشاشة
يجعل من السهل القراءة إذا كانت البيانات تتغير بشكل متكرر.

· الحد الأقصى: شبيه بالمنو.

· العابرة: قائمة تحويلات الأعمدة. انظر "التحويلات".

· agg: دالة تجميعية. انظر "التجميع". الافتراضي هو "الأول".

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

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

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

تعريف المستخدم فلتر

إذا كتبت اسمًا غير موجود، فسيطالبك innotop بإنشاء عامل التصفية.
من السهل إنشاء المرشحات إذا كنت تعرف لغة Perl، وليس من الصعب إنشاءها إذا كنت لا تعرفها. ماذا تفعل
يقوم بإنشاء روتين فرعي يُرجع صحيحًا إذا كان يجب عرض الصف. الصف هو أ
تم تمرير مرجع التجزئة إلى الروتين الفرعي الخاص بك كـ $set.

على سبيل المثال، تخيل أنك تريد تصفية جدول قائمة العمليات بحيث لا ترى سوى الاستعلامات التي
تم تشغيل أكثر من خمس دقائق. اكتب اسمًا جديدًا لمرشحك، ومتى
عند مطالبتك بنص الروتين الفرعي، اضغط على TAB لبدء الإكمال التلقائي لجهازك الطرفي.
سترى أسماء الأعمدة في جدول "قائمة العمليات" (يحاول innotop عمومًا القيام بذلك
مساعدتك في قوائم الإكمال التلقائي). تريد التصفية في عمود "الوقت". اكتب ال
اكتب "$set->{time} > 300" ليعود صحيحًا عندما يكون عمر الاستعلام أكثر من خمس دقائق.
هذا كل ما عليك القيام به.

بمعنى آخر، الكود الذي تكتبه محاط بسياق ضمني، والذي يبدو
مثله:

مرشح فرعي {
بلدي ($set) = @_;
# الرمز الخاص بك هنا
}

إذا لم يعمل الفلتر الخاص بك، أو إذا كان هناك شيء آخر يتصرف بشكل مختلف فجأة، فقد تفعل ذلك
لقد ارتكبت خطأً في الفلتر الخاص بك، ويقوم innotop باكتشاف الخطأ بصمت. يحاول
تمكين "التصحيح" لجعل innotop يلقي خطأ بدلاً من ذلك.

مرشحات سريعة

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

يمكن أن يكون نص المرشح في الواقع أي تعبير عادي لـ Perl، ولكنه بالطبع حرفي
سلسلة مثل "المنتج" تعمل بشكل جيد كتعبير عادي.

خلف الكواليس، يقوم innotop بتجميع المرشح السريع في مرشح ذو علامات خاصة
خلاف ذلك مثل أي مرشح آخر. لا يتم حفظه في ملف التكوين.

لمسح عوامل التصفية السريعة، اضغط على المفتاح '\' وسيقوم innotop بمسحها كلها مرة واحدة.

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

لبدء مربع حوار الفرز، ابدأ تشغيل "TABLE EDITOR" باستخدام المفتاح "^"، واختر جدولًا إذا
ضروري، ثم اضغط على مفتاح 's'. سترى قائمة بالأعمدة التي يمكنك استخدامها في الفرز
التعبير وتعبير الفرز الحالي، إن وجد. أدخل قائمة الأعمدة التي يمكنك من خلالها
تريد الفرز واضغط على Enter. إذا كنت تريد إجراء فرز عكسي، فابدأ اسم العمود بعلامة
علامة ناقص. على سبيل المثال، إذا كنت تريد الفرز حسب العمود "أ" تصاعديًا، ثم العمود "ب".
تنازليًا، اكتب "a -b". يمكنك أيضًا إضافة علامة + بشكل صريح أمام الأعمدة التي تريدها
فرز تصاعدي، ولكن ليس مطلوبا.

تحتوي بعض الأوضاع على مفاتيح معينة لفتح مربع الحوار هذا مباشرةً، ولعكس عملية الفرز بسرعة
اتجاه. يضعط '؟' كالعادة لمعرفة المفاتيح التي تم تعيينها في أي وضع.

التجميع
يمكن لـ innotop تجميع الصفوف أو تجميعها معًا (تُستخدم المصطلحات بالتبادل). هذا
يشبه تمامًا جملة SQL GROUP BY. يمكنك تحديد التجميع على أعمدة معينة،
أو إذا لم تحدد أيًا منها، فسيتم التعامل مع مجموعة الصفوف بأكملها كمجموعة واحدة. هذا هو
تمامًا مثل SQL حتى الآن، ولكن على عكس SQL، يمكنك أيضًا تحديد أعمدة غير مجمعة. com.innotop
في الواقع يجمع كل عمود. إذا لم تحدد بشكل صريح وظيفة التجميع،
الافتراضي هو "الأول". يعد هذا في الأساس وسيلة راحة لذا لا يتعين عليك تحديد
دالة تجميعية لكل عمود تريده في النتيجة.

يمكنك تبديل التجميع بسرعة في الجدول باستخدام المفتاح '='، الذي يقوم بتبديل تجميعه
ملكية. لا تستمر هذه الخاصية في ملف التكوين.

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

يحتوي الجدولان على قوائم group_by الافتراضية وعمود عدد مدمج في: "قائمة العمليات" و
"innodb_transactions". يتم التجميع حسب الاتصال والحالة، حتى تتمكن من رؤيته بسرعة
عدد الاستعلامات أو المعاملات الموجودة في حالة معينة على كل خادم تراقبه.
يتم تجميع أعمدة الوقت كمجموع؛ يتم ترك الأعمدة الأخرى في الوضع الافتراضي "الأول"
تجميع.

بشكل افتراضي، يستخدم الجدول الموضح في الوضع "S: Variables & Status" التجميع أيضًا حتى تتمكن من ذلك
مراقبة المتغيرات والحالة عبر العديد من الخوادم. وظيفة التجميع الافتراضية في
هذا الوضع هو "متوسط".

يتم تعريف وظائف التجميع الصالحة في تجزئة %agg_funcs. يشملوا

أول
إرجاع العنصر الأول في المجموعة.

عد
إرجاع عدد العناصر في المجموعة، بما في ذلك العناصر غير المحددة، يشبه إلى حد كبير
عدد SQL (*).

avg يُرجع متوسط ​​العناصر المحددة في المجموعة.

sum يُرجع مجموع العناصر في المجموعة.

فيما يلي مثال على التجميع في العمل. لنفترض أن لديك خادمًا مزدحمًا جدًا بالمئات
من الاتصالات المفتوحة، وتريد معرفة عدد الاتصالات الموجودة في أي حالة. استخدام
قواعد التجميع المضمنة، يمكنك الضغط على "Q" للدخول إلى وضع "Q: قائمة الاستعلامات". اضغط على '='
لتبديل التجميع (إذا لزم الأمر، حدد جدول "قائمة العمليات" عندما يُطلب منك ذلك).

قد تبدو شاشتك الآن كما يلي:

قائمة الاستعلام (؟ للمساعدة) المضيف المحلي، 32:33، 0.11 QPS، 1th، 5.0.38-log

الاستعلام عن وقت مضيف مستخدم CXN Cmd Cnt
استعلام المضيف المحلي 49 12933 webusr المضيف المحلي 19:38 اختر * من
إرسال المضيف المحلي Da 23 2383 webusr localhost 12:43 SELECT col1,
المضيف المحلي Sleep 120 140 webusr المضيف المحلي 5:18:12
إحصائيات المضيف المحلي 12 19213 webusr localhost 01:19 اختر * من

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

التمحور
يمكن لـ innotop أن تدور حول جدول للحصول على عرض أكثر إحكاما، على غرار الجدول المحوري في
جدول البيانات (المعروف أيضًا باسم الجدول الترافقي). يؤدي تحريك الجدول إلى تحويل الأعمدة إلى صفوف. يفترض
تبدأ بهذا الجدول:

فو بار
=== ===
1 3
2 4

بعد التدوير يصبح الجدول بهذا الشكل:

اسم مجموعة0 مجموعة1
==== ==== ====
فو 1 2
شريط 3،4 XNUMX،XNUMX

للحصول على نتائج معقولة، قد تحتاج إلى التجميع بالإضافة إلى الدوران. innotop حاليا
يفعل ذلك لوضع "S: Variables & Status".

COLORS
افتراضيًا، يقوم innotop بتمييز الصفوف بالألوان حتى تتمكن من رؤية الصفوف في لمحة سريعة
اكثر اهمية. يمكنك تخصيص قواعد التلوين وإضافة القواعد الخاصة بك إلى أي جدول.
افتح محرر الجدول باستخدام المفتاح "^"، واختر جدولًا إذا لزم الأمر، ثم اضغط على "o" لفتحه
مربع حوار محرر الألوان.

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

حالة معادل أسود مقفل on_red
كمد مكافئ النوم الأبيض
مستخدم نظام مكافئ المستخدم الأبيض
كمد مكافئ الاتصال الأبيض
كمد مكافئ Binlog تفريغ الأبيض
الوقت> 600 أحمر
الوقت> 120 أصفر
الوقت> 60 أخضر
الوقت> 30 سماوي

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

(لسبب ما، رمز اللون ANSI "الأبيض" هو في الواقع رمادي فاتح
قد يختلف العرض؛ تجربة للعثور على الألوان التي تريدها).

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

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

التعبيرات
التعبيرات هي جوهر كيفية عمل innotop، وهي ما يمكّنك من التوسع
innotop كما يحلو لك. تذكر دورة حياة الجدول الموضحة في "الجداول". التعبيرات هي
يُستخدم في الخطوة الأولى، حيث يستخرج القيم من مصدر البيانات لتكوين صفوف.

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

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

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

حساب فرعي_column_value {
my ( $set, $cur, $pre ) = @_;
$val = # السلسلة الموسعة تظهر هنا
إرجاع قيمة $؛
}

فيما يلي مثال ملموس، مأخوذ من جدول الرأس "q_header" في وضع "Q: Query List".
يحسب هذا التعبير قيم العمود qps، أو الاستعلامات في الثانية، من
القيم التي يتم إرجاعها بواسطة SHOW STATUS:

الأسئلة/Uptime_hires

يقرر Innotop أن كلتا الكلمتين عبارة عن كلمات مجردة، ويحول هذا التعبير إلى
رمز بيرل التالي:

$set->{الأسئلة}/$set->{Uptime_hires}

عندما يكون محاطًا ببقية كود الروتين الفرعي، يكون هذا قابلاً للتنفيذ من خلال Perl that
يحسب قيمة استعلامات عالية الدقة في الثانية.

تتم تسمية وسيطات الروتين الفرعي باسم $set، و$cur، و$pre. في معظم الحالات، $set و
$cur ستكون نفس القيم. ومع ذلك، إذا تم تعيين "status_inc"، فلن يكون $cur هو نفسه
مثل $set، لأن $set سيحتوي بالفعل على قيم تمثل الفرق المتزايد
بين $cur و $pre.

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

التحولات
تغير التحويلات كيفية عرض القيمة. على سبيل المثال، يمكنهم أخذ عدد من
ثواني وعرضها بتنسيق H:M:S. يتم تعريف التحولات التالية:

com.comcomify
إضافة فواصل إلى أرقام كبيرة كل ثلاث منازل عشرية.

dulint_to_int
يقبل عددين صحيحين غير موقعين ويحولهما إلى عدد طويل واحد. هذا هو
مفيد لعمليات معينة مع InnoDB، والذي يستخدم عددين صحيحين كمعاملة
معرفات، على سبيل المثال.

no_ctrl_char
إزالة أحرف التحكم المقتبسة من القيمة. يتأثر هذا بـ "charset"
متغير التكوين.

يعمل هذا التحويل فقط ضمن السلاسل المقتبسة، على سبيل المثال، قيم SET
جملة في بيان UPDATE. لن يغير بيان UPDATE، لكنه سيفعل ذلك
قم بطي السلسلة المقتبسة إلى [BINARY] أو [TEXT]، اعتمادًا على مجموعة الأحرف.

فى المائة
لتحويل رقم إلى نسبة مئوية عن طريق ضربه في اثنين وتنسيقه
أرقام "num_digits" بعد العلامة العشرية، وإضافة علامة النسبة المئوية اختياريًا (انظر
"show_percent").

secs_to_time
تنسيق عدد الثواني كوقت بالأيام + الساعات: الدقائق: تنسيق الثواني.

set_precision
تنسيق الأرقام بعدد "num_digits" من الأرقام بعد العلامة العشرية.

اختصر
تنسيق رقم كوحدة مكونة من 1024 (k/M/G/T) وباستخدام عدد "num_digits" من الأرقام
بعد العلامة العشرية.

الجدول EDITOR
يتيح لك محرر الجدول innotop تخصيص الجداول بضغطات المفاتيح. تبدأ الجدول
محرر باستخدام المفتاح "^". إذا كان هناك أكثر من جدول على الشاشة، فسوف يطالبك بذلك
لاختيار واحد منهم. بمجرد القيام بذلك، سوف يعرض لك innotop شيئًا مثل هذا:

تحرير تعريف الجدول لـ Buffer Pool. يضعط ؟ للحصول على المساعدة، ف للإقلاع عن التدخين.

اسم تسمية HDR src
اتصال cxn CXN منه cxn
buf_pool_size حجم حجم تجمع المخزن المؤقت IB_bp_buf_poo
buf_free Bufs المخازن المؤقتة المجانية في b IB_bp_buf_fre
pages_total إجمالي الصفحات IB_bp_pages_t
pages_modified الصفحات القذرة تم تعديل الصفحات (IB_bp_pages_m
buf_pool_hit_rate معدل الإصابة معدل الإصابة في تجمع المخزن المؤقت IB_bp_buf_poo
Total_mem_alloc الذاكرة إجمالي الذاكرة تخصيص IB_bp_total_m
add_pool_alloc Add'l Pool تجمع إضافي تخصيص IB_bp_add_poo

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

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

التعيينات الرئيسية هي بأسلوب Vim، كما هو الحال في العديد من الأماكن الأخرى. يؤدي الضغط على "j" و"k" إلى نقل
تسليط الضوء على أعلى أو أسفل. يمكنك بعد ذلك (د) حذف أو (هـ) تحرير العمود المميز. أنت تستطيع
أيضًا (أ) أضف عمودًا إلى الجدول. يؤدي هذا في الواقع إلى تنشيط أحد الأعمدة بالفعل
محددة للجدول. يطالبك بالاختيار من بين الأعمدة المتاحة ولكن لا
المعروضة حاليا. وأخيرًا، يمكنك إعادة ترتيب الأعمدة باستخدام المفتاحين "+" و"-".

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

إذا كنت تريد حقًا تخصيص العمود الخاص بك وإنشائه، بدلاً من مجرد التنشيط
مدمج غير معروض حاليًا، اضغط على المفتاح (n)new، وسيقوم innotop بذلك
يطالبك بالمعلومات التي يحتاجها:

· اسم العمود: يجب أن يكون كلمة بدون أي أحرف مضحكة، على سبيل المثال فقط
الحروف والأرقام والشرطات السفلية.

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

· مصدر بيانات العمود: هذا هو التعبير الذي يحدد البيانات الواردة من العمود
سيتم وضع المصدر (راجع "الجداول") innotop في العمود. يمكن أن يكون هذا مجرد اسم
عنصر في المصدر، أو يمكن أن يكون تعبيرًا أكثر تعقيدًا، كما هو موضح في
"التعبيرات".

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

إليك مثال: لنفترض أنك تريد تتبع عدد المرات التي أعاد فيها عبيدك المحاولة
المعاملات. وفقًا لدليل MySQL، فإن حالة Slave_retried_transactions
يمنحك المتغير هذه البيانات: "إجمالي عدد المرات التي تم فيها تشغيل الملف منذ بدء التشغيل
قام مؤشر ترابط SQL التابع للنسخ المتماثل بإعادة محاولة المعاملات. تمت إضافة هذا المتغير في الإصدار
5.0.4." هذا مناسب للإضافة إلى جدول "slave_sql_status".

لإضافة عمود، قم بالتبديل إلى وضع مراقبة النسخ المتماثل باستخدام المفتاح "M"، ثم اضغط
المفتاح "^" لبدء محرر الجدول. عندما يُطلب منك ذلك، اخترslave_sql_status كـ
الجدول، ثم اضغط على 'n' لإنشاء العمود. اكتب "إعادة المحاولة" كاسم العمود، "إعادة المحاولة"
كرأس العمود، و"Slave_reried_transactions" كمصدر. الآن العمود
تم إنشاؤه، وسترى شاشة محرر الجدول مرة أخرى. اضغط على "q" للخروج من محرر الجدول،
وسترى العمود الخاص بك في نهاية الجدول.

متغير الاطقم


يتم استخدام مجموعات المتغيرات في وضع "S: Variables & Status" لتحديد ماهيتها بسهولة أكبر
المتغيرات التي تريد مراقبتها. خلف الكواليس يتم تجميعهم في قائمة
التعبيرات، ثم في قائمة الأعمدة بحيث يمكن معاملتها تمامًا مثل الأعمدة في أي منها
جدول آخر من حيث استخراج البيانات والتحويلات. ومع ذلك، أنت محمي
من التفاصيل المملة من خلال بناء الجملة الذي يجب أن يبدو طبيعيًا جدًا بالنسبة لك: SQL SELECT
قائمة.

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

الأسئلة ووقت التشغيل والأسئلة/وقت التشغيل مثل QPS

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

يتيح لك innotop تسمية مجموعات المتغيرات الخاصة بك وحفظها وكتابتها في التكوين
ملف. يمكنك اختيار مجموعة المتغيرات التي تريد رؤيتها باستخدام المفتاح "c"، أو تنشيط
المجموعات التالية والسابقة باستخدام المفتاحين '>' و'<'. هناك العديد من مجموعات المتغيرات المضمنة
أيضًا، مما سيمنحك بداية جيدة لإنشاء موقعك الخاص. اضغط على "e" لتحرير
مجموعة المتغيرات الحالية، أو فقط لمعرفة كيفية تعريفها. لإنشاء واحدة جديدة، فقط اضغط
"ج" واكتب اسمه.

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

الأسئلة، وقت التشغيل، set_precision(الأسئلة/وقت التشغيل) مثل QPS

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

الأسئلة، وقت التشغيل، set_precision(الأسئلة/Uptime_hires) مثل QPS

هذا المثال بسيط، لكنه يوضح مدى سهولة اختيار المتغيرات التي تريدها
مراقب.

PLUGINS


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

ملحق innotop عبارة عن وحدة Perl موضوعة في دليل "plugin_dir" الخاص بـ innotop. على يونيكس
الأنظمة، يمكنك وضع رابط رمزي للوحدة بدلاً من وضع الملف الفعلي
هناك. يكتشف innotop الملف تلقائيًا. إذا كان هناك إدخال مماثل في
في قسم ملف التكوين "المكونات الإضافية"، يقوم innotop بتحميل المكون الإضافي وتنشيطه.

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

فئة الإشتراك مصدر اتفاقية
يقوم innotop بفحص مصدر وحدة البرنامج المساعد لتحديد اسم حزمة Perl. يبدو
للحصول على سطر من النموذج "package Foo;" وإذا وجدت، يعتبر اسم حزمة البرنامج المساعد ل
يكون فو. بالطبع يمكن أن يكون اسم الحزمة اسمًا صالحًا لحزمة Perl، مع double
الفواصل المنقوطة وما إلى ذلك.

كما يبحث أيضًا عن وصف في الكود المصدري، لجعل محرر البرنامج الإضافي أكثر إنسانية-
ودي. الوصف عبارة عن سطر تعليق من النموذج "# description: Foo"، حيث "Foo"
هو النص الذي سيعتبره innotop وصفًا للمكون الإضافي.

المساعد السطح البيني
واجهة البرنامج المساعد innotop بسيطة للغاية: يتوقع innotop أن يكون البرنامج الإضافي كائنًا
الوحدة النمطية الموجهة يمكنها استدعاء طرق معينة عليها. الأساليب هي

جديد (٪ المتغيرات)
هذا هو منشئ البرنامج المساعد. يتم تمرير تجزئة لمتغيرات innotop، والتي
يمكنه التلاعب (انظر "متغيرات البرنامج المساعد"). ويجب أن يعود مرجعا إلى حديثا
كائن البرنامج المساعد الذي تم إنشاؤه.

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

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

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

معالجات الأحداث
يجب أن ينفذ المكون الإضافي طريقة تحمل نفس اسم كل حدث خاص به
مسجل. بمعنى آخر، إذا قام البرنامج الإضافي بإرجاع qw(foo bar) من
Register_for_events()، يجب أن يكون فو () و حاجِز() طُرق. هذه الأساليب هي
عمليات الاسترجاعات للأحداث. راجع "أحداث المكونات الإضافية" للحصول على مزيد من التفاصيل حول كل حدث.

المساعد المتغيرات
يتم تمرير منشئ البرنامج المساعد تجزئة لمتغيرات innotop، والتي يمكن معالجتها.
ربما تكون فكرة جيدة أن يقوم كائن البرنامج الإضافي بحفظ نسخة منه لاستخدامها لاحقًا. ال
يتم تعريف المتغيرات في المتغير innotop %pluggable_vars، وهي كما يلي:

action_for
تجزئة التعيينات الرئيسية. هذه هي مفاتيح التشغيل السريع العالمية الخاصة بـ innotop.

agg_funcs
تجزئة الوظائف التي يمكن استخدامها للتجميع. انظر "التجميع".

التكوين
تجزئة التكوين العالمي.

علاقات
حشرف مواصفات الاتصال. هذه مجرد مواصفات لكيفية القيام بذلك
الاتصال بالخادم.

com.dbhs
تجزئة اتصالات قاعدة بيانات innotop. هذه هي كائنات اتصال DBI الفعلية.

مرشحات
تجزئة المرشحات المطبقة على صفوف الجدول. راجع "المرشحات" للمزيد.

وسائط
حشر الأوضاع. انظر "الأوضاع" للمزيد.

server_groups
تجزئة مجموعات الخادم. راجع "مجموعات الخوادم".

tbl_meta
تجزئة للبيانات الوصفية لجدول innotop، مع إدخال واحد لكل جدول (راجع "الجداول" للاطلاع على
معلومات اكثر).

trans_funcs
تجزئة وظائف التحويل. انظر "التحويلات".

var_sets
تجزئة من مجموعات متغيرة. انظر "المجموعات المتغيرة".

المساعد الفعاليات
يتم تعريف كل حدث في مكان ما في كود مصدر innotop. عندما يقوم innotop بتشغيل هذا الرمز،
يقوم بتنفيذ وظيفة رد الاتصال لكل مكون إضافي أعرب عن اهتمامه بـ
حدث. يقوم innotop بتمرير بعض البيانات لكل حدث. الأحداث محددة في
%event_listener_for المتغير، وهي كما يلي:

extract_values(مجموعة $، $cur، $pre، $tbl)
يحدث هذا الحدث داخل الدالة التي تستخرج القيم من مصدر البيانات. ال
الوسيطات هي مجموعة القيم، والقيم الحالية، والقيم السابقة، و
اسم الطاولة.

set_to_tbl
يتم تعريف الأحداث في العديد من الأماكن في هذا الروتين الفرعي، وهو المسؤول عن الدوران
مجموعة من التجزئة في مجموعة من الخطوط التي يمكن طباعتها على الشاشة.
تمر جميع الأحداث بنفس البيانات: مجموعة من الصفوف واسم الجدول
مخلوق. الأحداث هي set_to_tbl_pre_filter،
set_to_tbl_pre_sort،set_to_tbl_pre_group، set_to_tbl_pre_colorize،
set_to_tbl_pre_transform، set_to_tbl_pre_pivot، set_to_tbl_pre_create،
set_to_tbl_post_create.

رسم_الشاشة(خطوط $)
يحدث هذا الحدث داخل الروتين الفرعي الذي يطبع الخطوط على الشاشة. خطوط $
عبارة عن مجموعة من السلاسل.

الاشارات المساعد مثال
ربما تكون أسهل طريقة لشرح وظيفة البرنامج المساعد هي بمثال بسيط.
تضيف الوحدة التالية عمودًا إلى بداية كل جدول وتحدد قيمته
1.

استخدام صارم
استخدم التحذيرات FATAL => 'all';

الحزمة Innotop::Plugin::Example;
# الوصف: يضيف عمود "مثال" إلى كل جدول

فرعية جديدة {
بلدي ( $class, %vars ) = @_;
# قم بتخزين مرجع لمتغيرات innotop في $self
بلدي $self = بارك { %vars }, $class;

# تصميم عمود المثال
$col = {
تقرير التنمية البشرية => "مثال"،
فقط => '',
ديسمبر => 0،
رقم => 1،
التسمية => "مثال"،
src => 'example', # احصل على البيانات من هذا العمود في مصدر البيانات
tbl => '',
عبر => []،
};

# أضف العمود إلى كل جدول.
$tbl_meta = $vars{tbl_meta};
ابحث عن $tbl الخاص بي (القيم %$tbl_meta ) {
# أضف العمود إلى قائمة الأعمدة المحددة
$tbl->{cols}->{example} = $col;
# أضف العمود إلى قائمة الأعمدة المرئية
unshift @{$tbl->{visible}}, 'example';
}

# تأكد من إرجاع مرجع للكائن.
العودة $ النفس؛
}

# أرغب في أن يتم الاتصال بي عند عرض مجموعة بيانات في جدول، من فضلك.
التسجيل الفرعي_for_events {
بلدي ($self) = @_;
return qw(set_to_tbl_pre_filter);
}

# سيتم استدعاء هذه الطريقة عند إطلاق الحدث.
المجموعة الفرعية_to_tbl_pre_filter {
بلدي ( $self, $rows, $tbl ) = @_;
# قم بتعيين مصدر بيانات عمود المثال على القيمة 1.
foreach صف $ الخاص بي ( @$rows ) {
$row->{example} = 1;
}
}

1;

المساعد محرر
يتيح لك محرر المكونات الإضافية عرض المكونات الإضافية التي تم اكتشافها وتنشيطها أو إلغاء تنشيطها
هم. ابدأ تشغيل المحرر بالضغط على $ لبدء محرر التكوين من أي وضع.
اضغط على المفتاح "p" لبدء محرر البرنامج المساعد. سترى قائمة بالمكونات الإضافية في innotop
اكتشف. يمكنك استخدام المفتاحين "j" و"k" لنقل الضوء إلى اللون المطلوب،
ثم اضغط على المفتاح * لتبديله إلى نشط أو غير نشط. اخرج من المحرر وأعد تشغيل innotop
لتصبح التغييرات نافذة المفعول.

SQL البيانات


يستخدم innotop مجموعة محدودة من عبارات SQL لاسترداد البيانات من MySQL لعرضها. ال
يتم تخصيص البيانات وفقًا لإصدار الخادم الذي يتم تنفيذها عليه؛
على سبيل المثال، في MySQL 5 والإصدارات الأحدث، ينفذ INNODB_STATUS "SHOW ENGINE INNODB STATUS"،
بينما في الإصدارات السابقة يقوم بتنفيذ "SHOW INNODB STATUS". التصريحات كما
يتبع:

تم تنفيذ بيان SQL
=============================================================================================
عرض INNODB_STATUS [المحرك] حالة INNODB
KILL_CONNECTION اقتل
KILL_QUERY إنهاء الاستعلام
OPEN_TABLES تظهر الجداول المفتوحة
قائمة العمليات تظهر قائمة العمليات الكاملة
SHOW_MASTER_LOGS عرض السجلات الرئيسية
SHOW_MASTER_STATUS عرض الحالة الرئيسية
SHOW_SLAVE_STATUS عرض حالة الرقيق
SHOW_STATUS عرض الحالة [العالمية].
SHOW_VARIABLES إظهار المتغيرات [العالمية].

بيانات مصادر


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

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

فيما يلي أنواع مصادر البيانات التي يتم استخراج البيانات منها:

STATUS_VARIABLES
هذه هي الفئة الأوسع التي تندرج فيها معظم أنواع البيانات. يبدأ ب
الجمع بين إظهار الحالة وإظهار المتغيرات، ولكن قد يتم تضمين مصادر أخرى
حسب الحاجة، على سبيل المثال، إظهار الحالة الرئيسية وإظهار حالة العبد، بالإضافة إلى العديد من
القيم غير المتكررة من SHOW INNODB STATUS.

DEADLOCK_LOCKS
يتم استخراج هذه البيانات من قائمة المعاملات في LATEST DETECTED DEADLOCK
قسم عرض حالة INNODB. إنه متداخل على مستويين عميقين: المعاملات إذن
الأقفال.

DEADLOCK_TRANSACTIONS
هذه البيانات مأخوذة من قائمة المعاملات في قسم LATEST DETECTED DEADLOCK في SHOW
حالة INNODB. وهي متداخلة على مستوى واحد عميق.

شرح
هذه البيانات مأخوذة من مجموعة النتائج التي تم إرجاعها بواسطة EXPLAIN.

INNODB_TRANSACTIONS
هذه البيانات مأخوذة من قسم المعاملات في عرض حالة INNODB.

IO_THREADS
هذه البيانات مأخوذة من قائمة المواضيع الموجودة في قسم FILE I/O في SHOW INNODB
الحالة.

INNODB_LOCKS
هذه البيانات مأخوذة من قسم المعاملات في إظهار حالة INNODB وهي متداخلة
مستويات عميقة.

OPEN_TABLES
هذه البيانات مأخوذة من إظهار الجداول المفتوحة.

قائمة العمليات
هذه البيانات مأخوذة من عرض قائمة العمليات الكاملة.

OS_WAIT_ARRAY
هذه البيانات مأخوذة من قسم SEMAPHORES في SHOW INNODB STATUS وهي متداخلة على مستوى واحد
عميق. يأتي من السطور التي تبدو هكذا:

- الموضوع 1568861104 انتظر في السطر btr0cur.c 424 ....

MYSQL الامتيازات


· يجب عليك الاتصال بـ MySQL كمستخدم يتمتع بالامتياز الفائق للعديد من
الوظائف.

· إذا لم يكن لديك امتياز SUPER، فلا يزال بإمكانك تشغيل بعض الوظائف، ولكن لن تتمكن من ذلك
نرى بالضرورة كل نفس البيانات.

· أنت بحاجة إلى امتياز العملية لرؤية قائمة الاستعلامات الجاري تشغيلها حاليًا في وضع Q.

· أنت بحاجة إلى امتيازات خاصة لبدء وإيقاف الخوادم التابعة.

· أنت بحاجة إلى الامتيازات المناسبة لإنشاء وإفلات جداول الجمود إذا لزم الأمر (انظر
"اتصالات الخادم").

نظام المتطلبات


أنت بحاجة إلى لغة Perl لتشغيل innotop، بالطبع. تحتاج أيضًا إلى بعض وحدات Perl: DBI،
DBD::mysql، وTerm::ReadKey، وTime::HiRes. يجب أن يتم تضمينها مع معظم تطبيقات Perl
التوزيعات، ولكن في حالة عدم وجودها، أوصي باستخدام الإصدارات الموزعة مع جهازك
نظام التشغيل أو توزيعة Perl، وليس من CPAN. المصطلح::ReadKey على وجه الخصوص لديه
من المعروف أنه يسبب مشاكل إذا تم تثبيته من CPAN.

إذا كان لديك Term::ANSIColor، فسوف يستخدمه innotop لتنسيق الرؤوس بشكل أكثر قابلية للقراءة
بشكل مضغوط. (ضمن Microsoft Windows، تحتاج أيضًا إلى Win32::Console::ANSI للمحطة الطرفية
رموز التنسيق التي سيتم تكريمها). إذا قمت بتثبيت Term::ReadLine، فمن الأفضل أن يكون ذلك
Term::ReadLine::Gnu، ستحصل على دعم رائع للإكمال التلقائي.

أقوم بتشغيل innotop على Gentoo GNU/Linux وDebian وUbuntu، وقد تلقيت تعليقات من الناس
تم تشغيله بنجاح على Red Hat وCentOS وSolaris وMac OSX. لا أرى أي سبب
لماذا لن يعمل على أنظمة تشغيل UNIX-ish الأخرى، لكني لا أعرف على وجه اليقين. إنه أيضًا
يعمل على نظام التشغيل Windows ضمن ActivePerl دون مشكلة.

تم استخدام innotop في إصدارات MySQL 3.23.58، 4.0.27، 4.1.0، 4.1.22، 5.0.26، 5.1.15،
و 5.2.3. إذا لم يعمل بشكل صحيح بالنسبة لك، فهذا خطأ يجب الإبلاغ عنه.

استخدم innotop عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    فيزر
    فيزر
    Phaser هو مفتوح سريع ومجاني وممتع
    مصدر إطار عمل لعبة HTML5 الذي يوفر
    عرض WebGL و Canvas عبر
    متصفحات الويب لسطح المكتب والجوال. ألعاب
    يمكن المشاركة ...
    تحميل Phaser
  • 2
    محرك VASSAL
    محرك VASSAL
    VASSAL هو محرك لعبة للإبداع
    النسخ الإلكترونية للسبورة التقليدية
    وألعاب الورق. يوفر الدعم ل
    عرض قطعة اللعبة والتفاعل ،
    و...
    قم بتنزيل محرك VASSAL
  • 3
    OpenPDF - شوكة iText
    OpenPDF - شوكة iText
    OpenPDF هي مكتبة جافا للإنشاء
    وتحرير ملفات PDF باستخدام LGPL و
    ترخيص MPL مفتوح المصدر. OpenPDF هو ملف
    LGPL / MPL وريث مفتوح المصدر لـ iText ،
    ا...
    قم بتنزيل OpenPDF - Fork of iText
  • 4
    ساجا جيس
    ساجا جيس
    SAGA - النظام الآلي
    التحليلات الجيولوجية - هو جغرافي
    برنامج نظام المعلومات (GIS) مع
    قدرات هائلة للبيانات الجغرافية
    المعالجة وآنا ...
    تنزيل SAGA GIS
  • 5
    Toolbox for Java / JTOpen
    Toolbox for Java / JTOpen
    يعد IBM Toolbox for Java / JTOpen ملف
    مكتبة من فئات Java التي تدعم
    العميل / الخادم وبرمجة الإنترنت
    نماذج لنظام يعمل بنظام التشغيل OS / 400 ،
    i5 / OS ، س ...
    تنزيل Toolbox for Java / JTOpen
  • 6
    D3.js
    D3.js
    D3.js (أو D3 للمستندات المستندة إلى البيانات)
    هي مكتبة جافا سكريبت تسمح لك
    لإنتاج بيانات ديناميكية وتفاعلية
    تصورات في متصفحات الويب. مع D3
    أنت...
    تنزيل D3.js
  • أكثر "

أوامر لينكس

Ad