هر آنچه برای شناخت محدودیتهای CPU، RAM، IO، Hit، Inode، Entry Process و MySQL و کاهش مصرف منابع نیاز دارید.
همین حالا سایت خود را بهینه کنید!
مقالات به سه گروه دستهبندی شدهاند. روی هر عنوان کلیک کنید تا محتوای کامل باز شود.
در کنار هاست رایگان، میتوانید از پنل پیامک رایگان و ثبت دامنه ارزان پارسه دو هم استفاده کنید.
محدودیت CPU، RAM و IO
یکی از محدودیتهای مهم در سرویسهای میزبانی وب، محدودیت استفاده از CPU است. این محدودیت برای حفظ پایداری سرورها و جلوگیری از کاهش سرعت سایتها اعمال میشود. در این مقاله بررسی میکنیم که مصرف CPU چیست، چرا محدود میشود، چه عواملی باعث افزایش آن میشوند و چگونه میتوان استفاده از پردازنده را کاهش داد.
CPU یا پردازنده، بخش اصلی انجام محاسبات در هر سیستم کامپیوتری است. همانطور که برنامههای زیاد روی کامپیوتر شخصی میتوانند باعث کندی سیستم شوند، پردازشهای سنگین روی سرور نیز میتوانند سرعت تمام وبسایتهایی که روی آن سرور قرار دارند را کاهش دهند.
سرورهای میزبانی وب نیز دارای پردازندههای قدرتمند هستند که وظایف مختلفی انجام میدهند. بخش زیادی از این پردازشها مربوط به اجرای کدهای وبسایت، بهخصوص اسکریپتهای PHP، درخواستهای پایگاه داده و اجرای افزونهها است.
اگر یک وبسایت بیش از حد از منابع پردازنده استفاده کند، ممکن است باعث کاهش سرعت سرور و تأثیر منفی روی سایر کاربران شود. به همین دلیل، برای هر حساب میزبانی یک محدوده مشخص مصرف CPU در نظر گرفته میشود.
در صورت عبور از این محدودیت:
این کار برای جلوگیری از فشار بیش از حد روی سرور و حفظ کیفیت سرویس برای همه کاربران انجام میشود.
محاسبه مصرف CPU فقط به تعداد بازدیدکنندگان سایت مربوط نیست، بلکه عوامل مختلفی روی آن تأثیر دارند. برای مثال:
به زبان ساده، هر بار که یک بازدیدکننده وارد سایت میشود، سرور باید تعدادی عملیات انجام دهد. هرچه این عملیات سنگینتر باشند، مقدار بیشتری از پردازنده استفاده میشود. مصرف CPU را میتوان شبیه «زمان استفاده از پردازنده» در نظر گرفت.
خیر، نمیتوان یک عدد ثابت برای تعداد بازدیدکنندگانی که یک سایت میتواند تحمل کند تعیین کرد. دو سایت ممکن است تعداد بازدید مشابهی داشته باشند، اما مصرف CPU آنها کاملاً متفاوت باشد.
برای مثال:
عوامل تأثیرگذار شامل تعداد صفحات مشاهده شده، نوع صفحات بازدید شده، سیستم مدیریت محتوا یا اسکریپت استفاده شده، کیفیت برنامهنویسی سایت و تعداد درخواستهای پایگاه داده هستند.
از نظر تعداد، محدودیت مشخصی برای نصب افزونهها وجود ندارد؛ اما تعداد زیاد افزونهها معمولاً باعث افزایش مصرف منابع میشود. هر افزونه یا اسکریپت میتواند بخشی از کدهای سایت را اجرا کند و در نتیجه مصرف CPU را افزایش دهد.
البته تعداد افزونهها تنها عامل مهم نیست. کیفیت کدنویسی نیز اهمیت زیادی دارد. برای مثال:
همچنین میزان بازدید سایت نیز اهمیت دارد. یک سایت کمترافیک ممکن است حتی با افزونههای زیاد مشکلی نداشته باشد، اما با افزایش بازدید، مصرف CPU آن افزایش پیدا کند.
یکی از منابع مهم در میزبانی وب، حافظه RAM است. هر وبسایت برای اجرای کدها، پردازش درخواستها و نمایش محتوا به کاربران، به مقدار مشخصی از حافظه سرور نیاز دارد. در VCP برای حفظ پایداری سرورها و جلوگیری از ایجاد مشکل برای سایر کاربران، میزان مصرف RAM هر حساب میزبانی کنترل میشود.
RAM یا حافظه موقت، فضایی است که برنامهها هنگام اجرا برای ذخیره اطلاعات مورد نیاز خود استفاده میکنند. هنگامی که یک اسکریپت PHP اجرا میشود، سرور بخشی از حافظه RAM را برای پردازش اطلاعات، اجرای دستورات، دریافت دادهها از پایگاه داده و آمادهسازی خروجی صفحه استفاده میکند.
اگر یک وبسایت به حافظه بیشتری از مقدار مجاز نیاز داشته باشد، ممکن است اجرای اسکریپتها با خطا مواجه شود یا سایت برای جلوگیری از فشار روی سرور، موقتاً محدود شود.
محدودیت RAM در هاست به این معناست که هر حساب کاربری فقط میتواند مقدار مشخصی از حافظه سرور را در هنگام اجرای پردازشها استفاده کند.
محاسبه مصرف RAM فقط به حجم فایلهای سایت مربوط نیست. ممکن است یک سایت با فایلهای کم، حافظه زیادی مصرف کند و یک سایت بزرگتر مصرف بسیار کمتری داشته باشد.
عواملی که روی مصرف RAM تأثیر میگذارند عبارتاند از:
به دلیل پیچیدگی محاسبه دقیق مصرف حافظه، مقدار دقیق منابع داخلی سرور قابل پیشبینی نیست و بهتر است سایت به شکلی بهینه طراحی شود تا همیشه در محدوده مناسب فعالیت کند.
هر بار که یک کاربر وارد سایت میشود، ممکن است اسکریپتهای PHP اجرا شوند. اگر تعداد بازدیدها زیاد باشد، درخواستهای همزمان بیشتری ایجاد شده و مصرف RAM افزایش پیدا میکند.
برخی اسکریپتها برای تولید یک صفحه، اطلاعات زیادی را در حافظه بارگذاری میکنند. این موضوع باعث میشود اجرای هر درخواست به RAM بیشتری نیاز داشته باشد.
افزونههای متعدد، مخصوصاً افزونههایی که پردازشهای سنگین انجام میدهند، میتوانند مصرف حافظه سایت را افزایش دهند.
هر افزونه یا کدی که روی سایت فعال است، ممکن است هنگام بارگذاری صفحات اجرا شود. حذف موارد غیرضروری باعث کاهش پردازشها و مصرف کمتر RAM خواهد شد.
فعال کردن کش باعث میشود اطلاعاتی که قبلاً پردازش شدهاند دوباره از ابتدا تولید نشوند. با استفاده از کش:
اطلاعات اضافی در دیتابیس، درخواستهای غیرضروری و جداول حجیم میتوانند باعث افزایش مصرف منابع شوند. پاکسازی و بهینهسازی پایگاه داده میتواند عملکرد سایت را بهتر کند.
قالبها و افزونههای سنگین معمولاً امکانات زیادی دارند، اما ممکن است منابع زیادی مصرف کنند. انتخاب ابزارهای بهینه تأثیر زیادی روی مصرف RAM دارد.
یکی از منابع مهم در میزبانی وب، IO (Input/Output) یا همان میزان خواندن و نوشتن اطلاعات روی فضای ذخیرهسازی سرور است. این محدودیت برای جلوگیری از ایجاد فشار بیش از حد روی دیسک سرور و حفظ سرعت و پایداری تمام وبسایتها اعمال میشود.
مصرف IO میزان ارتباط اسکریپتهای سایت با فضای ذخیرهسازی هاست را نشان میدهد. هر زمان که یک برنامه یا کد PHP اطلاعاتی را روی سرور ذخیره کند یا اطلاعاتی را از روی دیسک بخواند، از منابع IO استفاده میشود. برای مثال:
تمام این عملیات باعث استفاده از منابع ورودی و خروجی سرور میشوند. اما فعالیتهایی مانند موارد زیر معمولاً در مصرف IO پردازشهای PHP حساب نمیشوند:
محدودیت IO بر اساس میزان فشار ایجادشده روی سیستم ذخیرهسازی محاسبه میشود. در صورتی که یک حساب کاربری برای مدت مشخصی حجم زیادی از عملیات خواندن و نوشتن انجام دهد، ممکن است به محدودیت IO برسد. در این حالت:
هدف این محدودیت، جلوگیری از کاهش سرعت سرور برای سایر کاربران است.
مقدار دقیق منابع IO قابل استفاده برای هر حساب ممکن است به دلایل فنی اعلام نشود، اما معمولاً میتوانید وضعیت مصرف منابع خود را از طریق بخش آمار و گزارشهای پنل مدیریت بررسی کنید. با بررسی این اطلاعات میتوانید متوجه شوید که آیا سایت شما به منابع بیشتری نیاز دارد یا خیر.
برخلاف برخی منابع دیگر، مصرف IO معمولاً به صورت کلی برای کل حساب کاربری بررسی میشود و همیشه مشخص نیست کدام فایل یا افزونه دقیقاً باعث افزایش مصرف شده است. برای پیدا کردن عامل اصلی، باید عملکرد بخشهای مختلف سایت را بررسی کنید. برخی روشهای مفید:
افزونههای پشتیبانگیری یکی از رایجترین دلایل افزایش مصرف IO هستند. این افزونهها معمولاً تعداد زیادی فایل را بررسی میکنند، فایلهای حجیم ایجاد میکنند و اطلاعات زیادی را فشرده یا منتقل میکنند. به همین دلیل استفاده مداوم از آنها روی هاستهای دارای محدودیت منابع میتواند باعث افزایش مصرف IO شود.
افزونهها یا اسکریپتهایی که برای انتقال سایت، وارد کردن اطلاعات یا نصب بستههای آماده استفاده میشوند، معمولاً تعداد زیادی فایل را پردازش میکنند و ممکن است مصرف IO را افزایش دهند.
هر برنامهای که به طور مداوم فایل ایجاد، حذف یا ویرایش کند، میتواند باعث افزایش استفاده از IO شود.
محدودیت Hit، فرآیند ورود و خطای PHP/Apache
یکی از محدودیتهای مهم در سرویسهای هاست رایگان، محدودیت استفاده از بازدیدها (Hits) است. بسیاری از کاربران این مقدار را با تعداد بازدیدکنندگان یا بازدید صفحات اشتباه میگیرند، در حالی که مفهوم آن کاملاً متفاوت است. در این مقاله توضیح میدهیم که Hit چیست، چگونه محاسبه میشود، چرا ممکن است مقدار آن افزایش پیدا کند و چگونه میتوانید مصرف آن را کاهش دهید.
هر بار که مرورگر کاربر یک فایل از سایت شما درخواست میکند، یک Hit ثبت میشود. این فایل میتواند شامل موارد زیر باشد:
برای مثال، فرض کنید یک صفحه سایت شامل موارد زیر باشد:
وقتی کاربر این صفحه را باز میکند، مرورگر برای دریافت این فایلها در مجموع ۱۱ درخواست (Hit) ارسال میکند. همچنین درخواستهایی که در پسزمینه توسط افزونهها، چت آنلاین یا اسکریپتهای سایت ایجاد میشوند نیز در تعداد Hit محاسبه خواهند شد.
در هاست رایگان VCP، برای حفظ پایداری سرورها یک سقف مشخص برای تعداد درخواستهای روزانه در نظر گرفته میشود. اگر تعداد درخواستهای سایت شما از حد مجاز عبور کند:
این محدودیت برای جلوگیری از مصرف بیش از حد منابع توسط یک سایت و حفظ کیفیت سرویس برای تمام کاربران اعمال میشود.
ابزارهایی مانند گوگل آنالیتیکس برای بررسی رفتار کاربران بسیار مفید هستند و اطلاعاتی مانند تعداد بازدیدکنندگان، صفحات مشاهدهشده، مدت زمان حضور کاربران و مسیر حرکت کاربران در سایت را نمایش میدهند. اما این ابزارها فقط زمانی اطلاعات ثبت میکنند که کد JavaScript مربوط به آنها در مرورگر کاربر اجرا شود.
به همین دلیل ممکن است برخی مرورگرها به دلیل استفاده از افزونههای مسدودکننده ردیابی، کدهای آماری را اجرا نکنند یا ابزارهای آماری فقط بازدید صفحات را اندازهگیری کنند و تمام درخواستهای فایلها را ثبت نکنند. بنابراین طبیعی است که تعداد Hit ثبتشده در هاست بیشتر از آمار نمایش دادهشده در ابزارهای تحلیل سایت باشد.
اگر سایت شما بازدیدکننده زیادی داشته باشد، تعداد درخواستهای سرور نیز افزایش پیدا میکند.
صفحهای که شامل تعداد زیادی تصویر، فایل CSS، JavaScript و فونت باشد، برای نمایش کامل درخواستهای بیشتری ارسال میکند.
گاهی رباتها یا حملات خودکار مانند حملات DDoS باعث افزایش شدید درخواستها به سایت میشوند.
در سرویسهای هاست رایگان، امکان افزایش دستی این محدودیت وجود ندارد. تمام کاربران از قوانین یکسان استفاده میکنند تا منابع سرور به شکل عادلانه تقسیم شود. اگر سایت شما رشد کرده، بازدید زیادی دارد یا تعداد درخواستهای آن بالا است، بهتر است از یک سرویس هاست حرفهایتر استفاده کنید.
یکی از محدودیتهایی که در سرویسهای میزبانی وب برای کنترل مصرف منابع وجود دارد، محدودیت فرآیند ورود (Entry Process یا EP) است. این محدودیت مشخص میکند که یک حساب هاست در یک لحظه چه تعداد درخواست فعال را میتواند پردازش کند.
هر زمانی که کاربری یک آدرس از وبسایت شما را باز میکند، سرور باید یک فرآیند جدید برای پردازش درخواست ایجاد کند. این فرآیند وظایفی مانند موارد زیر را انجام میدهد:
پس از اینکه پاسخ آماده شد، فرآیند پایان پیدا میکند و منابع آزاد میشوند.
برای جلوگیری از فشار ناگهانی روی سرورها، تعداد فرآیندهای همزمان هر حساب هاست محدود میشود. اگر تعداد درخواستهای همزمان بیشتر از ظرفیت تعیینشده باشد، سرور دیگر نمیتواند فرآیند جدیدی برای حساب شما ایجاد کند. در این حالت:
در واقع، افزایش خطاهای Entry Process معمولاً نشاندهنده این است که سایت شما در یک بازه کوتاه با حجم زیادی از درخواستها روبهرو شده یا پردازش صفحات بیش از حد طول میکشد.
اگر تعداد زیادی کاربر در یک زمان کوتاه وارد سایت شوند، تعداد درخواستهای همزمان افزایش پیدا میکند و ممکن است ظرفیت پردازش هاست پر شود.
اسکریپتهایی که زمان زیادی برای اجرا نیاز دارند، فرآیند ورود را برای مدت بیشتری اشغال میکنند. برخی عوامل رایج: افزونههای سنگین، کوئریهای کند دیتابیس، اسکریپتهای بهینهنشده و عملیات پردازشی بزرگ.
برخی سایتها به صورت مداوم درخواستهایی در پسزمینه ارسال میکنند؛ مانند بررسی پیامهای جدید، بروزرسانی لحظهای محتوا، چت آنلاین و سیستم اعلانها. تعداد زیاد این درخواستها میتواند حتی با تعداد بازدیدکننده کم نیز باعث افزایش مصرف Entry Process شود.
فایلهایی مانند HTML، CSS، JavaScript و تصاویر نباید بدون دلیل با پسوند .php ذخیره شوند. هر درخواست به فایل PHP باعث ایجاد یک فرآیند ورود میشود، حتی اگر داخل فایل هیچ کد PHP وجود نداشته باشد.
اگر سایت شما مرتباً در پسزمینه درخواست ارسال میکند، تعداد این درخواستها را کاهش دهید. برای مثال: فاصله زمانی بررسی پیامها را بیشتر کنید، درخواستهای AJAX غیرضروری را حذف کنید و قابلیتهای لحظهای غیرضروری را غیرفعال کنید.
برخی اقدامات برای کاهش زمان پردازش صفحات: حذف افزونههای اضافی، استفاده از سیستم کش، بهینهسازی دیتابیس، استفاده از قالبهای سبکتر و کاهش کدهای غیرضروری. این کارها باعث میشود هر فرآیند سریعتر پایان پیدا کند و منابع کمتری مصرف شود.
اگر سایت شما در بعضی زمانها باز نمیشود اما بعد از مدتی دوباره به حالت عادی برمیگردد، ممکن است مشکل مربوط به محدودیت فرآیند ورود باشد. بررسی موارد زیر میتواند کمککننده باشد:
در هاستهای رایگان، میزان منابع برای همه کاربران به صورت یکسان تعیین میشود و امکان افزایش دستی این مقدار وجود ندارد. اگر سایت شما رشد کرده و مرتباً با محدودیت فرآیند ورود مواجه میشود، استفاده از یک سرویس میزبانی قدرتمندتر میتواند راهکار مناسبی باشد.
گاهی ممکن است هنگام باز کردن وبسایت خود با پیامی مشابه زیر مواجه شوید:
این سایت یا صفحه از تمام فرآیندهای PHP/Apache مجاز برای حساب هاست استفاده کرده است.
این خطا به این معنی است که در یک لحظه تعداد درخواستهای در حال پردازش سایت شما بیشتر از ظرفیت تعیینشده هاست شده است.
هر زمان که کاربری یک آدرس از سایت شما را باز میکند، سرور باید یک فرآیند جدید برای پردازش آن درخواست ایجاد کند. این فرآیند وظایفی مانند موارد زیر را انجام میدهد:
پس از کامل شدن درخواست، فرآیند مربوطه بسته میشود و منابع دوباره آزاد میشوند.
چند نکته مهم درباره فرآیندهای PHP/Apache وجود دارد:
دلیل اصلی این خطا ساده است: تعداد درخواستهای همزمان سایت شما بیشتر از ظرفیت پردازش هاست شده است. عوامل مختلفی میتوانند باعث این اتفاق شوند:
اگر یک صفحه شامل تعداد زیادی فایل باشد، مرورگر کاربر باید درخواستهای زیادی به سرور ارسال کند. این مشکل معمولاً در سایتهایی دیده میشود که دارای گالری تصاویر بزرگ، صفحات دارای تصاویر زیاد، فایلهای JavaScript متعدد یا فایلهای CSS فراوان هستند.
راهکارهای مناسب: کاهش تعداد تصاویر در هر صفحه، استفاده از بارگذاری تنبل (Lazy Loading)، فشردهسازی فایلها و انتقال فایلهای حجیم به سرویسهای مخصوص ذخیرهسازی.
اگر تعداد زیادی بازدیدکننده در یک زمان کوتاه وارد سایت شوند، تعداد درخواستهای فعال افزایش پیدا میکند. این موضوع مخصوصاً برای سایتهایی که صفحات PHP پویا دارند، باعث مصرف سریع فرآیندهای سرور میشود.
مدت زمان اجرای کدها تأثیر زیادی روی مصرف فرآیند دارد. برای مثال اگر یک صفحه در ۱ ثانیه پردازش شود، فرآیند سریع آزاد میشود. اگر همان صفحه ۱۰ ثانیه طول بکشد، فرآیند مدت بیشتری اشغال خواهند ماند. بنابراین کدهای کند باعث میشوند تعداد فرآیندهای مورد استفاده افزایش پیدا کند.
دلایل رایج کندی: افزونههای سنگین، کوئریهای کند دیتابیس، قالبهای غیربهینه و اسکریپتهای اضافی.
فایلهایی مانند HTML، CSS، JavaScript و تصاویر نباید بدون دلیل با پسوند .php ذخیره شوند. حتی اگر فایل PHP شامل هیچ کدی نباشد، درخواست آن باعث ایجاد یک فرآیند پردازشی میشود.
برخی سایتها در پسزمینه مرتباً درخواست ارسال میکنند، مانند بررسی پیامهای جدید، بروزرسانی لحظهای محتوا، سیستم چت و اعلانها. تعداد زیاد این درخواستها میتواند بدون داشتن بازدیدکننده زیاد، منابع هاست را مصرف کند.
هرچه یک اسکریپت سریعتر اجرا شود، فرآیند زودتر آزاد میشود. برای بهینهسازی: افزونههای غیرضروری را حذف کنید، کدهای اضافی را کاهش دهید، از سیستم کش استفاده کنید و دیتابیس را بهینه نگه دارید.
هر صفحهای که باز میشود ممکن است دهها درخواست برای دریافت فایلهای مختلف ایجاد کند. برای کاهش آن: فایلهای CSS و JavaScript را بهینه کنید، تصاویر را فشرده کنید، تعداد فایلهای غیرضروری را کم کنید و صفحات بسیار سنگین را تقسیم کنید.
در سرویسهای هاست رایگان، منابع بین کاربران به صورت برابر مدیریت میشوند و امکان افزایش دستی محدودیت فرآیندها وجود ندارد. اگر سایت شما رشد کرده و مرتباً با این خطا مواجه میشود، بهتر است از یک سرویس میزبانی قدرتمندتر استفاده کنید.
محدودیت Inode و بارگذاری بیش از حد MySQL
در پنل مدیریت هاست، معمولاً بخشی برای نمایش میزان استفاده از Inode وجود دارد که تعداد فایلها و پوشههای موجود در حساب میزبانی شما را نشان میدهد. اگر مقدار مصرف Inode شما زیاد است یا به سقف مجاز نزدیک شدهاید، جای نگرانی نیست. بسیاری از وبسایتها، مخصوصاً سایتهایی که با سیستمهای مدیریت محتوا مانند وردپرس ساخته شدهاند، به دلیل داشتن افزونهها، قالبها و فایلهای متعدد، تعداد زیادی Inode مصرف میکنند.
استفاده از این مقدار برای سایتهایی که شامل موارد زیر هستند طبیعی است:
زمانی که مصرف Inode شما به حدود ۸۰ درصد رسید، بهتر است بررسی فایلهای اضافی را شروع کنید تا قبل از رسیدن به محدودیت، مشکل را برطرف کنید.
در این مرحله بهتر است سریعتر اقدام کنید و فایلهای غیرضروری را حذف کنید، زیرا نزدیک شدن به سقف Inode میتواند باعث ایجاد محدودیت در مدیریت سایت شود.
وقتی تعداد فایلهای حساب هاست شما به حداکثر مقدار مجاز برسد، دیگر امکان ایجاد فایل جدید وجود نخواهد داشت. وبسایت شما معمولاً همچنان برای بازدیدکنندگان باز میشود، اما ممکن است در بخشهایی مانند موارد زیر با مشکل مواجه شوید:
به همین دلیل بهتر است قبل از رسیدن به سقف، مدیریت فایلهای هاست را انجام دهید.
به زبان ساده، هر فایل یا پوشهای که روی هاست شما وجود دارد یک Inode محسوب میشود. مواردی که در محاسبه Inode حساب میشوند شامل:
اما مواردی مانند دیتابیسهای MySQL و اطلاعات ایمیلها معمولاً جزو تعداد Inode فایلهای هاست محاسبه نمیشوند.
اگر قبلاً دامنه یا پروژهای روی هاست خود داشتهاید و دیگر استفاده نمیکنید، ممکن است فایلهای آن همچنان روی هاست باقی مانده باشند. پوشههای مربوط به سایتهای قدیمی را بررسی کرده و موارد غیرضروری را حذف کنید.
افزونهها و قالبهایی که فقط نصب شدهاند اما استفاده نمیشوند، همچنان تعداد زیادی فایل ایجاد میکنند. حتی افزونهها و قالبهای غیرفعال نیز در مصرف Inode تأثیر دارند. بهتر است مواردی که نیاز ندارید را کاملاً حذف کنید.
بسیاری از کاربران فایلهای Backup قدیمی را روی هاست نگه میدارند. فایلهایی مانند نسخههای قدیمی سایت، فایلهای ZIP پشتیبان و بکاپهای تکراری میتوانند تعداد زیادی فایل و فضای هاست را اشغال کنند.
اگر سایت شما شامل تعداد زیادی فایل دانلودی، تصویر یا فایل رسانهای است، بهتر است آنها را روی سرویسهای مخصوص ذخیره فایل قرار دهید. این کار علاوه بر کاهش مصرف Inode، باعث افزایش سرعت سایت نیز میشود.
اگر چندین سایت را روی یک حساب میزبانی نگهداری میکنید، میتوانید برخی از آنها را به حسابهای جداگانه منتقل کنید. این کار باعث میشود تعداد فایلها بین چند حساب تقسیم شود و مدیریت منابع آسانتر شود.
مقدار نمایش داده شده برای Inode معمولاً لحظهای نیست. پس از حذف تعداد زیادی فایل، ممکن است بلافاصله کاهش مقدار مصرف را مشاهده نکنید. سیستم پس از مدتی دوباره فایلهای موجود را بررسی کرده و مقدار جدید را نمایش میدهد. بنابراین اگر فایلهایی را حذف کردهاید، کمی صبر کنید تا اطلاعات جدید در پنل هاست نمایش داده شود.
بسیاری از وبسایتهای امروزی برای ذخیره و مدیریت اطلاعات پویا مانند نوشتهها، کاربران، محصولات، سفارشها و تنظیمات سایت از پایگاه داده MySQL استفاده میکنند. پایگاه داده یکی از مهمترین بخشهای یک وبسایت داینامیک است، اما اگر درخواستهای زیادی به آن ارسال شود یا کوئریها بهینه نباشند، ممکن است باعث افزایش فشار روی سرور و کاهش سرعت سایت شوند.
پایگاه داده MySQL وظیفه ذخیره و پردازش اطلاعات سایت را بر عهده دارد. برای مثال در یک سایت وردپرسی، اطلاعاتی مانند نوشتهها و برگهها، اطلاعات کاربران، تنظیمات قالب و افزونهها، دیدگاهها و محصولات فروشگاه در پایگاه داده ذخیره میشوند.
هر زمان که کاربری صفحهای را باز میکند، سایت معمولاً چندین درخواست به MySQL ارسال میکند تا اطلاعات مورد نیاز را دریافت کرده و صفحه را نمایش دهد. اگر تعداد این درخواستها بیش از ظرفیت پردازش سرور باشد، فشار زیادی به پایگاه داده وارد میشود و ممکن است سرعت سایت کاهش پیدا کند.
برای جلوگیری از این مشکل، میزان فشار واردشده به سرورهای پایگاه داده بررسی میشود. اگر یک حساب کاربری باعث مصرف غیرعادی منابع MySQL شود، ممکن است دسترسی آن به صورت موقت محدود شود تا عملکرد سایر سایتها تحت تأثیر قرار نگیرد.
هر بازدیدکننده ممکن است چندین درخواست به پایگاه داده ارسال کند. در سایتهایی که بازدید بالایی دارند، تعداد زیاد درخواستها میتواند باعث افزایش مصرف MySQL شود.
برخی سایتها برای نمایش هر صفحه، تعداد زیادی درخواست به دیتابیس ارسال میکنند. برای مثال افزونههای متعدد وردپرس، سیستمهای فروشگاهی، انجمنها و اسکریپتهای مدیریت محتوا ممکن است تعداد زیادی کوئری در هر بار باز شدن صفحه اجرا کنند.
برخی درخواستهای MySQL به دلیل ساختار نامناسب، پردازش زیادی نیاز دارند. نمونههایی از کوئریهای سنگین: جستجو در حجم زیادی از اطلاعات، استفاده نکردن از ایندکسها، پردازش همزمان دادههای زیاد و کوئریهای پیچیده با چندین اتصال داخلی. این موارد باعث میشوند سرور زمان بیشتری برای پاسخگویی نیاز داشته باشد.
هر افزونه یا بخش اضافی سایت ممکن است درخواستهای جدیدی به دیتابیس ارسال کند. حذف مواردی که استفاده نمیشوند میتواند تعداد کوئریها را کاهش دهد، سرعت سایت را افزایش دهد و مصرف منابع سرور را کمتر کند.
کش یکی از بهترین روشها برای کاهش فشار روی MySQL است. با فعال کردن کش، اطلاعاتی که زیاد استفاده میشوند ذخیره میشوند و سایت مجبور نیست برای هر درخواست دوباره آنها را از پایگاه داده دریافت کند. مزایای کش:
بهتر است برای هر درخواست فقط یک اتصال به پایگاه داده ایجاد کنید و همان اتصال را برای اجرای چندین کوئری استفاده کنید. ایجاد اتصالهای متعدد برای هر کوئری باعث مصرف بیشتر منابع میشود.
سرورهای میزبانی وب برای اجرای عملیات معمول سایتها طراحی شدهاند، نه پردازشهای بسیار سنگین. از اجرای مداوم موارد زیر خودداری کنید: گزارشگیریهای حجیم، تحلیل تعداد زیادی داده، انتقال حجم بالای اطلاعات و پردازشهای طولانی.
ابزار EXPLAIN در MySQL کمک میکند بررسی کنید یک کوئری چگونه اجرا میشود. با استفاده از آن میتوانید متوجه شوید: آیا جدولها به درستی ایندکس شدهاند؟ آیا تعداد زیادی رکورد بدون نیاز بررسی میشوند؟ آیا ساختار کوئری نیاز به تغییر دارد؟ بهینهسازی کوئریها میتواند تأثیر زیادی روی سرعت سایت داشته باشد.
در بسیاری از سیستمهای هاست اشتراکی، مصرف دیتابیس به صورت کلی برای کل حساب اندازهگیری میشود و همیشه مشخص نیست دقیقاً کدام فایل یا افزونه باعث افزایش مصرف شده است. برای پیدا کردن مشکل میتوانید:
در سیستمهای مدیریت محتوا مانند وردپرس، معمولاً افزونههای زیاد یا قالبهای سنگین از عوامل اصلی افزایش مصرف MySQL هستند. برای اطلاعات بیشتر به آموزش وردپرس مراجعه کنید.
پاسخ به سوالات رایج درباره محدودیتهای منصفانه
Hit تعداد درخواست فایلها به سرور است، در حالی که بازدیدکننده یک کاربر واقعی است. یک کاربر ممکن است چندین Hit ایجاد کند.
با حذف افزونههای غیرضروری، استفاده از کش، بهینهسازی کوئریهای دیتابیس و انتخاب قالبهای سبک. برای اطلاعات بیشتر آموزش وردپرس را ببینید.
Inode تعداد فایلها و پوشههای هاست است. هر فایل یا پوشه یک Inode مصرف میکند.
این خطا زمانی رخ میدهد که تعداد درخواستهای همزمان سایت از ظرفیت هاست عبور کرده باشد.
با کاهش عملیات بکاپگیری روی هاست، حذف افزونههای سنگین و استفاده از سیستم کش.
در هاست رایگان امکان افزایش دستی محدودیتها وجود ندارد. برای منابع بیشتر باید از سرویس حرفهای استفاده کرد.
تمامی حقوق مادی و معنوی این سایت متعلق به هاست رایگان VCP است. © ۱۴۰۵
برای دریافت هاست رایگان و مطالعه مقالات آموزشی همین حالا اقدام کنید.