עבור לתוכן

כלי לאיתור בעיה במערכת - צריכת CPU עולה בהדרגה עד ל-100%

Featured Replies

פורסם

השרת שלנו (בחלק מההתקנות), לוקח יותר ויותר CPU עם הזמן. בסופו של דבר הוא מגיע לניצול של 100% CPU וגורם לכל המערכת לעבוד לאט מאוד. כתוב ב-CPP.

אחרי ניתוח של קבצי לוג בגודל 15GB (ומציאת המון שום דבר), החלטתי לנסות profiler שיראה לי מה החלק שעובד קשה כ"כ. אני ממש לא מכיר profilers ל-linux, המלצות?

פורסם

אני יורה פה יריה באפלה, אבל זה מה שהיה לנו בקורס UNIX שלנו:

לוקח יותר ויותר מעבד? אם הוא כתוב ב CPP, ורץ על Linux- חשבת לעבור על ה Forkים שלו? אצלנו מישהו נכנס ללופ-אינסופי של forkים.

פורסם

parallel programming

פורסם
  • מחבר

אופס. שכחתי לעדכן שהבעיה נפתרה.

אם זה מעניין מישהו:

המוצר רץ על שרת לינוקס ומבקש מידע מכל מיני מערכות. יכול להיות main frame, שרת לינוקס אחר או למעשה כל מערכת שיש לה API למוניטור כלשהו שלה (למשל task manager של windows).

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

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

הבעיה היתה באחת הפונקציות שסיפקנו ל-PERL-CPP INTERFACE. נתנו למשתמשים להעביר דברים בין איטרציות שונות דרך MAPS שעוברים בזכרון מה-PERL ל-CPP וחזרה. כל פעם שמשתמש מבקש משהו מה-MAP אנחנו מסירים אותו מה-MAP. אם הוא רוצה את זה למקום נוסף, זו אחריותו להכניס את זה שוב. אני מנחש שכבר הבנתם איפה הבעיה... אם יש קוד PERL שמכניס משהו לאחד ה-MAPS אבל אף אחד לא קורא אותו, ה-MAP הולך ומתנפח. התהליך של העברת ה-MAP מה-CPP ל-PERL הלך ונעשה כבד.

זה לא היה כיף בכלל.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים