Чому процес працівника IIS переробляє кожні 29 годин, а не кожні 24 години?


24

Коли ви налаштовуєте сайт на IIS, він за замовчуванням здійснює робочий процес для переробки кожні 1740 хвилин (29 годин). Чому непарне число, як 29 годин, а не, наприклад, 24 або 48 годин?

Відповіді:


27

У Tech Ed 2003 ведучому було задано це питання, і відповідь полягала в тому, що вони хочуть, щоб нерегулярний цикл запобігав його виникненню на щоденній межі (наприклад, щоб відрізнити від інших щоденних завдань, запланованих на сервері / домені).

Сайт тут (Посилання мертвих) розмірковував:

... (29 - це перший прайм після 24, що дозволяє йому мати найменший шанс, що трапляється у звичайній схемі з будь-яким іншим сервером; полегшення розслідування проблем

З'являється ще один сайт , який підтверджує це:

( Вейд Хілмо ) запропонував 29 годин з простої причини, що це найменше просте число за 24. Він хотів, щоб шаг, який не повторюється, трапляється частіше, ніж раз на день


Цікаво. Особисто я вважаю, що щось повторюється в один і той же час кожного дня полегшило б відслідковувати, чи не рециклінг робочого процесу викликав інші проблеми. наприклад, відстежувати проблему, яка трапляється приблизно кожного дня, важко, але це простіше, якщо це відбувається о 19:00 щодня, оскільки ви можете шукати в системі події, які трапляються в той час. Я знаю, що ви можете налаштувати IIS на переробку, коли ви хочете чи ні, але більшість залишає його за замовчуванням. Дякую за відповідь!
Хлопець

18

Гаразд, це клопіт мене, тому я розкопав і нарешті знайшов цю публікацію у хлопця, який, очевидно, був у команді IIS:

Причина того, що IIS6 переробляє кожні 29 годин за замовчуванням (і у нас була причина

Причина того, що IIS6 переробляє кожні 29 годин за замовчуванням (і ми мали причину вибору 29 годин як значення за замовчуванням), тому що, швидше за все, веб-додаток, що працює на ньому, недостовірний і буквально потребує частого перезавантаження.

Таким чином, IIS6 побудований навколо припущення (сприйманого цинічно), що веб-додаток користувача не працюватиме більше 24 суміжних годин, функції плануються відповідно і вибираються параметри за замовчуванням. Робочі процеси переробляються кожні 29 годин, запускаються і відключаються процеси, контролюється процес, постійно перевіряється, чи працює він, обробляється процес і відтворюється сигнал, коли він несподівано закінчується, тощо.

Розуміючи, що переробка є нормальною частиною операцій, IIS6 також гарантує ізоляцію такої утилізації від кінцевого користувача - TCP-з'єднання кінцевого користувача ніколи не припиняється під час переробки через деяку магію режиму ядра. У поєднанні з додатком у режимі користувача, який зберігає стан сеансу поза процесом (наприклад, ASP.Net Session State Service), це практично гарантований надійний час роботи без видимих ​​для користувача втрат даних, навіть якщо веб-додаток виходить з ладу після обробки кожного запит користувача.

Це приблизно так добре, як може зробити IIS6 - надаючи ненадійну веб-програму, зробіть її надійною для кінцевого користувача та зробіть це, не вимагаючи жодних виправлень ненадійного веб-додатка.

Звичайно, не всі ненадійні заявки можна зробити надійними - якщо так, то всі ми без роботи! - але IIS6 впевнено намагається набагато більше бути стійкими.

У вашому випадку просто трапляється, що стійкість побічно впливає на стан, який не зберігається, але його можна легко відрегулювати.

Якщо припустити, що у вашому веб-додатку ніколи не виникає проблем, і він перебуває у стані сеансу під час роботи сеансу, вам потрібно змінити ці налаштування за замовчуванням.

Це запобіжить несподіваному втраті стану сеансу.

Звичайно, якщо ви коли-небудь використовуєте додаток із станом сеансу, який не використовується, ви можете залишити все як за замовчуванням і ніколи не помітити різницю у функціональності та надійності.


1
Мені це дурно запитати, але якщо IIS припускає, що веб-додаток не може дістати його до 24 годин, то чому 29 був хорошим вибором? Чи не повинні вони вибрати число нижче 24? Де я помиляюся в тлумаченні цього пояснення?
Альфа

Можливо, немає "найкращої" відповіді на значення за замовчуванням, і особа, яка адмініструє веб-сайт, повинна прийняти обдумане рішення на основі програми та системи.
DOK

@Alpha - я погоджуюся - це не має сенсу - це за замовчуванням до 22 або 23 години або хоча б щось нижче, ніж 24.
Хлопець

[цитування потрібно]
пристань7

Кожного ранку я отримую дивну помилку компіляції на частинах веб-сайту, яку можна виправити лише переробкою. Моя здогадка, що тривалість очікування триває протягом ночі через низьке завантаження, і чомусь, коли він запускається знову, помилка компіляції повертається. Дякую за ведучий, я буду слідувати цим шляхом, щоб виправити свою проблему ...
sonjz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.