يتم الآن عرض مستندات 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 إليه |
مثال
لِنفترض أنّك تريد التقاط حِزم البيانات بين معالج الرسائل وخادم الخلفية:
- سجِّل الدخول إلى جهاز معالجة الرسائل.
- حدد عنوان 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 التي تؤدي إلى زيادة استخدام الذاكرة.
المراجع
عمليات تفريغ سلاسل المحادثات
عملية تفريغ سلسلة التعليمات هي لقطة لحالة جميع سلاسل التعليمات في عملية 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 وكيفية تفسير المعلومات.