שאלה ניתוח לינוקס ביצועי שרת NFS


אני רוצה לעשות קצת ניתוח של שרת NFS שלנו כדי לסייע במעקב אחר צווארי בקבוק פוטנציאליים ביישומים שלנו. השרת מפעיל את SUSE Enterprise Linux 10.

סוג הדברים שאני מבקש לדעת הם:

  • באילו קבצים ניתן לגשת על ידי אילו לקוחות
  • קריאה / כתיבה התפוקה על בסיס ללקוח
  • תקורה המוטלת על ידי שיחות RPC אחרות
  • הזמן שהמתין בבקשות NFS אחרות, או בדיסק I / O, לשירות לקוח

אני כבר יודע על הנתונים הסטטיסטיים הזמינים /proc/net/rpc/nfsd ולמעשה כתבתי פוסט בבלוג המתאר אותם לעומק. מה שאני מחפש הוא דרך לחפור עמוק יותר ולהבין אילו גורמים תורמים לביצועים שנראים על ידי לקוח מסוים. אני רוצה לנתח את התפקיד של שרת NFS משחק בביצוע של יישום באשכול שלנו, כך שאני יכול לחשוב על דרכים כדי לייעל את זה בצורה הטובה ביותר.


20
2017-07-10 03:33




זה נראה כמו סוג של מערכת הברז נכתב עבור. המסמכים הם קצת חרא, אבל אני מניח שאתה יכול להעיף משהו כדי לעשות את זה סוג של ניתוח באמצעות זה. sourceware.org/systemtap/examples/keyword-index.html - Cian


תשובות:


רק רעיון, מנסה לרחרח תנועה nfs עם wireshark. אפשר לספר לך איזה משתמש ניגש לקובץ:

tshark -R nfs -i eth0

2
2017-07-10 13:08





אני חייב לומר על כל השירותים השונים * סטט זמין אחד, nfsstat הוא ללא ספק הגרוע ביותר! זה נותן לך את היכולת להסתכל על חבורה של דלפקים אבל זה הכל. אם אתה מסתכל עליהם פעמיים, אתה צריך לעשות את העבודה של מנסה להבין עד כמה כל מונה השתנה ואם אתה רוצה לדעת את שיעור השינוי אז אתה צריך לחלק את מספר שניות בין דגימות. בכל ההגינות, nfsstat עושה תאריך חזרה שנים רבות, כאשר הדברים היו עדיין גולמי למדי, ועכשיו הוא מעכב על ידי אף אחד לא רוצה לשנות את פורמט הפלט כי זה בטח לשבור הרבה דברים.

לגבי השימוש collectl לפקח nfs, הוא מספק פלט nfsstat בפורמט הרבה יותר קל לקרוא, אבל מה עוד יותר טוב אתה יכול לתת לה לרוץ במשך שעות או ימים ולשחק את הנתונים שאספתם ברקע. באשר לבקשה לראות מה התהליכים עושים, collectl יכול גם לאסוף נתונים התהליך כולל כמה אני / O כל תהליך עושה ואפילו לשחק אותו בחזרה מראה את I / O העליון משתמשים. ניתן גם להשתמש בתכונה העליונה בזמן אמת.

אם אתה רוצה לראות את הדיסקים נושא עצמי האוסף יכול לעשות את זה גם להציג הכל בתצוגה מתואמת.

תבדוק את זה... -סימן


2
2017-07-13 10:41





אוסף (במיוחד שלה מערכת המשנה של NFS) הוא כלי נחמד מאוד אשר עשוי להיות שימושי עבור הניתוח שלך אבל זה עושה לא התאם לרשימת הדרישות שלך. אני לא מודע לכל כלי לינוקס שעושה.

(אנא תן לי להוסיף את זה מחוץ לנושא הערה: שם J תוכנה שתואמת את הדרישות שלך: מבוסס DTrace של יום ראשון Analytics (pdf) - אבל לצערי לא זמין על לינוקס. תמצא דוגמאות רבות הבלוג של ברנדן גרג אשר ממחישים את היכולות של כלי זה.)


