وضعیت سرورها

وبــلاگ

وضعیت سرورها
  • رفع مشکل استفاده بیش حد منابع و CPU در سایت ها

    شریفی پویا پنج شنبه ۱۲ مرداد ۱۳۹۶ آموزش , مقالات

    واحد پردازش مرکزی یا CPU   تمام وظایفی که از سمت سرور ارسال می شود را انجام میدهد.  CPU معمولا درخواست های مربوط به اجرای اسکریپت های PHP را پردازش می کند، کوئری های MySQL را اجرا می کند، ایمیل ارسال می کند و غیره… منابعی که روی یک سرور وجود دارند محدود هستند، بنابراین همواره روی مصرف CPU و  دیسک در سطوح مشکل ساز نظارت وجود دارد. در حالی که مصرف بالای کوتاه مدت از CPU طبیعی است،اما  استفاده زیاد به طور مداوم  از CPU  ممکن است نشان دهنده وجود  یک مشکل باشد. میزان استفاده از منابع سرور  با توجه به نوع هاستی که دارید، از نظر میزانی که به اشتراک گذاشته شده باشد، سرور مجازی  یا سرور اختصاصی باشد، کاملا متفاوت است.

     

    استفاده بیش از حد منابع

    مصرف بالای منابع چیست؟

    در مقایسه با فعالیت های CPU دسکتاپ، سطح پردازش CPU برای وب سایت باید حداقل باشد و وب سایت باید در کسری از ثانیه از زمان پردازنده اجرا شود. یک CPU  به اشتراک گذاشته شده در سرور، حتی در زمانی که تعداد کمی از وب سایت های روی سرور شروع به اجرای فعالیت های پرمصرف (از لحاظ پردازنده) بکنند ، با مشکل مواجه خواهد شد. این فعالیت های زیاد  نیاز به قدرت پردازش بیشتر دارند، و منجر به افزایش زمان آماده شدن و  صف بندی فرآیند ها برای پردازنده بر روی هاست می شوند.  هر سرور دارای تعداد ثابتی هسته CPU است. بنابراین، زمانی که شما از فضای هاست اشتراکی استفاده می کنید، زمان پردازشی که  هر  کاربر می تواند از  CPU درخواست کند، محدود می شود. در محیط یک هاست اشتراکی، هنگامی که یک کاربر  مقدار بیش از حد CPU را نیاز دارد، می تواند باعث تاخیر در رسیدگی به درخواست های وب سایت های دیگر کاربران شود. آگاهی نسبت به  تأثیر وب سایت شما در CPU سرور می تواند به جلوگیری از هر گونه تعلیق احتمالی  وب سایت ها به علت استفاده بیش از حد مجاز از منابع کمک کند.

     

    چه مواردی ممکن است منجر به مصرف بالای CPU شود؟

    اگر سایت شما ترافیک زیادی داشته باشد ممکن است منجر به استفاده بیش از حد از پردازنده شود، اما در اکثر موارد عوامل دیگری برای آن وجود دارد. لیست زیر برخی از مسائل مربوط به نرم افزارهای  رایج، که می تواند باعث افزایش مصرف CPU شود، را شرح  می دهد:

     

    • اسکریپت های ناکارآمد و افزودن بیش از حد افزونه / ماژول / پلاگین
    • چندین وب سایت وردپرس روی یک هاست
    • cronjob ها یا وظایف برنامه ریزی شده متناوب
    • وب سایت هک شده
    • مطالب اسپم در بخش نظرات سایت
    • ردیابی های کنترل نشده موتور جستجو و فعالیت های ربات های خودکار
    • حجم زیاد ترافیک وب

    – اسکریپت های ناکارآمد و افزودن بیش از حد افزونه / ماژول / پلاگین

    کد کامپیوتر یک مجموعه از دستورالعمل های ماشین است که  به ترتیب به منظور دریافت نتایج یکسان مورد انتظار دوباره و دوباره اجرا می شود. به طور کلی برای میزبانی وب، مجموعه ای از دستورالعمل ها در یک زبان برنامه نویسی مانند PHP وجود دارد. اگر اسکریپت ها در وب سایت شما به طور موثر  و سفارشی کد گذاری شده باشند، معمولا باید زمان اجرای زیر یک ثانیه داشته باشند. رفتار همه ی وب سایت ها ، از لحاظ استفاده از حافظه یکسان نیست، همانند  بعضی از اسکریپت ها که  دارای بهینه سازی ها و افزونه هایی در داخل خود هستند مثل امکان کش کردن در جوملا. بسته به سطح ترافیکی که سایت شما دریافت می کند، حتی یک افزونه یا اسکریپت فعال که استفاده شدیدی از منابع دارد یا از لحاظ کد نویسی ضعیف است، نیز می توان فشار زیادی را به منابع سرور وارد کند. بنابراین بهتر است تعداد  ماژول ها ، افزونه ها و پلاگین هایی که استفاده می کنید را محدود کنید و آنهایی که دیگر فعال نیستند را  حذف کنید. یک اسکریپت / پلاگین / ماژول قدیمی و به روز نشده اغلب به مشکل سوء استفاده از منابع دامن می زند، بنابراین تمام اسکریپت های نصب شده از جمله هر گونه افزودنی های شخص ثالث باید به روز شود. توسعه دهندگان نیز باید به طور مداوم اسکریپت های خود را بهبود بخشیده و حفره های امنیتی آن  را به منظور افزایش کارایی پاکسازی کنند.

    با وجود این اقدامات، اگر مشکلات مربوط به استفاده از منابع همچنان ادامه یابد، اسکریپت مشکوک باید جدا شود و با روش های  تنظیم مجدد، غیرفعال کردن یا جایگزینی آن با یک اسکریپت کارا، مشکل برطرف گردد. پیاده سازی کل صفحات PHP در محیط های XAMPP، WAMP و EasyPHP می تواند اسکریپت های خاص و یا توابع جداگانه ای که عمده زمان مصرف را به خود اختصاص می دهند، نمایش می دهد. ممکن است با استفاده از پلاگین P3 Profiler، افزونه ی مشکل زا را شناسایی کرده و با جایگزینی بهتر، مسئله حل شود.

    – وجود چندین وب سایت ورد پرس بر روی یک هاست

    اکثر سیستم های مدیریت محتوای پویا، مانند وردپرس، از یک پایگاه داده یا دیتابیس برای ذخیره اطلاعات استفاده می کنند، به طوری که هر بار که یک بازدید کننده به سایت می آید، اسکریپت های PHP با پایگاه داده تعامل برقرار می کنند تا این اطلاعات را برای ارسال  به مرورگر فراخوانی کنند . در فضای هاست اشتراکی، اگر سایت شما ترافیک مناسبی را به دست آورد، استفاده از سیستم پیش فرض کنونی وردپرس جهت بازسازی یک صفحه HTML یکسان به ازای هر درخواست بازدید کننده بسیار ناکارآمد خواهد بود.

    اگر کاربران وب سایت ورد پرس شما در سطح پیشرفته هستند ، توصیه می شود از پلاگین ذخیره سازی، مانند W3 Total Cache استفاده کنید. و برای کاربران مبتدی وردپرس، پلاگین WP Super Cache  را در نظر بگیرید  و با این کار، بار روی منابع سرور را تا ۹۰٪ کاهش دهید. اگر چندین وب سایت وردپرس در یک سرور اشتراکی دارید، جهت اجرای کارآمد وب سایت تحت یک اکانت میزبانی اشتراکی، نیاز به RAM و CPU بیشتری خواهید داشت.  بنابراین به فکر تهیه فضای هاست اضافه برای برخی از بلاگ های خود باشید.

    – cron job ها یا وظایف برنامه ریزی شده متناوب

    یک cron job به شما اجازه می دهد یک کار برنامه ریزی شده برای وب سایت خود را بدون نیاز به حضور در زمان شروع آن تنظیم کنید. اجرای cron job ها بسیار کارآمد و پرکاربرد به طور متناوب می تواند برای عملکرد سرور شما مشکل ساز باشد.

    بهتر است از cron job ها فقط در مواردی که لازم است استفاده کنید. اگر وب سایت شما روی یک سرور اشتراکی میزبانی می شود ، کوتاه ترین فاصله برای اجرای  cron job ها  حداقل باید ۱۵ دقیقه باشد.

    اگرهر  پشتیبان گیری پایگاه داده یا راه اندازی سایر کارهای تعمیر و نگهداری موجب افزایش مصرف CPU شود، می توانید آن ها را موقتا غیر فعال کنید. همچنین می توانید فعالیت ها را در قالب  cron job به صورت خودکار و برنامه ریزی شده انجام داد تا  میزان مصرف کاهش یابد. برای مثال، وردپرس اسکریپت برنامه ریزی خاص خود را دارد و بنابراین غیرفعال کردن  wp-cron.php  به کاهش استفاده کلی از منابع کمک می کند.

    – وب سایت هک شده

    یک وب سایت هک شده، به علت فعالیت های چندگانه ی خودکار و اضافه ای که عموما در هر بار تلاش برای بارگذاری صفحه مجبور است انجام دهد، اغلب به استفاده  غیر معمول از منابع در اکانت شما و اعمال بار اضافه بر روی  CPU منجر می شود. هدف اغلب کاربران خرابکاری که سعی در هک کردن وب سایت شما دارند این است که  کاربران را به یک سایت خطرناک هدایت کنند یا از وب سایت شما برای ارسال هرزنامه استفاده کنند.

    علاوه بر استفاده از رمز عبور ایمن و بروز نگه داشتن تمام نرم افزارها، شما باید یک پلاگین، مانند Sucuri، برای اسکن سایت خود و هشدار  احتمال هک شدن، نصب کنید.کار منطقی و عاقلانه این است که  یک نسخه پشتیبان کامل از اکانت خود مربوط به ۳۰ روز گذشته، برای محافظت از سایت خود ذخیره داشته باشید، تا در صورت بروز مشکل به راحتی بتوانید با استفاده از آن وب سایت خود را به نسخه قبل از هک شدن برگردانید. اگر وبسایت شما هک شده باشد، باید توسط یک متخصص، به صورت دستی بررسی شود، ممکن است آن فرد مجبور به پاکسازی کد htaccess یا حمله تزریق کد شود تا هکرها را از منحرف کردن ترافیک وب سایت شما به سمت وب سایت دیگر متوقف کند.

    – مطالب اسپم در بخش نظرات سایت

    وبسایت شما برای کل جامعه دیجیتال باز است و معمولا بخشی برای بازدیدکنندگان وجود دارد که نظر خود را در وب سایت شما قرار دهند. متاسفانه بخش  نظرات وب سایت ها  و همچنین انجمن ها به  مهاجمین این اجازه را می دهد  که صفحات سایت را با  نظرات هرز و جعلی و مخرب پر کنند  و تلاش کنند تا مردم را به وب سایت خودشان منتقل کنند. نظرات اسپم  در انجمن یا وبلاگ وردپرس شما می تواند در میزان  استفاده از CPU تاثیر بگذارد چون اندازه پایگاه داده یا دیتابیس شما را افزایش می دهد، سرعت بارگیری را کاهش می دهد، و حتی اگر این نظرات را حذف نکنید می تواند به طور بالقوه  بر رتبه سایت شما در موتورهای  جستجو  تاثیر گذار باشد.

    اکانت خود را برای نصب های قدیمی که می توانید آنها را حذف کنید، یا برای نظرات خودکار و ارسال هرزنامه بررسی کنید. شما می توانید بخش نظرات سایت را  غیر فعال کنید اما این راه حل ایده آل نیست. به جای اینکه کلا بخش نظرات سایت را غیر فعال کنید بهتر است سیستم پیش فرض نظردهی وردپرس را غیرفعال کرده و به جای آن از سیستم نظردهی دیگری مثل Disqus استفاده کنید. بهترین راه برای از بین بردن نظرات اسپم استفاده از  CAPTCHA برای وب سایت است تا ایجاد اکانت های جعلی برای ربات های خودکار  بسیار سخت و غیر ممکن شود.

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

    ربات های خودکار موتورهای جستجو گوناگون مانند Google و Bing در اینترنت بررسی می کنند تا برای انتشار سریعتر اطلاعات، محتوای جدید را پیدا و شاخص گذاری کنند. حتی یک ربات خودکار بازدید کننده  وب سایت شما می تواند به اندازه  صدها نفر بازدیدکننده واقعی منابع سرور را مصرف کند. ربات های خودکار بازدید کننده، از صفحه اول وب سایت نفوذ می کنند و کم کم  به تک تک  لینکهای  سایت شما جهت قرار دادن محتوا روی سایت دست می یابند. این مساله به میزان قابل توجهی به مصرف منابع سرور  منجر می شود که باعث می شود اکانت شما به حالت تعلیق درآید.

    شما می توانید ربات های قانون شکن را با پیاده سازی یک فایل قوانین استاندارد شده به نام robots.txt ، با تنظیم تاخیر ردیابی ۳۰ ثانیه ای یا بیشتر ، کنترل کنید. اما خبر بد این است که همه رباتهای خودکار با قوانین robots.txt شما منطبق نیستند. بنابراین، شما باید دسترسی این ربات های نا خواسته را به وب سایت خود با استفاده ازفایل htaccess  مسدود کنید، و جلو استفاده آنها را از منابع اکانت خود بگیرید.

    – حجم زیاد ترافیک وب

    ترافیک به هر یک از دلایل زیر می تواند رخ دهد:

    • هنگامی که ربات های خودکار سایت شما را ردیابی می کنند.
    • هنگامی که وب سایت شما در بخش نظرات، اسپم داشته باشد .
    • هنگامی که فعالیت های مخرب دیگری  در حال انجام باشد.
    • هنگامی که در مدت کوتاهی کل ترافیک اختصاص داده شده به وبسایت  استفاده شود.

    اگر وبسایت شما محبوب باشد، ممکن است  مرتبا با  مصرف CPU بالا مواجه شوید  و  احتمالا باید به ارتقاء دادن اکانت یکی از مشتری ها از یک هاست اشتراکی به یک سرور اختصاصی اقدام کنید.  اگر تنها یک بار یک افزایش بار غیر منتظره ترافیک در سایت شما  رخ دهد، سرور میزبان شما  نیاز به منابع سیستمی  بیشتری برای رسیدگی به چنین حجم زیادی از ترافیک را دارد.  یک وب سایت کاملا ایستا با تنها فایلهای HTML و تصاویر در استفاده از منابع مشترک سرور بسیار سبکتر از وب سایت های  پویای مبتنی بر جوملا، دروپال و یا وردپرس است.

    هنگامی که ترافیک وب شما افزایش می یابد، درخواست های وب سایت جدید نیاز به منابع سرور را افزایش می دهند. در این گونه مواقع شما این حق انتخاب را دارید که  اکانت خود را به(VPS سرور شخصی مجازی) یا سرور اختصاصی ارتقا دهید، تا بتوانید به منابع بیشتری دسترسی پیدا کنید.  رایج ترین روش ها برای بهینه سازی وب سایت شما هنگام داشتن  حجم بیشتری از ترافیک، استفاده از حافظه پنهان ( کش صفحه و کش مرورگر) برای کاهش اتصالات پایگاه داده تکراری و محدود کردن محتوای پویا مانند پلاگین ها و ماژول ها است.

    آیا میزبان وب شما مقصر است؟

    ممکن است استفاده  زیاد از CPU اشتباه شما نباشد و در واقع شرکت ارائه دهنده ی هاست شما مقصر است که منابع لازم را برای تامین وب سایت هایی که میزبانی کرده است فراهم نمی کند. به خصوص  این مشکل ممکن است  برای سرور های هاست اشتراکی که وب سایت های زیادی را میزبانی می کنند و درصد کمی از زمان  CPU را روی هاست  خود با مبلغ پایین به مشتری ارائه می دهند برای حل هر گونه مسئله  ازین دست حتما  مواردی از قبیل محدودیت مصرف CPU و تنظیمات سخت افزاری مشترک  سرور را با میزبان سایت خود چک کنید.

    اکنون که شما نسبت به بعضی از مسائل مهم در استفاده از منابع سیستم آگاهی پیدا کردید، به راحتی می توانید آنها را برطرف کنید. اما اگر همچنان مشکلی در زمینه استفاده از منابع موجود در فضای میزبانی فعلی شما وجود داشته باشد، می توانید هاست خود را ارتقا دهید تا در اکانتتان محدودیت کمتری در  استفاده از منابع سرور داشته باشد یا اینکه ارائه دهنده هاست خود  را تغییر دهید.

    0

    برچسب ها :

با عضویت در خبرنامه شما را از آخرین تجربیات مان و مطالب تخصصی آگاه خواهیم کرد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *