প্রশ্ন আইআইএস আমার আবেদনটি পুনর্ব্যবহৃত না করে কি করতে হবে?


আমি আইআইএস হোস্ট একটি WCF সেবা অ্যাপ্লিকেশন আছে। প্রারম্ভে, এটি স্থানীয় ক্যাশে হিসাবে ব্যবহার করার জন্য একটি ব্যয়বহুল (সময় এবং cpu পরিপ্রেক্ষিতে) উত্সাহিত করে এবং সংগ্রহ করে।

দুর্ভাগ্যবশত, আইআইএস একটি মোটামুটি নিয়মিত ভিত্তিতে প্রক্রিয়া পুনর্ব্যবহৃত মনে হচ্ছে। তাই আমি আইআইএস অ্যাপ্লিকেশনটি পুনরায় ব্যবহার করতে চাই না তা নিশ্চিত করার জন্য অ্যাপ্লিকেশন পুলের সেটিংস পরিবর্তন করার চেষ্টা করছি। এ পর্যন্ত, আমি নিম্নলিখিত পরিবর্তন করেছি:

  • 5 থেকে 0 CPU এর মধ্যে সীমার ব্যবধান।
  • 20 থেকে 0 প্রসেস মডেলের মধ্যে নিখুঁত টাইম-আউট।
  • 1740 থেকে 0২ পর্যন্ত পুনর্ব্যবহারযোগ্য নিয়মিত সময় ব্যবধান।

এই যথেষ্ট হবে? এবং আমি পরিবর্তিত আইটেম সম্পর্কে নির্দিষ্ট প্রশ্ন আছে:

  1. কি বিশেষভাবে সিপিএম অধীন সীমা ব্যবধান সেটিং মানে? এর অর্থ কি একটি নির্দিষ্ট CPU ব্যবহার অতিক্রম করা হলে, অ্যাপ্লিকেশন পুল পুনর্ব্যবহৃত করা হবে?
  2. ঠিক কি "পুনর্ব্যবহৃত" মানে? অ্যাপ্লিকেশন সম্পূর্ণভাবে ভেঙ্গে এবং আবার শুরু হয়?
  3. "ওয়ার্কার প্রসেস শাটডাউন" এবং "অ্যাপ্লিকেশন পুল পুনর্ব্যবহারযোগ্য" এর মধ্যে পার্থক্য কী? কর্মী প্রক্রিয়া বন্ধ করার প্রক্রিয়া প্রক্রিয়া মডেলের অধীনে অদল টাইম-আউটের জন্য ডকুমেন্টেশন। অ্যাপ্লিকেশন পুল পুনর্ব্যবহারযোগ্য সম্পর্কে পুনর্ব্যবহারযোগ্য কথোপকথনের অধীনে নিয়মিত সময় বিরতি জন্য ডক্স। আমি মোটামুটি দুই মধ্যে পার্থক্য না। আমি w3wp.exe কর্মী প্রক্রিয়া যা অ্যাপ্লিকেশন পুল সঞ্চালিত হয়। কেউ কি দুইজনের মধ্যে পার্থক্য ব্যাখ্যা করতে পারে?

আইআইএস 7 এবং আইআইএস 7.5 ট্যাগ থাকার কারণ অ্যাপটি উভয়ই চলবে এবং আশা করা যায় যে সংস্করণগুলির মধ্যে উত্তর একই।

রেফারেন্সের জন্য চিত্র: enter image description here


70
2017-11-22 23:29


উত্স


আইআইএসের জন্য সেটিংস দিয়ে উপরের স্ক্রিনশট কোথায় পেয়েছেন? - Andrew William Ross


উত্তর:


পুনর্ব্যবহারযোগ্য

রিসাইক্লিং সাধারণত * হয় যেখানে আইআইএস আপনার অ্যাপ্লিকেশনের জন্য একটি কন্টেইনার হিসাবে নতুন প্রক্রিয়া শুরু করে এবং তারপর পুরানোটিকে শাটডাউন টাইমলিমিটকে হত্যা করে তার নিজস্ব ভলিউশন থেকে দূরে যেতে দেয়।

