بلاگ تخصصی دات نت نیوک ایران

وبلاگ تخصصی دات نت نیوک فارسی

بلاگ تخصصی دات نت نیوک ایران

وبلاگ تخصصی دات نت نیوک فارسی

این بلاگ با هدف رشد و فراگیر شدن دات نت نیوک در بین فارسی زبانان و مرجع کاملی برای شروع دات نت نیوک ، یادگیری، دانلود ماژول و اسکین، ماژول نویسی و فارسی سازی و اخبار روزانه آن خواهد بود

نویسندگان

http://www.mconnectsolutions.com/blog/wp-content/uploads/2012/07/website-loading-speed.jpg

با سلام، 

در اولین پست خودم در این وبلاگ تصمیم گرفته ام در مورد سرعت سایت صحبت کنم. قبل از انتشار اولین مطلب هم اعلام می کنم تمام نوشته هایم در این وبلاگ حاصل تقریبا 6 سال تجربه در زمینه دات نت نیوک می باشد. 

توضیح مشکل

در این آموزش قصد داریم زمان انتظار برای بارگزاری سایت های ASP.NET که شامل DNN نیز می شود را با ارائه چند راهکار کاسته و سرعت سایت را بهبود بخشیم. البته منظور از زمان تاخیر در بارگزاری وبسایت یا site loading delay، زمانی است که بعد از صدازدن آدرس سایت در نوار آدرس مرورگر عملا هیچ اتفاقی رخ نداده و سایت بعد از مدت زمان زیادی در حدود 30 تا 40 ثانیه شروع به بارگزاری می کند. 

در این گونه موارد باید به بهینه سازی سایت فکر کنیم، البته بهینه سازی روش های بسیار گسترده ای دارد که طبیعتا در این مقاله نمی گنجد.

ما در این آموزش فقط به ذکر مشکل فوق پرداخته و سعی می کنیم زمان تاخیر را تا حد ممکن کاهش دهیم

با توجه به اینکه این مشکل در بسیاری از سایت های ASP.net موجود است بسیار دیده شده که سایت های دات نت نیوکی نیز با این مشکل مواجه هستند و لازم به ذکر هست که سایت هایی که بازدید های کمتری دارند بیشتر به این عارضه دچار هستند.

اینجاست که باید به سراغ علت این مشکل رفت! علت این هست که بصورت پیش فرض IIS، بعد از گذشت 20 دقیقه عدم فعالیت و عدم دریافت و ارسال هیچ request ای، ASP.NET رااصطلاحا خاموش می کند و وقتی کاربر بعد از این خاموشی ASP درخواست دیگری به سمت سرور ارسال می کند تمام پردازش های خاموش شده ی ASP باید مجددا راه اندازی گردد و این باعث تاخیر در بارگزاری سایت می شود.

راه حل

خب راه حل چیست؟

روش های متعددی برای رفع این مشکل وجود دارد که در اینجا به سه مورد اشاره می کنیم؛

  1. اولین مورد که راه حل آسانی هم دارد زمانی هست که شما دسترسی ادمین به IIS سرور سایت تان را دارید، در این صورت به راحتی می توانید recycling properties را برای یک App Pool خاص تغییر بدهید، می توانید این مقدار را از 20 دقیقه به 5 و یا حتی 6 ساعت تغییر بدهید تا در صورت غیرفعال بودن سایت، ASP خاموش نشه. ولی این روش همان طور که اطلاع دارید برای افرادی که در سرورهای اشتراکی هستن کاربرد چندانی نخواهد داشت. لذا روش پیشنهادی ما، روش دوم می باشد که بنده برای سایت های خودم و سایت های مشتریانم این کار را انجام می دهم.
  2. این روش متکی به استفاده از یک سرویس خارجی می باشد تا درخواست هایی را در هر ___ دقیقه به سمت سرور سایت ارسال کرده و سایت شما را اصطلاحا زنده نگه دارد. احتمالا شما هم اسم 'keep alive' را شنیدید. جالب است بدانید که در دی ان ان یک صفحه به نام keepalive.aspx وجود دارد که می توانید بصورت http://domain.com/keepalive.aspx آن را فراخوانی کنید و جالب تر اینکه ورود و خروج به این صفحه هیچ log ای در دی ان ان نمی اندازد و این یعنی ترافیک سایت شما بیهوده مصرف نمی شود.
    پس با این توصیفات DNN بهترین گزینه را در اختیار ما قرار داده، کافیست از یک سایت مانیتورینگ سایت مثل http://www.host-tracker.com/ کمک گرفته و به جای معرفی آدرس اصلی سایت آدرس صفحه keepalive را ارائه داده و تنظیمات را طوری انجام دهیم که هر 5 دقیقه و یا ده دقیقه این صفحه را بررسی نماید و این کار باعث می شود که دیگر  IIS هیچ گاه نتواند ASP سایت را بدلیل عدم ارسال و دریافت درخواست در 20 دقیقه خاموش کند.
  3. روش سوم: به شخصه این روش را امتحان نکرده ام ولی می توان کدهایی به  DNN اضافه کرد که بعد از خاموش شدن ASP سایت را فراخوانی کرده و باعث روشن شدن ASP گردد این تغییرات رو می توان در بخش HTTP Modules وارد کرد و یا می توان اسکریپت ها یا ماژول هایی برای انجام این کار نوشت که بنده قبلا یک مورد که با زمان VB پیاده سازی شده بود را ملاحظه کرده ام، در هر صورت چون بنده تا حال این کار را انجام ندادم نه این روش ها را پیشنهاد می کنم و نه رد. ولی بنده تا حد ممکن تلاش می کنم تا سورس DNN دچار تغییر نگردد.

در این روش ها به نظر، روش دوم موثرتر و کاراتر می آید. شما هم می توانید این کار را انجام داده و نتیجه این کار را از طریق بخش نظرات برای ما ارسال کنید.

امیدوارم این آموزش برای شما مفید بوده و باعث شود سایت های دات نت نیوکی به جایگاه واقعی خود نزدیک تر شوند

در انتها از شما خواهشمندم از طریق فرم نظرات زیر با ما در تماس باشید تا دلگرمی ای برای ارسال آموزش های کاربردی تر دیگری ایجاد شود.


نظرات (۳)

۱۹ مرداد ۹۳ ، ۱۵:۱۶ مجید مشهدی
این عمل می تونه بسیار مهم باشه در مبحث دات نت نیوک چون اکثر کاربران آن از بخش سرعت آن گلایه مند هستند
۱۸ مرداد ۹۳ ، ۰۹:۲۵ سید محمد آذربرا
خواهش می کنم من با این روش تونستم زمان لود اولیه سایت رو که معمولا بالاست رو از 25 ثانیه به 14 ثانیه تقلیل بدم. 
همیشه سرعت لود اولیه مقداری بالاتر هست و سرعت لود صفحات داخلی همین سایت هم 6 ثانیه هست
۱۴ مرداد ۹۳ ، ۱۱:۳۶ مجید مشهدی
با تشکر از مهندس بزرگوار آذربرا که با قلم شیوای خود این مطلب آموزشی را در اختیار ما قرار دادند.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی