DCSIMG
recycling של ה - Application Pool בזמן קבוע - שלמה גולדברג (הרב דוטנט)
Sign in | Join | Help

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

recycling של ה - Application Pool בזמן קבוע

פורסם בתאריך Mar 14 2010, 06:58 AM על ידי Shlomo | ישנם 4 תגובות

 

ב - IIS ל - ApplicationPool יש מאפיין מאוד מעניין שהרבה לא מודעים אליו. Regular Time Interval תחת קטגוריית recycling.
 
כברירת מחדל הערך שלו זה 1740 (29 שעות) המשמעות של זה שכל 29 שעות ולא משנה מה קורה באותו רגע יש restart ל - application pool,
 
לפעמים יש לזה משמעות קריטית לזמן שבו יש restart (אם למשל אתם עושים streaming ופתאום האפליקצייה שלכם עושה restart זה לא נעים.
 
אני לא חושב שכדאי להגדיר אותו ל 0 (כלומר לא לעשות אף פעם restart) אבל חשוב להכיר את המאפיין הזה ולבטל אותו בשעת הצורך. אם זה אפשרי אפשר להשתמש במקומו במאפיין Specific Times שמקבל מערך של TimeSpan שמגדיר באיזה שעה לעשות recycling.
 
 
חפשתי איך אפשר לדעת בעוד כמה זמן ה - application pool יעשה recycling אבל לא הצלחתי למצוא פקודה כזאת - אשמח לשמוע על אחת כזאת אם זה קיים.
 

רשימת תגובות

# re: recycling של ה - Application Pool בזמן קבוע

פורסם בתאריך Sunday, March 14, 2010 3:46 PM על ידי יחזקאל ב.  

אם מדובר בweb

עד כמה שידוע לי, streaming לא עובד דרך dot.ent כך שבכל מקרה זה לא אמור להשפיע עליו, רק הIIS ישפיע.

# re: recycling של ה - Application Pool בזמן קבוע

פורסם בתאריך Sunday, March 14, 2010 8:40 PM על ידי Shlomo  

אבל אם יש recycling של IIS כל האפליקציות (גם אלו של dot net יפלו באמצע

# re: recycling של ה - Application Pool בזמן קבוע

פורסם בתאריך Sunday, March 14, 2010 11:18 PM על ידי martin77  

אכן אפשר לחשב "ידנית" מתי יהיה ה - recycle.

בודקים מתי נולד ה - process של ה - AppPool ומוסיפים לו את הזמן שמוגדר לו לחיות (msdn.microsoft.com/.../ms525914.aspx).

למשל ב - powershell:

נתחיל עפ פונקציה שתתן לנו את ה - PID של ה - AppPool

function get-aspnetwp([string]$name="*")

{

  $list = get-process w3wp

  foreach($p in $list)

  {

     $filter = "Handle='" + $p.Id + "'"

     $wmip = get-WmiObject Win32_Process -filter $filter

     if($wmip.CommandLine -match "-ap `"(.+)`"")

     {

        $appName = $matches[1]

        $p | add-member NoteProperty AppPoolName $appName

     }

  }

  $list | where { $_.AppPoolName -like $name }

}

ממנה נוכל לדעת מתי נולד ה - AppPool שלנו,

ואח"כ נוסיף את הזמן בדקות מתוך PeriodicRestartTime:

((get-aspnetwp DefaultAppPool).get_StartTime()).AddMinutes((Get-WmiObject -Namespace root\MicrosoftIISv2 -Query "select * from IIsApplicationPoolSetting where Name = 'W3SVC/APPPOOLS/DefaultAppPool'").PeriodicRestartTime)

# re: recycling של ה - Application Pool בזמן קבוע

פורסם בתאריך Monday, March 15, 2010 10:09 AM על ידי Shlomo  

תודה רבה (ואני שמח שחזרת להגיב)

שלח תגובה

(שדה חובה) 
(שדה חובה) 
(אופציונלי)
(שדה חובה) 

Enter the numbers above: