بازگشت وجه تا ۷ روز پس از خرید، در صورت عدم رضایت از سرویسضمانت بازگشت وجه تا ۷ روز

جلوگیری از پر شدن CPU سرور

نویسنده:ارش اسدی

دسته بندی:

مشخصات مقاله

  • تاریخ انتشار

  • آخرین به روزرسانی

  • زمان مطالعه۵ دقیقه

  • دیدگاه هااولین نفر باشید

فهرست مطالب
  1. ۱جلوگیری از پر شدن CPU سرور مجازی
  2. ۲مقدمه
  3. ۳تشخیص دلایل پر شدن CPU
    1. استفاده از دستور top
    2. استفاده از htop
    3. دستور ps
  4. ۴متوقف کردن برنامه ها
    1. یافتن شناسه فرآیند (PID)
    2. متوقف کردن یک فرآیند
    3. کنترل اولویت فرآیندها
  5. ۵بهینه سازی سرور مجازی
    1. استفاده از حافظه مجازی (SWAP)
    2. بهینه سازی وب سرورها (Nginx/Apache)
    3. بهینه سازی دیتابیس ها (MySQL/PostgreSQL)
  6. ۶جلوگیری از DDoS با استفاده از iptables
    1. محدود کردن تعداد اتصال ها از یک IP
    2. محدود کردن تعداد درخواست ها از یک IP
    3. نتیجه گیری

جلوگیری از پر شدن CPU سرور مجازی

مقدمه

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

پر شدن CPU
پر شدن CPU

تشخیص دلایل پر شدن CPU

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

  1. استفاده از دستور top

    دستور top یکی از ابزارهای پیش فرض و قدرتمند در لینوکس است که به طور لحظه ای اطلاعات مربوط به مصرف منابع سیستم را به شما نمایش می دهد. این ابزار به ویژه برای شناسایی فرآیندهایی که بیشترین منابع CPU را مصرف می کنند مفید است. همچنین، این ابزار اطلاعاتی مانند میزان مصرف حافظه، مدت زمان اجرای هر فرآیند، و وضعیت پردازش ها را نمایش می دهد.برای اجرای دستور top کافی است وارد ترمینال شوید و دستور زیر را تایپ کنید:

    code
    top
    

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

  2. استفاده از htop

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

    code
    sudo apt install htop
    htop
    
  3. دستور ps

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

    code
    ps aux --sort=-%cpu | head -n 6
    

    این دستور به شما پنج فرآیند اول که بیشترین مصرف CPU را دارند، نشان می دهد.

متوقف کردن برنامه ها

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

  1. یافتن شناسه فرآیند (PID)

    برای متوقف کردن یک فرآیند، ابتدا باید شناسه فرآیند (PID) آن را پیدا کنید. این کار با استفاده از دستور ps انجام می شود:

    code
    ps aux | grep [نام فرآیند]
    
  2. متوقف کردن یک فرآیند

    بعد از شناسایی PID، برای متوقف کردن فرآیند، از دستور kill استفاده کنید:

    code
    kill [PID]
    

    اگر فرآیند متوقف نشد، از گزینه -9 برای اتمام فوری فرآیند استفاده کنید:

    code
    kill -9 [PID]
    
  3. کنترل اولویت فرآیندها

    یکی از روش های دیگر برای مدیریت فرآیندها، استفاده از ابزارهای nice و renice برای تنظیم اولویت اجرای فرآیندها است. این ابزارها به شما این امکان را می دهند که اولویت پردازشی یک فرآیند را کاهش دهید.

    • برای اجرای یک فرآیند با اولویت پایین تر از دستور nice استفاده کنید:
      code
      nice -n 10 [دستور فرآیند]
      
    • برای تغییر اولویت یک فرآیند در حال اجرا از دستور renice استفاده کنید:
      code
      renice -n 10 -p [PID]
      

بهینه سازی سرور مجازی

