تجمعات التطبيقات IIS - إيقاف / بدء التشغيل مقابل إعادة تدوير

StackOverflow https://stackoverflow.com/questions/391878

سؤال

لقد لاحظت أنه في أحد تطبيقات الويب الإنتاج الخاصة بي، عندما أعيد تدوير تجمع التطبيقات يدويا، يمكن أن تتخذ عملية العمال المعاد تدويرها أعلى من 60 ثانية لتدميرها بالكامل، بناء على مشاهدته في إدارة المهام. ومع ذلك، إذا أوقفت تجمع التطبيقات تماما، فإن عملية العامل يذهب بعيدا إلى حد ما - في غضون 1-2 ثواني.

لذلك، سؤالي هو اثنين أضعاف:

أ) لماذا يستغرق الأمر وقتا طويلا لتدمير العملية (وأكثر هدفا، حرر الموارد المستخدمة / مغلقها) عند إعادة تدوير إعادة تدوير تجمع التطبيقات بدلا من إيقافها؛ و

ب) على افتراض أنني أتوقف عن حركة المرور من موجه إلى الخادم، هل هناك أي سبب لا يتوقف / البدء بدلا من إعادة التدوير؟


يحرر:
للتوضيح، قبل إما إعادة تدوير أو إيقاف تجمع التطبيقات، أوقف حركة المرور من إرسالها إلى الخادم المعني (الخادم في كتلة متوازنة تحميل، وأزلت الخادم من موازن التحميل). لذلك، من الناحية النظرية، يجب ألا تكون هناك طلبات موجودة إلى موقع الويب في ذلك الوقت أفعل أي شيء تجمع التطبيقات.


تحرير الجزء deux:
بعد قراءة رابط Igal، يبدو من الواضح جدا بالنسبة لي ما يحدث. عند إعادة تدوير تجمع التطبيقات، بدأت العملية الجديدة، ولكن نظرا لعدم وجود حركة مرور على الإطلاق، فإنه لا يسجل العملية الجديدة كأداء، لذلك لا يتم إيقاف تشغيله القديم حتى المهلة (وهو 90 ثواني).

مع هذه المعرفة، من الواضح لي أن وظيفة "إعادة التدوير" تهدف على وجه التحديد إلى استخدام Midstream على خادم حي، وبما أنني استنزاف حركة المرور يدويا مسبقا، يجب عليك استخدام التوقف / البدء بدلا من ذلك.

هل كانت مفيدة؟

المحلول

أ) بسبب إعادة تدوير تدوير. وبعد هناك فترة زمنية تنتظر العملية "القديمة" من أجل البدء الجديد.

ب) رقم بقدر ما أعرف.

نصائح أخرى

إعادة تدوير إذا أذكرت بشكل صحيح، فالتسم تماما لإنهاء جميع الطلبات الحالية، وسوف تدوير تجمع التطبيقات. توقف ينهي ببساطة في الحقيقة الدقيقة التي تمنعها.

وفق هذا الرابط,

وقف - من خلال إيقاف تجمع التطبيقات، تقوم بتوجيه تعليمات جميع عمليات عامل IIS التي تخدم تجمع التطبيقات هذا لإيقاف تشغيله، ومنع بدء تشغيل أي عمليات عمل إضافية حتى يتم بدء تشغيل تجمع التطبيقات مرة أخرى. هذا يبدأ إيقاف تشغيل رشيقة لعمليات العمال، حيث تحاول كل عملية عامل استنزاف جميع طلباتها ثم الخروج.

إذا لم يتم الخروج من عملية العمال في مقدار الوقت المحدد بواسطة خاصية تكوين ShutDownTIMELIMIT في عنصر ProcessModel في تعريف كل تطبيق تجمع (الافتراضي: 90 ثانية)، فسوف ينتهي الأمر بقوة (هذا لا يحدث إذا تم إرفاق مصحح أصحف أصلية) وبعد

لذلك، إيقاف تشغيل تجمع التطبيقات هو إجراء اضطراب يؤدي إلى تفريغ مجالات تطبيق ASP.NET، وعمليات Fastcgi Child، وفقدان أي حالة تطبيق داخلية.

إعادة تدويرها - إعادة تدوير تجمع تطبيقات يؤدي جميع عمليات عامل IIS حاليا حاليا في تجمع التطبيقات في هذا التجمع بأسلحة، ولكن على عكس إيقاف المسبح، يمكن بدء عمليات عامل IIS الجديد عند الطلب على التعامل مع الطلبات اللاحقة.

إعادة تدوير تجمع التطبيقات هي طريقة جيدة للتسبب في إعادة تعيين حالة التطبيق وأي تكوين تم تخزينها مؤقتا من عمليات عامل IIS التي لا تحصل عليها تلقائيا (مفاتيح التسجيل العالمية في الغالب)، دون تعطيل تشغيل الخادم. هذا يجعل إعادة تدوير تجمع التطبيق بديل رائع ل IISRESET في معظم الحالات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top