* - সাধারণত: DisallowOverlappingRotation / "অভারল্যাপ রিসাইকেল অক্ষম করুন" সেটিং দেখুন

এটা ধ্বংসাত্মক, যে মূল প্রক্রিয়া এবং তার সব রাষ্ট্র তথ্য বাতিল করা হয়। অফ-অফ-প্রসেস সেশনের অবস্থা ব্যবহার করে (উদাহরণস্বরূপ, স্টেট সার্ভার বা ডেটাবেস, অথবা এমনকি আপনার কুকি ছোট হলেও কুকি) আপনাকে এইরকম কাজ করতে দেয়।

কিন্তু এটি ডিফল্টরূপে হয় overlapped - অর্থাত্ একটি আউটআউটের সময়কাল হ্রাস করা হয় কারণ নতুন প্রক্রিয়াটি শুরু হয় এবং অনুরোধের সারিতে এটি সংযুক্ত হয়, পুরানোটিকে বলা হয় "আপনার [শাটডাউনটাইমলিমিট] সেকেন্ড চলে যাওয়ার আগে। অনুগ্রহপূর্বক মেনে চলুন।"

সেটিংস

আপনার প্রশ্নের জন্য: যে পৃষ্ঠায় সমস্ত সেটিংস কিছু উপায়ে নিয়ন্ত্রণ পুনর্ব্যবহারযোগ্য। "শাটডাউন "কে" প্রতিক্রিয়াশীল পুনর্ব্যবহারযোগ্য "হিসাবে বর্ণনা করা যেতে পারে - যেখানে প্রক্রিয়া নিজেই যাওয়ার সময় নির্ধারণ করে এবং একটি সুষ্ঠুভাবে প্রস্থান করে।

প্রতিক্রিয়াশীল পুনর্ব্যবহারযোগ্য যেখানে WAS একটি সমস্যা সনাক্ত করে এবং প্রক্রিয়াটিকে অঙ্কিত করে (একটি উপযুক্ত প্রতিস্থাপন W3WP প্রতিষ্ঠার পরে)।

এখন, এখানে কিছু উপাদান রয়েছে যা এক ফর্ম বা অন্যের পুনর্ব্যবহারের কারণ হতে পারে:

  • একটি আইএসপিআই এটি অস্বাস্থ্যকর সিদ্ধান্ত
  • কোন মডিউল ক্র্যাশিং
  • নিষ্ক্রিয় সময়সীমা
  • CPU সীমিত
  • অ্যাড পুল পুল বৈশিষ্ট্য সমন্বয়
    • আপনার মা হিসাবে may এক পর্যায়ে চিৎকার করে বললো, "থামো অবচয় এটিতে, অথবা এটি আর ভাল হবে না! "
  • "পিং" ব্যর্থতা * আসলে প্রতি সেকেন্ডে pinging না, কারণ এটি একটি নামযুক্ত পাইপ ব্যবহার করে - আরো "জীবন সনাক্তকরণ"
  • উপরে স্ক্রিনশট সেটিংস সব

কি করো:

