שרת בNode Js - זיכרון מתנפח
-
@מנצפך אמר בשרת בNode Js - זיכרון מתנפח:
איך אני יכול להתמודד עם זה?
דבר ראשון, איך לעשות debug ב nodeJS בדגש על שרת מרוחק.
מה עוד ממליצים לעשות?
אציין שה sessions וה- sockets נשמרים ב redis.
אבל בסה"כ מדובר באיזור 300 חיבורים מקסימום.תוסיף את הזה לראש הקוד.
require('heapdump');
שהשרת מתנפח אתה שולח הודעת USR2 לתהליך. דרך שורת הפקודה.
$ kill -USR2 <pid>
ואז נוצר לך קובץ DUMP בתקית CWD של התוכנה. ואתה יכול לפתוח את הקובץ הזה בכלי המפתחים של כרום. ולראות מה תופס זיכרון.
-
@מנצפך אמר בשרת בNode Js - זיכרון מתנפח:
אבל בטרמינל הוא נשאר בפנים.
?
אולי זה יעזור?
נ"ל שאם מאיזה סיבה שהוא, התהליך לא מטפל ב-signal אז התהליך נהרג ע"י מערכת ההפעלה. השורה
require('heapdump');
אמור לגרום לתהליך node לרשום handler שיטפל ב-SIGUSR2. -
@אהרן בסוף הבעיה היתה קשורה כנראה לסשנים.
מחקתי את כל הסשנים (היו שמורים ב redis) ומאז זה הסתדר.
לא יודע בדיוק מה היתה הבעיה.אבל אשמח לדעת איך לדבג.
אגב, מה שעשיתי זה הוספתי קוד לשרת שכשאני פונה לכתובת מסויימת הוא יותר לי קובץ dump. זה חלק מהספרייה heapdump.