perf-trace - מקוון בענן

זהו מעקב הפקודה שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


perf-trace - כלי בהשראת strace

תַקצִיר


perf להתחקות
perf להתחקות שיא

תיאור


פקודה זו תציג את האירועים הקשורים למטרה, בהתחלה מערכות מערכות, אבל
אירועי מערכת אחרים כמו תקלות דף, אירועים לכל החיים, תזמון אירועים וכו'.

זהו כלי במצב חי בנוסף לעבודה עם קבצי perf.data כמו ה-perf האחר
כלים. ניתן ליצור קבצים באמצעות ה perf שיא פקודה אבל ההפעלה צריכה
כלול את אירועי raw_syscalls (-e raw_syscalls:*). לחלופין, perf להתחקות שיא יכול
לשמש כקיצור דרך לכלול אוטומטית את אירועי raw_syscalls בעת כתיבת אירועים
לקובץ.

האפשרויות הבאות חלות על מעקב אחר ביצועים; אפשרויות לביצוע רשומות מעקב נמצאות ב-
דף אדם של רשומת perf.

אפשרויות


-a, --כל המעבדים
אוסף מערכתי מכל המעבדים.

-ה, --expr
רשימת מערכות הפעלה להצגה, כרגע רק שמות שיחות. קידומת עם ! מראה הכל
syscalls אלא אלה שצוינו. ייתכן שתצטרך לברוח מזה.

-o, --output=
שם קובץ פלט.

-p, --pid=
הקלט אירועים במזהה תהליך קיים (רשימה מופרדת בפסיקים).

-t, --tid=
הקלט אירועים במזהה שרשור קיים (רשימה מופרדת בפסיקים).

-u, --uid=
הקלט אירועים בשרשורים בבעלות uid. שם או מספר.

--filter-pids=
סנן אירועים עבור פידים אלה ועבור להתחקות עצמו (רשימה מופרדת בפסיק).

-v, --verbose=
רמת מילולית.

--ללא ירושה
משימות ילד אינן יורשות מונים.

-m, --mmap-pages=
מספר דפי נתוני mmap (חייב להיות חזק של שתיים) או מפרט גודל בתוספת
תו יחידה - B/K/M/G. הגודל מעוגל כלפי מעלה כך שהעמודים הקרובים ביותר הם שניים
ערך.

-C, --מעבד
אסוף דוגמאות רק ברשימת המעבדים שסופקו. ניתן לספק מעבדים מרובים בתור א
רשימה מופרדת בפסיקים ללא רווח: 0,1. טווחי מעבדים מצוינים עם -: 0-2. ב
מצב לכל חוט עם מצב ירושה מופעל (ברירת מחדל), אירועים נלכדים רק כאשר
שרשור מופעל על המעבדים המיועדים. ברירת המחדל היא לנטר את כל המעבדים.

--duration: הצג רק אירועים עם משך יותר מ-NM ms.

--sched: צבור זמן ריצה של שרשור וספק סיכום בסוף הפגישה.

-i --input עיבוד אירועים מקובץ נתוני פרף נתון.

-T --time הדפס חותמת זמן מלאה במקום זמן ביחס למדגם הראשון.

--comm
הצג את תהליך COMM ממש ליד המזהה שלו, מופעל כברירת מחדל, השבת עם --no-comm.

-ס, --סיכום
הצג רק סיכום של שיחות מערכת לפי שרשור עם זמני מינימום, מקסימום וממוצע (ב-msec)
ו-stddev יחסית.

-S, --עם-סיכום
הצג את כל מערכות ההפעלה ואחריהן סיכום לפי שרשור עם זמני מינימום, מקסימום וממוצע (in
msec) ו-stddev יחסי.

--tool_stats
הצג נתונים סטטיסטיים של הכלי כגון מספר הפעמים ש-fd→pathname התגלה באמצעות חיבור ה-
פתח את syscall return + vfs_getname או דרך קריאת /proc/pid/fd וכו'.

-F=[all|min|maj], --pf=[all|min|maj]
מעקב אחר תקלות בדפים. לחלופין, אתה יכול לציין אם אתה רוצה מינורי, עיקרי או הכל
תקלות דף. ערך ברירת המחדל הוא מאי.

--syscalls
מעקב אחר שיחות מערכת. אפשרות זו מופעלת כברירת מחדל.

--מִקרֶה
עקוב אחר אירועים אחרים, ראה perf רשימה לרשימה מלאה.

--proc-map-timeout
בעת עיבוד שרשורים קיימים /proc/XXX/mmap, זה עלול לקחת זמן רב, מכיוון
הקובץ עשוי להיות ענק. יש צורך בפסק זמן במקרים כאלה. אפשרות זו מגדירה את השעה
מחוץ לגבול. ערך ברירת המחדל הוא 500 אלפיות השנייה.

תקלות בעמוד


בעת מעקב אחר תקלות דף, פורמט המעקב הוא כדלקמן:

אשמה [ + ] ⇒addr.dso@addr.offset[1]> (
רמה>).

· min/maj מציין אם אירוע התקלה הוא קל או גדול;

· ip.symbol מציג סמל עבור מצביע הוראות (הקוד שיצר את התקלה); אם
אין סמלי ניפוי באגים זמינים, Perf trace ידפיס IP גולמי;

· addr.dso מציג DSO עבור הכתובת השגויה;

· סוג המפה הוא או d עבור מפות שאינן ניתנות להפעלה או x עבור מפות ניתנות להפעלה;

· רמת ה-adr היא או k עבור kernel dso או . עבור משתמש dso.

עבור רזולוציית סמלים, ייתכן שיהיה עליך להתקין סמלים לניפוי באגים.

אנא שים לב שמשך הזמן הוא כרגע תמיד 0 ואינו משקף את הזמן האמיתי שבו
לקח טיפול בתקלה!

כאשר --verbose צוין, perf trace מנסה להדפיס את כל המידע הזמין עבור שני ה-IP
וכתובת תקלה בצורה של dso@symbol[2]+היסט.

דוגמאות


עקבו רק אחר תקלות דף גדולות:

$ perf trace --no-syscalls -F

מעקב אחר שיחות מערכתיות, תקלות דף גדולות וקניות:

$ perf trace -F all

1416.547 ( 0.000 אלפיות השנייה): python/20235 majfault [CRYPTO_push_info_+0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@0x61be0 (x.)

כפי שאתה יכול לראות, הייתה תקלת עמוד גדולה בתהליך python, מ
שגרת CRYPTO_push_info_ שתקלה איפשהו ב-libcrypto.so.

השתמש ב-perf-trace באינטרנט באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows