דפים כמעט סטטיים זוחלים. למה ?
אחת התופעות שאני נתקל בה לפעמים אלו בעלי אתרים שמודעים לבעיות הביצועים של האתר שלהם, ולכן בדף הבית (או דפים מרכזיים) הם מבצעים אופטימיזציה ובודקים כל שלב בנפרד. מנהל של אתר אחד שראיתי אפילו בנה דף שמכיל רק Includeים לדפים (סטטים) אחרים אותם היה מעדכן לפי דרישה.
אבל עדיין דף הבית שלו זחל, ואני נשאלתי – למה!
התחברתי לשרת שלו והרצתי DebugDiag, שאימת את ההשערה שלי. הסתבר כי הרבה מאוד בקשות שנתקעו למשך שניות אחדות, כלל לא הגיעו למנגנון של ASP ונתקעו הרבה קודם.
אז למה?
ל-ASP ול-ASP.net יש בתוך Application Pool בסך הכל 25 (ניתן לשינוי) Threadים בזמן נתון, כאשר כל אחד כזה מקבל דף, מעבד אותו ומשחרר. במידה ויש איטיות באתר ה-Threadים האלה מתמלאים מהר מאוד והבקשות הבאות פשוט מתפנות בהמתנה ל-Thread. בעצם, כאשר דף אחד או שניים זוחלים זו שיטה בטוחה לגרום לכל האתר לזחול ובהמשך להתקע.
הפיתרון לבעיה הספציפית ההיא היה הפיכת חלק מהדפים לדפים סטטיים לגמרי, html, שמתעדכנים דרך ממשק הניהול של האתר. הללו מסופקים ישירות על ידי IIS, ללא צורך בתיווכים מתיווכים שונים, ולכן מגיעים ישר ללקוחות. כפועל יוצא – הלחץ על ה-Threadים יורד במעט מה שמקל באופן כללי על העומס בשרת.
כצ'ופר, על הדרך, אנחנו מקבלים גם שיפור מאוד נחמד בביצועים, גם ברמת IIS וגם ברמת יתרונותיו של Cache.
פיתוח מהנה.
עוד באותו עניין:
איטיות בסביבת ייצור