אל תאתחל אותי ככה סתם

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

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

בראש ובראשונה בלינוקס יש ספרייה בשם tmp בroot הראשי. הספרייה הזו מכילה כל מיני דברים שלרב זמניים, אבל כשמשהו לא עובד, לפעמים הם מספקים תשובה למה.

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

בנוסף הפקודה dmesg יכולה להכיל דברים שמשום מה לא נכנסו ל system  או משהו בסגנון (קרה לי כשהיתה בעיה בדיסק, ובמקרה הזה המיקום של הלוגים נפגע ממנו), ושרת שעובד יכול לתת לי את המידע הזה ואני אוכל להגיד לך שיש בעיות חומרה.

יותר מזה, הרבה בעיות שהתרחשו כתוצאה מעבודה ממושכת, נעלמות וישובו רק כאשר העבודה תחזור להיות ממושכת בשרת, וזה אומר שהבעיה מתחבאת במקום לתת גישה אליה, כי גם בפעם הבאה יאתחלו את השרת, כי זה עבד בפעם הקודמת… וזה לא הפתרון. קרה לי ששרת מסויים הכיל בעיית זיכרון (הסתבר בסוף שהבעיה היתה בלוח האם של השרת), ושדון אחד קרס כל פעם שהוא הגיע למצב שהוא ניגש לכתובת זיכרון ספציפית וזה קרה רק כאשר היה שימוש מאוד מסיבי במכונה שדרש הקצאת זיכרון (זמנית) גבוהה יותר. הלוגים לא עזרו לי למצוא את זה, אבל ריצה ממושכת ו core dump בייחד מצאו את הבעיה.

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s