interhost

הבלוג
הכל על שרתים, תקשורת ולינוקס

ארכיון פוסטים מהחודש "דצמבר, 2009"

טיפים נוספים ושימושיים

יום שלישי, 15 בדצמבר, 2009

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

מצא את הקבצים שנערכו ביממה האחרונה

find . -mtime 1 -print

המערכת תציג פלט של רשימת הקבצים שנמצאים תחת התיקיה שנמצאים בה (כולל תתי-סיפריות והקבצים שלהן) אשר יש להם ערך "Last Modified" קטן או שווה לאחד, במילים אחרות כל הקבצים שבוצע בהם שינוי ביממה האחרונה.

בדיקת ביצועי דיסק בזמן אמת
בהרבה מקרים שנתקלתי ,במיוחד בשרתים וירטואלים, היו בעיות משאבים שנבעו מניצולת דיסק מקסימלית אשר יצרה צוור בקבוק במערכת וגרמה לפגיעה בביצועים. בדרך כלל במערכות שרתים וירטואליים מקצים זכרון ומעבד מבודדים פר לקוח אבל הסטורג' (הדיסקים) מהווים מקור לכל הלקוחות בשרת. כאשר כמה מכונות וירטואליות משתמשות באותו סטורג' וגם אם הוא מערך של RAID 1 (מירור) קיימת פגיעה בביצעוים שנובעים מיכולתו של הדיסק לעבד מספר I/O בו זמנית. וכאשר המערכת מחכה לI/O מהדיסק מתרחשת ירידה בביצעוים. המקרה בדרך כלל אופייני יותר לדיסקי SATA כי הם מסוגלים לטפל בהרבה פחות I/O מאשר דיסקי SAS. וזה מה שמסביר מדוע דיסקים מסוג SAS יקרים כל כך.
ישנם מספר פתרונות לבעיה, אחד מהם הוא פשוט להישתמש בדיסקים מהירים מסוג SAS או לעבוד מול סטורג' חיצוני חזק או מספר סטורג'ים ולחלק את המכונות ביניהם.
כיצד נבדוק אם השרת הוירטואלי שלנו (או כל שרת פיזי אחר) סובל מבעיות I/O?
ישנה פקודה בלינוקס (תחת כל ההפצות) שנקראית vmstat, בדרך כלל מריצים אותה עם פרמטר מספרי שמסמל את מרווחי הזמן של הדגימה:

vmstat 1

הפלט שלה נראה כך:

procs ———–memory———- —swap– —–io—- -system– —-cpu—-
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0 299920 103204 218460 1238704    0    0     0     1    1    0  7  1 92  0
 1  0 299920  99152 218460 1238668    0    0     1   692  203  396 25  1 74  0
 0  0 299920 106216 218468 1238668    0    0     0   567  219  236 15  0 85  0
 0  0 299920 106224 218468 1238668    0    0     0     0  153   70  0  0 100  0
 0  0 299920 106224 218468 1238668    0    0     0     0  133   64  0  0 100  0
 0  0 299920 106224 218468 1238668    0    0     0     0  133   70  0  0 100  0

מה שמעניין אותנו אותנו בשלב זה היא העמודה האחרונה (בחלק מההפצות היא עמודה לפני אחרונה) ששמה wa, הנתון של העמודה מתעדכן אחת לשניה (כפי שציינו בפרמטר) והוא מסמל את זמן הI/O שהמעבד חיכה לדיסק. כאשר השרת בIDLE הערך יהיה 0. בדרך כלל ערך עד 10 מורה על עבודה רגילה של השרת וזה תקין. בין 10 ל-25 אומר שהשרת עובד ולא "עומד" באוויר, חשוב לראות גם שהערך עולה ויורד חזרה, אם הוא חוזר על עצמו למשך זמן ולא יורד יכול להיות שמבוצעים כרגע גיבויים או מתבצעת העתקה כלשהי ואם לא רצוי לבדוק מה מנצל את הדיסק.
בין 25 ל-50 מראה שיש כבר עומס על הדיסקים ורצוי להתחיל לעקוב אם זה זמני או שחזור על עצמו. במידה והערכים בתחום הזה במשך זמן רב ובחזרות רבות אז מדובר בעומס ובצוור בקבוק שפוגע בביצועים ורצוי לבדוק מה הסיבא לכך. זה מצב לא תקין.
לסיכום ערכים עד 10 תקין לגמרי ואין מה לדאוג. מעבר לכך יש לעקוב.