برای جلوگیری از پر شدن CPU و کاهش مصرف CPU ، می توان از چندین تکنیک و ابزار مختلف استفاده کرد:

  1. استفاده از حافظه مجازی (SWAP)

    حافظه SWAP به عنوان یک حافظه موقت برای زمانی که RAM سرور پر می شود، عمل می کند. اگر سرور شما به حافظه زیادی نیاز دارد، استفاده از SWAP می تواند به جلوگیری از پر شدن CPU و کاهش بار آن کمک کند.برای ایجاد فایل SWAP:

    code
    sudo fallocate -l 4G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
  2. بهینه سازی وب سرورها (Nginx/Apache)

    • تنظیمات KeepAlive: فعال سازی این گزینه برای کاهش تعداد اتصالات به سرور مفید است.
    • کش کردن و فشرده سازی: فعال کردن کش و فشرده سازی برای وب سرورها به کاهش مصرف CPU کمک می کند. برای Nginx، می توانید از فشرده سازی gzip استفاده کنید:
      code
      gzip on;
      
  3. بهینه سازی دیتابیس ها (MySQL/PostgreSQL)

    • ایندکس گذاری: در دیتابیس ها، ایندکس گذاری مناسب می تواند جستجوهای سریع تری را فراهم کند و به مصرف کمتر CPU منجر شود.
    • تنظیمات کش: استفاده از کش برای ذخیره سازی داده های موقت و کاهش درخواست های به پایگاه داده.

جلوگیری از DDoS با استفاده از iptables

حملات DDoS یکی از عوامل عمده پر شدن CPU در سرورها هستند. برای جلوگیری از این حملات، می توان از ابزار iptables استفاده کرد.

  1. محدود کردن تعداد اتصال ها از یک IP

    با استفاده از iptables، می توان تعداد اتصالات از یک IP خاص را محدود کرد:

    code
    sudo iptables -A INPUT -p tcp --syn --dport 80 -m limit --limit 1/s -j ACCEPT
    sudo iptables -A INPUT -p tcp --syn --dport 80 -j DROP
    
  2. محدود کردن تعداد درخواست ها از یک IP

    برای جلوگیری از حملات بر اساس تعداد زیاد درخواست ها از یک IP:

    code
    sudo iptables -A INPUT -p tcp --dport 80 -m recent --update --hitcount 100 --seconds 60 --name DEFAULT -j DROP
    

نتیجه گیری

با استفاده از ابزارهای مختلف مانند top، htop، ps و iptables، می توان به راحتی فرآیندهای پرمصرف را شناسایی، مدیریت، و بهینه سازی کرد. تنظیمات حافظه SWAP، بهینه سازی وب سرورها و دیتابیس ها، و محدود کردن اتصال های ناشناخته از IP ها، همگی تکنیک هایی هستند که به کاهش مصرف CPU و جلوگیری از پر شدن آن کمک می کنند. این اقدامات به شما کمک خواهند کرد تا سرور خود را به طور بهینه مدیریت کرده و از عملکرد پایدار آن اطمینان حاصل کنید.

این مقاله چطور بود؟

گزینه ای را که بیشتر با نظرتان جور است انتخاب کنید.

دیدگاه ها

هنوز دیدگاهی ثبت نشده است، اولین نفر باشید.

دیدگاه خود را بنویسید

از وبلاگ ایران وی ام

مقالات مرتبط

چند مقاله نزدیک به همین موضوع که شاید برایتان مفید باشد.

همه مقالات ویکی وب
لینوکس

سرور مجازی لینوکس ایران برای مبتدی‌ها (راهنمای کامل)

سرور مجازی لینوکس یک ابزار همه‌کاره است: از میزبانی سایت و VPN امن تا گیم‌سرور، بکاپ، توسعه و IoT. با خرید سرور مجازی ایران از افرانت، از سرعت، امنیت و هزینه پایین بهره ببرید. حالا اقدام کنید: به صفحه پلن‌ها بروید، نیازهایتان را ارزیابی کنید و از پایه شروع کنید. اگر نیاز به چک‌لیست شخصی‌سازی‌شده یا کمک در پیکربندی دارید، کامنت بگذارید یا با پشتیبانی تماس بگیرید. موفقیت پروژه‌تان نزدیک است!

ارش اسدی۱۰ دقیقه مطالعه