কেন প্রতিটি পুনরায় চালু হওয়ার পরে, আমার স্থানীয় নেট নেটওয়ার্কগুলি প্রথমবারের জন্য লোড করতে সময় নেয়? [বন্ধ]


27

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

আমি জেআইটি সম্পর্কে জানি এবং আমি এই প্রশ্নটি সম্পর্কেও সচেতন , তবে এটি আমার প্রশ্নের উত্তর দেয় না।

আপনি উইন্ডোজ পুনরায় চালু করার সময় কি জেআইটি কি ঘটবে? এটি w3wp.exe প্রক্রিয়া তৈরির সাথে সম্পর্কিত? কেন প্রতিটি পুনরায় আরম্ভ করার পরে প্রথম অনুরোধের জন্য সাইটগুলি এত ধীর?


3
এটি "কোল্ড স্টার্ট" বা কিছু হিসাবে পরিচিত। সিস্টেমটিকে ডাব্লু 3 ডাব্লুপি মেমরিতে লোড করতে হবে, যার জন্য সমস্ত সম্পর্কিত ডিলেস, সম্ভবত জেআইটি স্টাফ, আমদানি টেবিলগুলি প্রক্রিয়া করা, ডিস্ক থেকে ডেটা পড়তে হবে, কারণ এটি র্যাম ক্যাশে নয়, ইত্যাদি
কোডার

@ কোডার, আপনার মন্তব্যের জন্য +1। তবে আপনি কি দয়া করে উত্তরে আরও ব্যাখ্যা করতে পারেন, যাতে আমি এবং অন্যান্য বিকাশকারী সুবিধাটি ব্যবহার করতে পারি। :)
সা Saeedদ নেমতি

আইআইএস আমার বিশেষত্ব নয়, তাই আমি আশা করি কেউ আরও ভাল উত্তর দেবে। এখানে কিছুটা আগে আমি শুরু করা একটি অনুরূপ বিষয় এখানে স্ট্যাকওভারফ্লো / সিকোশনগুলি / 91৮০/91 / //cold-startup-optimization সম্ভবত এটি আরও কিছুটা সহায়তা করবে।
কোডার

4
এই প্রশ্নটি অফ-টপিক হিসাবে উপস্থিত বলে মনে হচ্ছে কারণ এটি একটি বাস্তবায়ন ইস্যু সম্পর্কিত, ধারণা সংক্রান্ত প্রোগ্রামিং সমস্যা নয়।

উত্তর:


32

এই সমস্যাটি হ'ল জেআইটি সংকলন। অ্যাপ্লিকেশন পুলটি গ্রন্থাগারগুলি প্রক্রিয়া শুরু করার আগে তাদের তৈরি করতে সময় প্রয়োজন। ওয়ার্মআপ স্ক্রিপ্ট ব্যবহার করে এটিকে আরও বাড়ানো যেতে পারে, তবে এটি হওয়া দরকার। এটি আপনি কোনও ওয়েবসাইট বা ওয়েব অ্যাপ্লিকেশন প্রকল্প ব্যবহার করছেন কিনা তার উপরও নির্ভর করে। একটি ওয়েবসাইট প্রতিটি পৃষ্ঠার জন্য জেআইটি হয় তাই খুব প্রথম হিট ধীর হয় এবং প্রতিটি নতুন পৃষ্ঠা হিটের পাশাপাশি অতিরিক্ত সংকলন সময়ও থাকে। ওয়েব অ্যাপ্লিকেশন প্রকল্পগুলি পূর্বনির্ধারিত রয়েছে তাই এটির আঘাতটি খারাপভাবে ভোগা উচিত নয়, তবে গ্রন্থাগারগুলি এখনও লোড করা দরকার। আপনার যত বেশি লাইব্রেরি / সরঞ্জাম রয়েছে তার এই হিটটি খারাপ হয়। এখানে কিছু লিঙ্ক দেওয়া হয়েছে যা উষ্ণতা সম্পর্কে আলোচনা করেছে:

http://weblogs.asp.net/gunnarpeipman/archive/2010/01/22/iis-application-warm-up-module.aspx http://blogs.iis.net/steveschofield/archive/2009/05/30 / অ্যাপ্লিকেশন- পুল-ওয়ার্ম-up.aspx /programming/2063461/iis-web-applications-warmup http://sharePoint.smayes.com/2011/06/application-pool-specific-warm আপ-স্ক্রিপ্ট /


6
এটি বেশিরভাগই সঠিক তবে সংকলন এবং জিট করার মধ্যে একটি পার্থক্য যা এই উত্তরে পরিষ্কার নয়। জিটিং মেশিন কোডে .NET বাইকোডকে সংকলন করছে। এএসপি.এনইটি আসলে ওয়েব অ্যাপ্লিকেশন প্রজেক্টে (এমনকি যদি আপনি এ্যাসনেট_কম্পাইলার ব্যবহার না করেন) সেই ওয়েব পৃষ্ঠাগুলি সংকলন করছে । সমস্ত যে সংকলন / বিল্ড সময়, এবং jitting এবং গ্রন্থাগার লোড সময়, কেন এটি এত ধীর।
অ্যারোনআউট

