صفحه اصلی > آموزشی : پاک کردن کش در لینوکس؛ نحوه پاک کردن کش حافظه رم، بافر و فضای Swap!

پاک کردن کش در لینوکس؛ نحوه پاک کردن کش حافظه رم، بافر و فضای Swap!


مانند هر سیستم‌عامل دیگری، GNU/Linux نیز مدیریت حافظه را به شکلی کارآمد و حتی فراتر از آن پیاده‌سازی کرده است. با این حال، اگر فرآیندی حافظه‌ی سیستم شما را به خود اختصاص داده و شما قصد دارید آن را پاک کنید، لینوکس راهی برای پاکسازی یا تخلیه حافظه‌ی RAM ارائه می‌دهد. در این مقاله، نحوه پاکسازی حافظه‌ی RAM، بافر و فضای swap و به طور کلی پاک کردن کش در لینوکس را برای بهبود عملکرد کلی بررسی خواهیم کرد.

شناخت حافظه رم، حافظه نهان، بافر و فضای SWAP

در ابتدا، بیایید با حافظه‌ی کش RAM، بافر و فضای swap در سیستم لینوکسی آشنا شویم.

حافظه‌ی کش RAM

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

در سرورهایی مثل سرور مجازی لینوکس که کارایی بالا مورد نیاز است، مدیریت کش می‌تواند بسیار مهم باشد.

بافر

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

فضای Swap

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

پاکسازی حافظه نهان، بافر و فضای SWAP در لینوکس

پاک کردن کش در لینوکس, بافر و فضای SWAP

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

چگونه کش حافظه رم را در لینوکس پاک کنیم؟

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

پاکسازی PageCache

  1. برای پاکسازی فقط PageCache، می‌توانید از دستور زیر استفاده کنید که به‌طور خاص PageCache را پاک کرده و منابع حافظه را آزاد می‌کند:
sudo sync; echo 1 > /proc/sys/vm/drop_caches

پاکسازی Dentries و Inodes

  1. برای پاکسازی فقط Dentries و Inodes، می‌توانید از دستور زیر استفاده کنید که سیستم فایل را همگام‌سازی کرده و هر دو را پاک می‌کند. این کار باعث آزادسازی اطلاعات کش شده‌ی دایرکتوری‌ها و inodes و بهبود عملکرد سیستم می‌شود:
sudo sync; echo 2 > /proc/sys/vm/drop_caches

پاکسازی PageCache، Dentries و Inodes

  1. برای پاکسازی PageCache، Dentries و Inodes، می‌توانید از دستور زیر استفاده کنید که سیستم فایل را همگام‌سازی کرده و هر سه را پاک می‌کند. این کار باعث آزادسازی حافظه و بهبود عملکرد سیستم می‌شود:
sudo sync; echo 3 > /proc/sys/vm/drop_caches

این دستورات مخصوصاً در محیط‌های سرور مثل سرور مجازی هلند که سرعت و عملکرد بهینه حیاتی است، کاربرد زیادی دارند.

توضیح هر بخش از دستور بالا:

  • sudo برای اجرای دستور به عنوان کاربر ارشد استفاده می‌شود.
  • sync برای تخلیه‌ی بافر سیستم فایل به کار می‌رود.
  • ; (نقطه‌ویرگول) برای جدا کردن چند دستور در یک خط استفاده می‌شود.
  • echo 3 > /proc/sys/vm/drop_caches برای پاکسازی PageCache، یک ناحیه‌ی موقت برای فایل‌های اخیراً دسترسی یافته، استفاده می‌شود.
توجه: فایل drop_caches کنترل می‌کند که چه نوع داده‌های کش شده‌ای باید پاک شوند و مقادیر به شرح زیر است:
1 – فقط PageCache را پاک می‌کند.
2 – Dentries و Inodes را پاک می‌کند.
3 – PageCache، Dentries و Inodes را پاک می‌کند.
همانطور که در مستندات کرنل ذکر شده است، نوشتن در drop_caches کش را بدون بستن هیچ برنامه یا سرویسی پاک می‌کند. دستور echo وظیفه نوشتن در فایل را دارد.

چگونه فضای Swap را در لینوکس پاک کنیم؟

برای پاکسازی فضای Swap، می‌توانید از دستور swapoff با گزینه -a استفاده کنید که تمامی پارتیشن‌های Swap را غیرفعال می‌کند:

sudo swapoff -a

سپس با اجرای دستور زیر، تمامی پارتیشن‌های Swap را مجدداً فعال کنید:

sudo swapon -a

آیا پاک کردن کش Buffer، Cache و Swap در لینوکس توصیه می‌شود؟

آیا بافر و فضای SWAP در لینوکس توصیه می‌شود؟

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

با این حال، در شرایط نادری که فشار شدید حافظه وجود دارد و نمی‌توان به روش‌های دیگر حافظه را پاک کرد، می‌توان با احتیاط این کار را انجام داد.

همچنین، پاکسازی فضای Swap در لینوکس به‌طور معمول یا در شرایط عادی توصیه نمی‌شود.

خودکارسازی فرایند بهینه‌سازی حافظه

بافر و فضای SWAP در لینوکس و بهینه‌سازی خودکار حافظه

برای خودکارسازی این فرآیند و پاکسازی منظم حافظه، می‌توانید یک کرون جاب (cron job) تنظیم کنید تا دستورات را در فواصل زمانی مشخص اجرا کند.

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

crontab -e

سپس خطوط زیر را اضافه کنید تا کش، بافر و فضای Swap هر روز در نیمه‌شب پاک شوند:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

آیا پاکسازی کش RAM در سرور لینوکس توصیه می‌شود؟

بافر و فضای SWAP در لینوکس کار خوبی است؟

خیر، این کار توصیه نمی‌شود. فرض کنید یک اسکریپت را تنظیم کرده‌اید که هر روز ساعت 2 صبح کش RAM را پاک کند. اما یک روز، تعداد غیرمنتظره‌ای از کاربران به وب‌سایت شما متصل می‌شوند و فشار زیادی بر منابع سرور وارد می‌کنند. در همین حال، اسکریپت برنامه‌ریزی شده اجرا می‌شود و همه چیز را از کش پاک می‌کند. حالا همه کاربران در حال بازیابی داده‌ها از دیسک هستند که ممکن است منجر به کرش سرور و خرابی پایگاه داده شود.

بنابراین، تنها زمانی کش RAM را پاک کنید که لازم است و از کار خود مطمئن باشید.

نتیجه‌گیری

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

امتیاز شما به این مطلب

نوشته پاک کردن کش در لینوکس؛ نحوه پاک کردن کش حافظه رم، بافر و فضای Swap! اولین بار در مجله آقای وب. پدیدار شد.



منبع

پست های مرتبط

گیم سرور چیست؟ آشنایی با معیارهای انتخاب انواع سرور بازی (Game Server)

گیم سرور چیست؟ گیم سرور (Game Server) یک سرویس میزبانی‌ست که به…

نحوه دانلود کلیپ از یوتیوب (معرفی بهترین ابزارها و ربات‌های تلگرامی)

حتما میدانید دانلود کردن کلیپ از یوتیوب در بیشتر موارد به طور…

زمان‎بندی تبلیغات گوگل چیست؟(نحوه Scheduling گوگل‌ادز)

برای اجرای موفق کمپین‌های گوگل ادز باید به زمان‌بندی آگهی‌ها توجه کنید.…

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

1403 © طراحی سایت | سئو | آقای وب