לאחרונה נתקלתי בבעיה עיקשת וקשה לפיתרון:
השעון של אחד השרתים שאני אחראי אליהם החליט שדיוק זה לא הקטע שלו, ונדד משהו כמו ארבע שעות בכל יום.
סינכרון NTP יומי גרם לקפיצת זמן של 4-5 שעות בכל פעם, וברור היה שצריך לפתור את הבעיה האמיתית.
החשוד המיידי בבעיות שעון בדרך כלל הוא הBIOS או הסוללה של הCMOS, והפתרון הכי זריז אם זו אכן הבעיה היא להעביר את הדיסק של השרת למכונה אחרת.
חברת ההוסטינג עשתה את זה, והתברר שזה לא פתר את הבעיה.
כדי לעשות דברים יותר מעניינים, אני אוסיף ואגיד שיש בחווה ארבעה שרתים, חלקם עם חומרה כמעט זהה לזו של השרת המאחר והם לא סבלו מהבעיה.
בנוסף, כל השרתים הריצו דביאן Etch עם קרנל 2.6.18 סטנדרטי של דביאן (שהיא הגרסא הרשמית של דביאן Etch), בהבדל אחד: המכונה המאחרת הריצה קרנל של 64 ביט.
לא משהו שאמור לגרום לכזו בעיה, אבל בכל זאת הבדל.
השוואה של קבצי הקונפיגורציה של הקרנלים (בדיביאן קרנלים סטנדרטיים מגיעים עם קובץ הקונפיגורציה שאיתו קומפל הקרנל והוא יושב בספריית /boot) הראתה הבדל מעניין בין הקרנל המאחר לבין אלו שלא:
הקרנל המאחר לא קומפל עם GENERIC_TIME, והאחרים כן.
עדיין לא מוכיח כלום, אבל מעניין.
מסתבר שבלינוקס יש כמה מקורות לעדכון השעון הפנימי, חלקם מדוייקים יותר, חלקם מדוייקים הרבה פחות.
המקורות של הקרנל שרץ כרגע זמינים בקובץ

/sys/devices/system/clocksource/clocksource0/available_clocksource

במכונה המאחרת היה זמין רק מקור אחד עם שם מוזר: jiffies
שהוא גם המקור הכי לא מדוייק שיש (למעשה הקרנל מעדכן איזה משתנה פנימי בקצב שאמור להיות תואם את המציאות, מה שלא ממש עובד)

במכונות האחרות היו זמינים כמה מקורות: acpi_pm jiffies tsc pit

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

9 תגובות ל “בעיית שעון בשרתי לינוקס”

  1. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 3.0.1 כותב/ת

    יפה.

  2. אופיר ISRAEL Ubuntu Linux Mozilla Firefox 3.0.4 כותב/ת

    http://en.wikipedia.org/wiki/Jiffy_(time)
    בגדול, מדובר בהסתמכות על ניהול רישום הזמן של המעבד…
    אם כך, שתי חלופות:
    - או שאכן מדובר במספר האינטרפטים וזה משתנה לפי עומס במערכת.
    - או שמדובר במונה פנימי של המעבד למספר ה-clocks שעברו מאז ה-boot, ואז זה רגיש למצבי חיסכון אנרגיה (בהם המעבד מאט את מהירות השעון הפנימי שלו – כמה גיגההרצ לשניה)
    שתי הגרוש שלי…

  3. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 3.0.3 כותב/ת

    כן.
    ובכל מקרה זה לא אמין במיוחד, כמו שגיליתי על בשרי.

  4. אורן ISRAEL Debian GNU/Linux Mozilla Firefox 3.0.4 כותב/ת

    לגבי NTP, לא הבנתי למה יש קפיצות?
    כאשר משתמשים ב- NTPD הוא אמור לסנכרן את השעונים באופן הדרגתי ועדין.

    יש כמה שיקוצים אסורים בדמות קרון שמריץ NTPDATE מדי איקס דקות.

  5. עמרי ISRAEL Windows XP Mozilla Firefox 3.0.4 כותב/ת

    אורן,
    שיקוצים אסורים בתחת שלי.
    חוץ מזה, NTPD לא אוהב חריגות זמן יותר מדי גדולות, אז יש לי ספק רציני אם הוא היה מסתדר עם סטיה של 5 שעות ביום.

  6. שחר ISRAEL Windows XP Google Chrome 0.4.154.29 כותב/ת

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

  7. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 3.0 כותב/ת

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

  8. דרוש ISRAEL Windows XP Mozilla Firefox 3.0.6pre כותב/ת

    על איזה מעבד הקרנל רץ (אני מניח AMD?) והאם ה NTPD רץ ישירות על הברזל, או דרך איזה Virtual Machine ?

  9. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 3.0.3 כותב/ת

    אינטל, וישירות על הברזל.

השאר תגובה

FireStats icon ‏מריץ FireStats‏