জেআইটি স্রেফ ইন-টাইম। "জিটিং" এবং "সংকলন" এর মধ্যে পার্থক্য নেই, কোডিংয়ের সময় ও পরিমাণের বাইরে। এছাড়াও, জেআইটি সংকলন কেবলমাত্র প্রতিটি অনির্দিষ্ট কোডের জন্য ঘটে থাকে , প্রতিটি পৃষ্ঠার জন্য অগত্যা নয়। যদি তারা একই টেমপ্লেট ব্যবহার করে তবে, সংকলন প্রয়োজনীয় নয়। সংকলনের জন্য আরও বেশি গ্রন্থাগার বেশি সময় নিয়ে যায় এমন মন্তব্য অবশ্যই সত্য।
কর্নেলিয়াস

9

আপনার প্রথম অনুরোধটির ধীর প্রতিক্রিয়া হ'ল কারণ আইআইএস কেবলমাত্র কোনও প্রথম সাইট বা অ্যাপ্লিকেশন পুল এটির প্রথম অনুরোধটি শুরু / লোড করে। এবং নির্দিষ্ট সময়ের পরে সার্ভারে কোনও নতুন আগত অনুরোধ উপস্থিত না হয়ে IIS সাইটটি আবার থামায় (অ্যাপ পুল পুনর্ব্যবহারযোগ্য)।

এএসপি.এনইটি ৪.০ এ অটো-স্টার্ট নামে একটি নতুন বৈশিষ্ট্য রয়েছে। এই বৈশিষ্ট্যটি দিয়ে আপনি কোনও অনুরোধের আগে নিজেকে শুরু করার জন্য একটি অ্যাপ্লিকেশন পুল বা পৃথক সাইট সেট করতে পারেন। এটি বুট সময় (যখন আইআইএস শুরু হবে) বা আপনি যখন একটি এএসপি.এনইটি সাইট আপডেট করবেন (যা সাইটটি থামায়) তখন এটি ট্রিগার করা হয়।

<applicationPools>
    <add name="MyAppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
</applicationPools>

<sites>
    <site name="MySite" id="1">
        <application path="/" serviceAutoStartEnabled="true" />
    </site>
</sites>

এটি ব্যবহার করার জন্য আপনার আইআইএস 7.5 প্রয়োজন।

অটো-স্টার্ট শুরু করলে প্রাক্তন, কিছু অতিরিক্ত কাজ সম্পাদন করার একটি বিকল্পও রয়েছে। ক্যাশে প্রিললোড ডেটা।


সাধারণত আপনি নিজের ওয়েব সাইটটি ওয়েব সার্ভারে রাখার আগেই এটি সংকলন করেন, তাই প্রথম অনুরোধে কোডটি আর কোনও সংকলনের প্রয়োজন হয় না। জেআইটি কেবল অ্যাপ_কোড ফোল্ডার ব্যবহার করে এমন সাইটগুলির জন্য ব্যবহৃত হয় যেখানে আপনি ওয়েবসাইটের সাথে আপনার উত্স কোড প্রকাশ করেন।
স্টিফ

2

সমস্যার অংশ হ'ল জিএসিও। লাইব্রেরিগুলির জায়গাগুলি যখনই লোড করা হয় ততবারই সুরক্ষা পরীক্ষা করা দরকার - এর অর্থ এনক্রিপশন ধরণের একটি সম্পূর্ণ বোঝা চলছে এবং এটি জিনিসকে অনেকটা ধীর করে দেয়। এমএস থেকে কিছুক্ষণ আগে ডাব্লুপিএফের পারফরম্যান্স সম্পর্কে একটি আলোচনা হয়েছিল যা এই সমস্যার বর্ণনা দিয়েছিল - তাদের উত্তর ছিল "আপনি যদি সহায়তা না করতে পারেন তবে জিএসি তে জিনিস রাখবেন না"।


1
দ্বিগুণ নেতিবাচকতা এড়াতে এটি "এটির পক্ষে সহায়তা করতে" হওয়া উচিত
রিচার্ড জাজাল

1

আইআইএস-এ কম ট্রাফিক ওয়েবসাইটগুলির জন্য বিরক্তিকর (কখনও কখনও) বৈশিষ্ট্য রয়েছে। এটি অব্যবহৃত কর্মী প্রক্রিয়াগুলি পুনর্ব্যবহার করে - যা সাইটের প্রথম ব্যবহারকারীর কারণ; কখনও কখনও অত্যন্ত দীর্ঘ বিলম্ব (30+ সেকেন্ড)। http://dotnettimes.wordpress.com/2014/03/24/fixing-slow-initial-load-for-iis-web-site/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.