সাধারণত:

  • অক্ষম নিষ্ক্রিয় সময়সীমা। নিষ্ক্রিয়তা 20 মিনিট = বুম! পরবর্তী ইনকামিং অনুরোধ নতুন প্রক্রিয়া। শূন্য সেট যে।

  • অক্ষম নিয়মিত সময় বিরতি - ২9 ঘন্টা ডিফল্টটি বিভিন্ন পক্ষের দ্বারা "উন্মাদ", "বিরক্তিকর" এবং "চতুর" হিসাবে বর্ণনা করা হয়েছে। প্রকৃতপক্ষে, যারা শুধুমাত্র দুটি সত্য।

  • বৈকল্পিকভাবে চালু করা DisallowRotationOnConfigChange (উপরে, কনফিগারেশন পরিবর্তন জন্য Reycling নিষ্ক্রিয় করুন) যদি আপনি এটির সাথে খেলা বন্ধ করতে না পারেন - এটি আপনাকে কোনও অ্যাপ্লিকেশন পুল সেটিং পরিবর্তন করার অনুমতি দেয় না তা ছাড়া তা অবিলম্বে কর্মী প্রক্রিয়াগুলির জন্য সংকেত প্রদান করে যা এটি হত্যা করা প্রয়োজন। সেটিংস কার্যকর করার জন্য আপনাকে ম্যানুয়ালি অ্যাপ পুলটি পুনঃচক্র করতে হবে, যা আপনাকে সেটিংস প্রি-সেট করতে দেয় এবং তারপরে আপনার রিসাইকেল প্রক্রিয়া অনুসারে এটি প্রয়োগ করার জন্য একটি পরিবর্তিত উইন্ডো ব্যবহার করুন।

  • সাধারণ নীতি হিসাবে, ছেড়ে pinging সক্রিয়। যে আপনার নিরাপত্তা নেট। আমি মানুষকে এটি বন্ধ করে দেখি, এবং তারপরে সাইট কখনও কখনও অনির্দিষ্টকালের জন্য হ্যাং হয়ে যায়, যার ফলে প্যানিক হয় ... তাই যদি আপনার আপাতদৃষ্টিতে-খুব-ধীর-প্রতিক্রিয়াশীল অ্যাপ্লিকেশনের জন্য সেটিংগুলি খুব আক্রমনাত্মক হয়, তবে তাদের কিছুটা পিছনে ফেলে দিন এবং এটি বন্ধ করার পরিবর্তে আপনি কি পাবেন তা দেখুন। (আপনার নিজস্ব পর্যবেক্ষণ প্রক্রিয়ার মাধ্যমে হ্যাং W3WPs এর জন্য স্বয়ংক্রিয়-ক্র্যাশ-মোড ডাম্পিং সেট আপ না হওয়া পর্যন্ত)

এটা চিরতরে বাস করার জন্য একটি ভাল আচরণ প্রক্রিয়া যথেষ্ট। যদি এটি মারা যায়, নিশ্চিত, এটি প্রতিস্থাপিত হবে। যদি এটি হ্যাং হয় তবে পিংংটি বাছাই করা উচিত এবং একটি নতুন 2 মিনিটের মধ্যে শুরু হওয়া উচিত (ডিফল্টরূপে; সবচেয়ে খারাপ-কেস ক্যালক হওয়া উচিত: পর্যন্ত পিং ফ্রিকোয়েন্সি + + পিং সময়সীমা + + প্রারম্ভ সময় সীমা অনুরোধ আবার কাজ শুরু করার আগে)।

CPU সীমিত হয় না স্বাভাবিকভাবে আকর্ষণীয়, কারণ ডিফল্টভাবে এটি বন্ধ হয়ে যায় এবং এটি যেকোনোভাবে কিছুই করার জন্য কনফিগার করা থাকে; যদি এটি প্রক্রিয়াটি নিশ্চিত করার জন্য কনফিগার করা হয়, নিশ্চিতভাবে, এটি একটি পুনর্ব্যবহারযোগ্য ট্রিগার হতে পারে। এটা ছেড়ে দিন। আইআইএস 8.x এর জন্য নোট, সিপিইউ থ্রোটলিংও একটি বিকল্প হয়ে উঠেছে।

একটি (আইআইএস) AppPool একটি (.নেট) AppDomain (কিন্তু এক / কিছু থাকতে পারে)