2
2017-07-11 10:27





בדוק nfsstat. זה לא מראה את כל מה שאתה רוצה, אבל לפחות משנה טובה.

http://linux.die.net/man/8/nfsstat


1
2017-07-12 21:56





לדעתי זה בדיוק מדגיש את הבעיה עם הכלים של היום. הנה אנחנו מוזכרים לפחות 3 כולל nfsstat, iostat ו iotop. ואז היה אזכור של wireshare ו nfsreplay. האם זה באמת נשמע כמו דרך רגילה לעשות דברים? מלבד wireshark עם היא קטגוריה משלה, לא היית מעדיף כלי 1?

עבור Openers, בעוד אני מוצא את הפלט של iostat מאוד שימושי, זה קשה מדי לקרוא עם כל אלה 0.00 במספר. Collectl מדווח על אותם נתונים בדיוק אבל מעוצב הרבה יותר קל על העיניים. אתה כבר יודע מה אני חושב על nfsstat ומאז collectl יכול לנגן את כל הנתונים אין צורך כלי "שידור חוזר". באשר 'iotop', לאסוף יכול גם להראות תהליכים מיון לפי כל דבר אני / I.

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

ואת הבונוס הסופי הוא כל מה שאתה אוסף עם collectl אתה יכול לטעון לתוך גיליון אלקטרוני בקלות או להשתמש אוף colplot המהווה חלק collectl-utils.

-סימן


1
2017-11-14 12:07





אולי תרצה לנסות nfswatch מ http://nfswatch.sourceforge.net

אתה יכול לראות כמה פלט מדגם ב http://prefetch.net/blog/index.php/2009/06/16/monitoring-nfs-operations-with-nfswatch/

nfswatch הוא סוג של top (אם כי אני לא בטוח אם יש מצב אצווה). לאחר הפעלתו, תוכל לשנות את התצוגה על ידי לחיצה על מקש (לדוגמה, "c" להצגת לקוחות NFS באמצעות שרת NFS).

בבדיקה הקצרה שלי, עם זאת, nfswatch לא נראה לעבוד עם NFSv4.


1
2017-10-26 20:24



הצעה מעניינת. למעשה, המחבר עצמו אומר NFSv4 אינו נתמך ואת הכלי לא עודכן כ 3 שנים. חבל שזה יהיה נהדר! - Tonin


אין לי תשובות טובות יותר כרגע, אבל אתה יכול לעקוב אחר דיסק IO בדיוק עם

iostat -mx <delay in sec.> <devices>

זה נותן נתונים שימושיים מאוד, במיוחד את גודל התור הממוצע זמן ההמתנה (ב MS) עבור IO שלך. זה מראה די בקלות אם הדיסקים שלך הם צוואר בקבוק, ואם צוואר הבקבוק הוא IO לספור או התפוקה.

ואז עם

netstat -plaute | grep nfs

תראה את חיבורי הלקוח ואת הבתים שהועברו מכל לקוח בזמן אמת. לולאה על זה עבור נתונים רציפה. זה יהיה די קל לעשות סקריפט המספקים נתונים רציף ... אני עובד על זה :)

עכשיו כדי לקבל IO לכל תהליך, אתה יכול להשתמש מעולה יוטופ. אתה עדיין צריך למצוא דרך להתאים nfsd תהליכים עם הלקוחות, אם כי.

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

רק כדי להרחיב על netstat, להשתמש לצפות כדי לראות איך דברים לשנות & מיון על ידי המארח

watch -d "netstat -plaute | grep nfs | sort -k 4,5"

1
2017-07-10 10:21



זהו הפתרון הטוב ביותר שמצאתי עד כה כדי לגלות איזה מארח הוא גורם התנועה על NFS. אז אני יכול ללכת ללקוח כדי לברר איזה קובץ הוא ניגש. תודה! - peschü