אופטימיזציה של יישומי ווב DotNet Mvc
-
יש לי אפליקציית API שלאחרונה מתנפחת בצורה לא הגיונית, ומגיעה ל3 גיגה זיכרון, כאשר בנורמלי היא נמצאת על 180-300 מגה זיכרון.
כמובן שהיא נמצאת בApplictionPool משלה בתוך הIIS.אני מנסה לחשוב על דרך נורמלית לבדוק בפרודקשיין מה גורם לזה.
בAPI יש קונטרולר יחיד, המכיל 2 פונקציות בלבד.
הפונקציות סטנדרטיות לחלוטין. (זז"א הם לא יוצאות החוצה או מכינות קפה למישהו אלא רק כמה בדיקות בDB, ניתוח קטן והחזרת JSON)הפונקציות מקבלות ומחזירות JSON, ולא תלויות בקבצים נוספים. (ז"א כשהפונקצייה חוזרת היא סיימה את הפעילות ואין עוד קבצים משרתים שהקליינט צריך חוץ מהResponse)
ברגע שאני מפיל את האפליקצייה היא משתחררת, אבל כל העסקאות שהיו באמצע טיפול נופלות, וזה בעייתי מאד.
כמות בקשות היום לא בזמני לחץ, כ30-50 בקשות בדקה.
אין לי הסבר מתי ולמה זה קורה, כי לפעמים בזמני לחץ גבוהים מאד, האפליקצייה חייה על 300 מגה זיכרון, ובזמנים שלא של לחץ, היא יכולה להתנפח.
במצב נורמלי זמן תגובה לבקשה הוא בסביבות חצי שנייה או פחותנתונים:
server: windows server 2016 iis + asp net mvc + mssql 2016 c#
אשמח מאד לקבל המלצות ורעיונות
-
@upsilon01
תודה
זה מאמר שראיתי כבר.
המוזר הוא שהאפליקצייה עבדה בעומס פי 10 ולא הייתה כל בעייה וגם לא נעשה כל שינוי באפליקצייה (תירוץ ידוע של מתכנתים )
ולא נראה שזה המפריע, (למרות ש @dovid טוען שיש שם שירשור בעייתי. אבל אני לא חושב שהוא זה שמייצר את הבעיות)יש לך ניסיון פרקטי עם כזו בעייה?
או שזה מחיפוש בגוגל?אגב, בינתיים מצאתי את זה
https://stackify.com/w3wp-high-cpu-usage/
ואני מתכנן לעבור על הוורקר כדי לראות בזמן אמת איפה הבעיותאגב המאמר מ2005 בערך...