কিন্তু ... তারপর আমরা নেট জমি, এবং অ্যাপডোমাইন পুনর্ব্যবহারের মধ্যে যেতে, যা রাষ্ট্র ক্ষতির কারণ হতে পারে। (দেখুন: https://blogs.msdn.microsoft.com/tess/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles/)

সংক্ষিপ্ত সংস্করণ, আপনি আপনার সামগ্রী ফোল্ডারে (আবার পিকিংয়ের সাথে!) একটি ওয়েব.config ফাইলটি স্পর্শ করে, বা সেই ফোল্ডারে একটি ফোল্ডার তৈরি করে, অথবা একটি এএসপিএক্স ফাইল, বা অন্য জিনিস ... এবং এর মাধ্যমে সম্পর্কিত একটি অ্যাপ পুল রিসাইকেল হিসাবে ধ্বংসাত্মক হিসাবে, ঋণচিহ্ননেটিভ-কোড প্রারম্ভের খরচ (এটি সম্পূর্ণরূপে একটি পরিচালিত কোড (.নেট) ধারণা, তাই কেবল পরিচালিত কোড স্টাফ এখানে ঘটে)।

অ্যান্টিভাইরাস এটি ট্রিগার করতে পারে কারণ এটি ওয়েব.config ফাইল স্ক্যান করে, একটি পরিবর্তনের বিজ্ঞপ্তি সৃষ্টি করে, যার ফলে ....


93
2017-11-23 05:07





দয়া করে চেক করুন,

কেন আমরা আমাদের আবেদন পুল পুনঃcycle?

যদি আপনি অ্যাপ্লিকেশন পুলগুলি পর্যায়ক্রমে স্বয়ংক্রিয়ভাবে পুনঃcycle করার জন্য কেন কনফিগার হন তা খুঁজে পেতে ওয়েব ব্রাউজ করেন, আপনি একটি যুক্তিসঙ্গত উত্তর খুঁজে পেতে হার্ড চাপ দেওয়া হবে যা মেমরি সমস্যাগুলির সাথে সম্পর্কিত নয়। এটি সম্প্রদায়ের মত সাধারণভাবে আমাদের ওয়েব অ্যাপ্লিকেশনগুলি সত্যই গ্রহণ করেছে (অথবা আইআইএস-এ হোস্ট করা পরিষেবা স্তর) মেমরি সমস্যা এড়াতে পুনর্ব্যবহৃত করা প্রয়োজন।

আমি সবসময় যে মতামত হয়েছে যদি আপনার কোডটি সঠিকভাবে কাজ চালিয়ে যাওয়ার জন্য পর্যায়ক্রমিক পুনঃস্থাপনের প্রয়োজন হয় তবে কিছু পরিষ্কারভাবে ভুল। একটি বাগ আছে আপনার কোডটি কোথাও এবং আপনাকে এটি ঠিক করতে হবে, কখনও কখনও প্রক্রিয়াটিকে 'চলতে' দেওয়ার জন্য প্রক্রিয়াটির পুনঃসূচনা করার পরিবর্তে।

সত্যিই আরো মনোযোগ শুরু করতে হবে স্মৃতি ব্যবস্থাপনা .NET এ এবং আমাদের অ্যাপ্লিকেশনগুলি সমস্যা ছাড়াই চলতে পারে তা নিশ্চিত করতে।


2
2017-11-19 08:03



এক কারণ হ'ল .নেটটি বড় বস্তুর জন্য আলাদা হিপ ব্যবহার করে (সাধারণত 85 কে বা তার বেশি বা কিছু) যা আবর্জনা সংগ্রহের সময় কম্প্যাক্ট হয় না (যদিও নেট 4.5.1। আমি মনে করি তারা LOH কম্প্যাক্ট করার জন্য বিকল্প যোগ করেছে) এবং সার্ভারের পাশে এইচটিএমএল রেন্ডারিং করার সময় ASP.NET এ 85 কে এইচটিএমএল দেখতে দেখতে অস্বাভাবিক নয় (বিশেষত টেবিল এবং গ্রিডের মতো পুনরাবৃত্ত সামগ্রীর জন্য) এবং এই এইচটিএমএল মূলত এক পর্যায়ে সার্ভারে একটি বিশাল স্ট্রিং বস্তু এবং এটি যদি যোগ্য হয় তবে একটি বড় বস্তু, এটি বড় বস্তু হিপ বিভাজক অবদান রাখে, অবশেষে OutOfMemoryException ফলে, পুনর্ব্যবহারযোগ্য - nothingisnecessary


OP দৃশ্যকল্প (স্টার্টআপ / উষ্ণ আপ উপর দীর্ঘ আরম্ভ) উপর ভিত্তি করে, চেক করার অন্য জিনিস স্টার্টআপ সময় সীমা (সেকেন্ড) যার 90 ডিফল্ট ডিফল্ট মান রয়েছে। সূচনা স্টার্টআপ সময় সীমা থেকে বেশি সময় লাগে তবে কর্মী প্রক্রিয়াটি বাতিল করা যেতে পারে।


0
2017-08-29 07:59