כרגע מוצג התיעוד של 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 | (interface) מציין את הממשק שממנו יש לתעד את החבילות. השימוש בערך של "any" מאפשר לתעד חבילות מכל הממשקים. |
-s | (snarf/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
ניתוח tcpdumps
אפשר להציג או לנתח tcpdumps באמצעות הפקודה tcpdump או הכלי המבוסס על GUI Wireshark.
קובצי עזר
קובצי Dump של ערימה
קובצי Dump של ערימה (heap dumps) הם תמונת מצב של הזיכרון של תהליך Java. הם מכילים את המידע לגבי האובייקטים והמחלקות של Java בערימה נכון לרגע שבו נאסף dump הערימה. בדרך כלל הגודל שלהם נע בין 100MB לכמה GB.
Dump של ערימה שימושי מאוד כאשר תהליך Java, כמו מעבד הודעות, מציג:
- שימוש בנפח גדול בזיכרון
- OutofMemoryError
יצירת Dump של ערימה עבור תהליך Java
Java מספקת כלי שירות שנקרא jmap, שמאפשר ליצור את סטטיסטיקות הזיכרון או את נתוני ה-Dump של הערימה בתהליך Java פעיל.
משתמשים בפקודת jmap הבאה כדי ליצור את תמונת המצב של הזיכרון בתהליך Java:
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
כאשר:
פרמטר | תיאור |
JAVA_HOME | האם ספריית ההתקנה של Java היא |
שם קובץ | האם יהיה שם הקובץ שבו תיכתב תמונת המצב של הזיכרון |
pid | הוא מזהה התהליך של אפליקציית Java שיש לתעד את תמונת ה-head שלה |
דוגמה
נניח שמעבד ההודעות mp-east משתמש בנפח גדול של זיכרון או שהוא מריץ שגיאות OutOfMemory. מאתרים את מזהה התהליך של מעבד ההודעות באמצעות פקודת ps במערכת ההפעלה Unix. נניח שהכביש הוא 24569.
מריצים את הכלי jmap באופן הבא כדי ליצור את תמונת המצב של הזיכרון:
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569
ניתוח Dumps של ערימה
אפשר לנתח Dumps של ערימה באמצעות הכלי Eclipse MAT (כלי לניתוח הזיכרון) כדי לקבוע אם יש דליפות זיכרון פוטנציאליות, או אילו אובייקטי Java מובילים לשימוש גבוה בזיכרון.
קובצי עזר
מיקומי שרשורים
קובץ Dump של שרשור הוא תמונת מצב של כל ה-threads של תהליך Java פעיל. המצב של כל שרשור מוצג עם תוכן המקבץ, שנקרא 'דוח קריסות'. חלק מהשרשורים יהיו חלק מאפליקציית Java שפועלת, ואחרים יהיו שרשורים פנימיים של JVM.
תמונת מצב של שרשור חושפת מידע על כל אחת מפעילויות השרשורים של האפליקציה. המידע הזה יכול להועיל מאוד:
- אבחון בעיות כמו עליות חדות במעבד (CPU), זמני תגובה איטיים או אפליקציות Java שלא מגיבות
- אופטימיזציה של ביצועי אפליקציות ו-JVM
יצירת תבניות Dump של שרשורים
ניתן ליצור את קובץ ה-Dump של השרשור לתהליך Java באמצעות כלי העזר jstack, כפי שמוצג בהמשך:
sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>
כאשר:
פרמטר | תיאור |
JAVA_HOME | היא ספריית ההתקנה של Java. |
pid | הוא מזהה התהליך של אפליקציית Java שאת תמונת השרשורים שלה ברצונך לתעד. |
שם קובץ | הוא שם הקובץ שבו ייכתב קובץ ה-Dump של השרשור. |
דוגמה
כדי ליצור קובץ Dump של שרשור עבור מזהה התהליך 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), פנקס רשימות (Windows). בקטע Dump של שרשורים מופיעים פרטים על קטעים שונים של Dump של שרשורים ואיך לפרש את המידע.