خطای ۵۰۸ Resource Limit is Reached خطایی است که باعث ایجاد سردرگمی، هم برای صاحبان سایت و هم برای بازدید کنندگان سایت میشود. در این مقاله به برخی از نکاتی میپردازیم که مالک یک سایت میتواند به کمک آنها علت بروز این مشکلات و همچنین برخی از راهکارهای عملی رفع آنها که عمدتاً بههنگام استفاده از سرویسهای هاست اشتراکی پیش میآیند، را شناسایی کند.
ابتدا میخواهیم به مرور تاریخچه خطای ۵۰۸ Resource Limit is Reached و پیدایش آن بپردازیم. خطای ۵۰۸ برای اولین بار بهعنوان کد HTTP در RFC5842 به تصویب رسید، اما بهعنوان کد خطای HTTP و بهصورت “۵۰۸ – Loop Detected” در سال ۲۰۱۰ شناخته شد. در همان دوره Cloudlinux نیز برای اولین بار با هدف تامین امنیت و ثبات بیشتر برای سرورهای میزبانی وب اشتراکی راه اندازی شد. یکی از این تکنولوژیها که همزمان با آنها معرفی شد نیز “LVE” یا”Lightweight Virtual Environment” بود که یک ماژول لینوکس kernel مبتنی بر فناوری OpenVZ است که برای میزبانی وب طراحی شده و هدف اصلی آن حصول اطمینان از اینکه یک وب سایت به تنهایی نتواند یک سرور اشتراکی را دچار اختلال کند.
تکنولوژی LVE به ارائه دهندگان هاست اشتراکی اجازه میدهد تا قبل از مسدود کردن حساب یک کاربر به دلیل استفاده بیش از حد مجاز، میزان منابعی را که یک وب سایت میتواند در یک سرور هاست اشتراکی مصرف کند، را محدود کند. در آن دورهای که هاست اشتراکی فاقد این تکنولوژی بود، بسیار معمول بود که یک وب سایت بهدلیل افزایش شدید و ناگهانی ترافیک، سبب اختلال و از کارافتادگی کل سرور میزبانی وب اشتراکی شود. وقوع این اتفاق منجر به از کار افتادن سرور و تحت تاثیر قرار گرفتن تمام وب سایتهای میزبانی شده در آن سرور میشد. و به این ترتیب، این مسئله به هیچ وجه برای سایر مشتریان مشترک در سرور عادلانه نبود.
همزمان با انتشار Cloudlinux، جامعه میزبانی وب نیز به سرعت از این تکنولوژی جدید استقبال کرد، زیرا بکارگیری آن سبب ثبات بیشتر برای زیرساختهای آنها و فراهم کردن سیستم عادلانهتر برای مشتریان آنها میشد. البته این روش باعث شد محدودیتهایی که در گذشته وجود نداشت، بهطور ناگهانی برای حسابهای هاست اشتراکی وب اعمال شود.
یعنی باعث اعمال محدودیتهایی در میزان حافظه سیستم، پروسههای CPU و PHP میشد که یک سایت در هر لحظه از آنها استفاده میکرد. احتمالاً نزدیکترین کد که Cloudlinux میتوانست در کدهای IANA HTTP پیدا کند و با LVE مطابقت داشت و مشخص میکرد که یک وب سایت در حال استفاده از همه منابع خود است، همان کد خطای ۵۰۸ بود . این همان کدی شد که Cloudlinux هنگام استفاده از منابع بیش از حد تعریف شده توسط LVE از آن استفاده میکرد و در نتیجه از سال ۲۰۱۰ به بعد، سرورهای هاست اشتراکی بسیار پایدارتر شدند.
اگر شما مالک یک وب سایت هستید و متوجه شده اید که گاهی سایت شما خطای Resource Limit is Reached را برای بازدید کنندگان سایت نمایش میدهد، روشهایی برای تشخیص علت بروز این خطا وجود دارد. اکثر خطاهای ۵۰۸ توسط سرورهای روی cPanel و مبتنی بر Cloudlinux ایجاد میشود. خطای ۵۰۸ عمدتاً بهدلیل یکی از دو عامل زیر در سرور ایجاد میشود:
برخلاف تصور، محدودیتهای اعمالی برای CPU مستقیماً باعث خطای ۵۰۸ نمیشوند. اگر میزان استفاده از CPU در یک حساب، به حداکثر میزان تخصیص یافته برسد، بههمان صورت در حالت حداکثر باقی میماند و باعث کند شدن سایر فرایندهای در حال اجرا بر روی سرور میشود. این امر میتواند باعث افزایش میزان فرآیندهای ورودی شود و این مسئله باعث فراتر رفتن تعداد درخواستهای ورودی از حدود تعریف شده، و در نهایت بروز خطای Resource Limit is Reached شود.
اگر به سی پنل هاست اشتراکی خود دسترسی دارید و سرور شما مبتنی بر Cloudlinux است، باید این امکان برای شما وجود داشته باشد که بتوانید میزان استفاده از منابع خود را برای حساب خود بررسی کرده و در صورت بروز خطای ۵۰۸، علت آن را شناسایی کنید. گزینهای که باید در سی پنل بهدنبال آن باشید، آیکون” CPU and Concurrent Connection Usage “در زیر گروه گزینههای “Metrics” است.
پس از باز کردن این صفحه، اطلاعاتی در اختیار شما قرار میگیرد که نشان میدهد سایت شما در طول ۲۴ ساعت گذشته با محدودیت منابع مواجه شده است یا خیر؟ همچنین لینکی با عنوان “details” نیز قابل مشاهده است که علت بروز خطای ۵۰۸ همراه با تعداد خطاهایی که در طول آن دوره زمانی رخ داده است بههمراه اطلاعات کلی دیگر ذکر کرده است.
نمونه ای ازخطاهای بخش “Faults” بهصورت نمودار در تصویر زیر نمایش داده شده است (برگرفته از اکانتی که دارای کمبود منابع است):
همانطور که در تصویر بالا ملاحظه میکنید، وب سایتی که این اطلاعات از آن گرفته شده است، در طول ۲۴ ساعت گذشته صدها مورد خطای ۵۰۸ داشته است. استفاده بیش از حد از حافظه و دفعات بالای فرآیندهای ورودی در این سایت از عوامل نمایش خطای Resource limit is Reached به بازدیدکنندگان بوده است. این بخش به شما نشان میدهد که به کدام محدودیت رسیده اید، اما لزوماً دلیل رسیدن به سقف محدودیتها را نشان نمیدهد.
دلایل بالقوه زیادی برای بروز خطای ۵۰۸ وجود دارد، برخی از رایجترین آنها در زیر ذکر شده است.
بسیاری از ارائه دهندگان سرویس هاستینگ ظرفیت محدودی برای منابع مختص به هر حساب کاربری اعمال کرده اند تا بتوانند صدها حساب میزبانی وب را در یک سرور جای دهند. این محدودیتها ممکن است بسیار پایینتر از شرایط مورد نیاز وب سایت شما باشد، بهخصوص اگر وب سایت شما سنگین باشد (تعداد زیادی افزونه بر روی آن نصب شده باشد) یا CMSهای e-ommerce سنگینی مانند Magento یا WordPress/WooCommerce را اجرا کند.
بهترین کار در این موارد این است که بدانید ارائه دهنده سرویس میزبانی شما چه محدودیتهایی دارد (از آنها بپرسید) و چند تست به طور همزمان انجام دهید تا ارزیابی کنید قبل از اتمام سقف منابع مصرفی، تعداد بازدیدکنندگان وب سایت شما چقدر است. اگر این سقفهای تعریف شده به اندازه کافی بالا نیست، بهدنبال هاستینگهای دیگر یا بستههای دیگری باشید تا منابع کافی برای جلوگیری از این اتفاق را در اختیار شما قرار دهند.
اگر یک سایت واقعاً شلوغ دارید در این صورت بههیچ وجه نباید به دنبال هاست اشتراکی باشید، بلکه یک راه حل اختصاصی و بدون محدودیت بهترین گزینه برای وب سایت و کسب و کار شما است.
بارها دیده ایم که مشتریان اقدام به تبلیغات گسترده میکنند، در حالی که کماکان در سرویس میزبانی اشتراکی هستند، که این مسئله نیز میتواند منجر به بروز خطای ۵۰۸ شود. اگر فعالیتی انجام میدهید که باعث افزایش بازدید وب سایت شما و ایجاد پیکهای ترافیکی شدید میشود، باید در یک بستر میزبانی اختصاصی حضور داشته باشید.
در غیر این صورت ممکن است سبب اتلاف سرمایهگذاری در تبلیغات و همچنین از دست دادن ترافیک و بازدیدهای مفید جذب شده ناشی از این تبلیغات شوید. اگر میخواهید در معرض بازدید گسترده در وب قرار گرفته و بازدید کنندگان بالایی جذب کنید، ابتدا باید مطمئن شوید که قبل از وقوع پیکهای واقعی ترافیک، در بستری قرار دارید که میتواند از عهده این حجم ترافیک برآید.
Web Crawler ها یا اسکریپتهای خودکار که در حال مرور وب سایت شما هستند اغلب میتوانند باعث کاهش ظرفیت منابع شوند. علاوه بر این، موتورهای جستجو که در حال ایندکس کردن سایت شما با سرعت بالا هستند نیز میتوانند باعث استفاده بیش از حد از منابع شما شوند. بعلاوه ممکن است بعضی اوقات بدافزارها، بهطور مداوم به صفحاتی در سایت شما دسترسی پیدا کنند که میدانند باعث مصرف بالای منابع شود و بدین ترتیب منجر به اختلال DOS در سرویس دهی سایت شما شود.
در زمان بروز خطای Resource limit is Reached، میتوانید از طریق log های مربوط به سرور، فعالیتهایی که در سایت رخ میدهد و بهطور بالقوه باعث ایجاد این مشکل میشود را همراه با آدرسهای IP مرتبط با آنها شناسایی و مسدود کنید.
اگر فکر میکنید Google باعث ایجاد مشکل در هنگام ایندکس کردن سایت شما میشود، میتوانید از ابزار webmaster Google استفاده کنید. به کمک این ابزار میتوانید سرعت پردازش و ایندکس کردن سایت خود را تنظیم کنید تا از وقوع این خطاها جلوگیری شود.
گاهی اوقات پلاگینها، تمها یا کدها که دارای خطا یا ضعف در کد نویسی هستند میتوانند سبب بروز خطاهای ۵۰۸ شوند. این که بتوانید فرآیندهای انجام شده در حساب خود را ببینید، اغلب به شما کمک میکند فایلهایی که سایت را در گیر میکند و از CPU یا حافظه بیش ازحد استفاده میکنند، را شناسایی کنید. این امر همچنین میتواند دلیل اصلی کندی سایت حتی در زمانی که شخصی از سایت استفاده نمیکند، نیز باشد.
اغلب یک فرایند بکآپ گیری، یک query طولانی که در بک اند یک سایت اجرا شده یا یک cron jobs در حال اجرا، مستلزم مصرف بالای حافظه است که میتواند باعث بروز خطای Resource limit is Reached شود. معمولاً وقوع این خطاها همزمان با عملیاتهای در حال اجرا رخ میدهد، که این مسئله تشخیص علت را کمی آسانتر میکند. بهخصوص اگر همزمان با اجرای یک cron jobs یا انجام تسکهای بک اند توسط مدیر وب سایت، با خطاهای استفاده از منابع مواجه شوید.
اگر این مشکلات را بهطور مدام در سایت خود مشاهده میکنید، منطقیترین کار این است که بسته هاست اشتراکی خود را ارتقاء دهید یا به گزینههای دیگری مانند میزبانی سرور اختصاصی توجه کنید، تا اطمینان حاصل کنید که این محدودیتها باعث ایجاد downtime درسایت شما نمیشوند. گاهی اوقات هزینهای که به خاطر اختلال در سایت خود میپردازید به مراتب بیشتر از هزینه ارتقاء به یک بسته مناسب برای وب سایت کسب وکار شما است.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.