أدوات التشخيص والسجلّات

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يناقش هذا الموضوع أدوات الشبكة وأدوات JVM وسجلات بيانات التشخيص التي يمكنك استخدامها لتحديد وحلّ المشاكل المتعلقة بالشبكة وJVM على Apigee Edge.

أداة ماسح حزم TCP/IP (tcpdump)

الأداة tcpdump هي أداة لتحليل حزم سطر الأوامر تتيح لك التقاط أو فلترة حزم TCP/IP التي يتم استلامها أو نقلها عبر الشبكة. وهي متوفرة على أنظمة التشغيل التي تعمل بـ Linux/Unix. يمكنك تثبيت هذه الأداة باستخدام yum على النحو التالي:

yum install tcpdump

تفيدك أداة tcpdump في تحديد المشاكل المتعلقة بالشبكة أو طبقة المقابس الآمنة (SSL) وإصلاحها. على سبيل المثال:

  • 502 أخطاء مدخل غير صالح (سببة بسبب استثناء EOF)
  • الأخطاء غير المتاحة في خدمة 503
  • إخفاقات تأكيد اتصال طبقة المقابس الآمنة (SSL)

لتحديد مشاكل أي من هذه المشاكل وحلّها، يجب أولاً تحديد زوج المكوّنات التي حدث الخطأ بينها. في حالة Edge، يمكن أن يكون أحد الأزواج التالية:

  • تطبيق العميل وجهاز التوجيه
  • جهاز التوجيه ومعالج الرسائل
  • معالج الرسائل وخادم الخلفية

بعد تحديد زوج المكوّنات المزعجة، يمكنك التقاط حِزم الشبكة باستخدام tcpdump على أحد هذين المكوّنين أو كليهما.

التقاط حزم البيانات المرسلة إلى/المستلمة من مضيف محدد باستخدام tcpdump

استخدِم الأمر tcpdump التالي لالتقاط جميع الحزم المُرسَلة أو المُستلَمة من مضيف محدّد (عنوان IP) وحفظ المعلومات في الملف المحدّد:

tcpdump -i any -s 0 host <IP address> -w <File name>

المكان:

المعلَمة الوصف
-i (الواجهة) تحدد الواجهة التي يجب التقاط الحزم منها. ويسمح استخدام قيمة "any" بالتقاط حِزم البيانات من جميع الواجهات.
-s يحدد (snerf/snaplen) مقدار كل حزمة سيتم التقاطها. ويتيح لك استخدام القيمة 0 (صفر) التقاط الحزمة بأكملها.
عنوان IP هو عنوان ip للمضيف الذي نريد التقاط الحزم من أجله
اسم الملف هو اسم الملف الذي يجب كتابة tcpdump إليه

مثال

لِنفترض أنّك تريد التقاط حِزم البيانات بين معالج الرسائل وخادم الخلفية:

  1. سجِّل الدخول إلى جهاز معالجة الرسائل.
  2. حدد عنوان IP لخادم الخلفية (افترض أنه 22.22.22.22) الذي نريد التقاط الحزم له.

استخدِم الأمر التالي لالتقاط حِزم الشبكة لمضيف باستخدام عنوان IP محدَّد:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

في حال تحويل خادم الخلفية إلى عناوين IP متعدّدة، استخدِم اسم المضيف لخادم الخلفية في الأمر tcpdump كما هو موضّح أدناه:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

إذا كانت هناك خوادم خلفية متعدّدة بعناوين IP مختلفة (22.22.22.22 و33.33.33.33 و44.44.44.44)، استخدِم الأمر tcpdump أدناه:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

تحليل tcpdump

يمكنك عرض أداة tcpdump أو تحليلها باستخدام الأمر tcpdump أو الأداة المستندة إلى واجهة المستخدم الرسومية Wireshark.

المراجع

نسخ الذاكرة

نَسْخ الذاكرة هو لقطة لذاكرة عملية Java. فهي تحتوي على معلومات حول كائنات Java وفئاتها في كومة الذاكرة المؤقتة في الوقت الذي يتم فيه جمع نَسْخ الذاكرة. وتكون هذه الملفات عادةً كبيرة الحجم ويتراوح حجمها بين 100 ميغابايت وبضعة غيغابايت.

يكون نَسْخ الذاكرة مفيدًا جدًا عندما تُظهر إحدى عمليات Java، مثل "معالج الرسائل"، ما يلي:

  • استخدام مرتفع للذاكرة
  • OutofMemoryError

جارٍ إنشاء نَسْخ الذاكرة لعملية Java

توفّر لغة Java أداة تُعرف باسم jmap، وهي تتيح لك إنشاء إحصاءات الذاكرة أو عمليات نسخ الذاكرة من عملية JavaScript قيد التشغيل.

استخدم أمر jmap التالي لإنشاء تفريغ الذاكرة لعملية Java:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

المكان:

المعلَمة الوصف
JAVA_HOME هل دليل تثبيت Java
filename هل اسم الملف الذي ستتم كتابة نَسْخ الذاكرة به
pid هل معرف العملية لتطبيق جافا الذي يجب التقاط تفريغ الرأس الخاص به

مثال

لنفترض أن معالج الرسائل mp-east يستخدم ذاكرة عالية أو يعرض أخطاء OutOfMemory. حدِّد معرِّف عملية معالج الرسائل باستخدام الأمر ps على نظام التشغيل Unix. لنفترض أنها 24569.

شغِّل الأداة المساعدة jmap على النحو التالي لإنشاء تفريغ الذاكرة:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

تحليل نسخ الذاكرة غير الضرورية

يمكن تحليل تفريغ الذاكرة باستخدام أداة Eclipse MAT (أداة تحليل الذاكرة) لتحديد التسربات المحتملة للذاكرة أو كائنات Java التي تؤدي إلى زيادة استخدام الذاكرة.

المراجع

كيفية جمع نسخ الذاكرة

أداة jmap

صفحة jmap man

أداة تحليل الذاكرة (MAT)


عمليات تفريغ سلاسل المحادثات

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

ويكشف تفريغ سلسلة التعليمات عن معلومات حول كل نشاط من أنشطة سلسلة المحادثات في التطبيق. يمكن أن تكون هذه المعلومات مفيدة جدًا لما يلي:

  • تشخيص المشاكل مثل الارتفاع المفاجئ في وحدة المعالجة المركزية (CPU) أو أوقات الاستجابة البطيئة أو تطبيقات Java التي لا تستجيب
  • تحسين أداء التطبيق وJVM

جارٍ إنشاء عمليات تفريغ سلاسل الرسائل

يمكن إنشاء عملية تفريغ سلسلة التعليمات لعملية Java باستخدام أداة jstack، كما هو موضّح أدناه:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

المكان:

المعلَمة الوصف
JAVA_HOME دليل تثبيت Java.
pid معرّف العملية لتطبيق Java الذي تريد التقاط سلسلة المحادثات الخاصة به.
filename هل اسم الملف الذي ستتم كتابة عملية تفريغ سلسلة المحادثات به؟

مثال

لإنشاء ملف تفريغ سلسلة محادثات لمعرّف العملية 37320 في معالج الرسائل mp-east، استخدم الأمر التالي:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

وفقًا للمثال أعلاه، سيتم حفظ عملية تفريغ سلسلة التعليمات في الملف /opt/apigee/edge-message-processor/mp-east-threadDump.txt.

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

يمكنك عرض عمليات تفريغ سلاسل المحادثات في أي محرِّر نصوص مثل vi (Linux) أو Notepad (في Windows). راجِع Thread Dump لمعرفة تفاصيل عن الأقسام المختلفة من Thread Dump وكيفية تفسير المعلومات.

المراجع