با سلام خدمت دوستان عزیزم
بعضا پیش میاد که با دیدن رم استفاده شده در سرور با دستوراتی مثل free یا top حجم قابل توجهی از منابع به کش رم اختصاص پیدا کرده
توی سایت های فروشگاهی یا سایت هایی از این دست وقتی یک کاربر میاد و یک کالا رو به سبد خریدش اضافه میکنه خوب به طبع حجمی رو به سهم خودش از منابع سرور (رم) در اختیار پردازش خودش قرار میده و وقتی عملیات خرید رو به اتمام نمیرسونه بنا به هر دلیلی ، pid یا حجم اشغال شده از رم به حالت کش باقی میمونه ، خوب ما میتونیم به طور منظم توی یه ساعت خاص کش رم رو خالی کنیم ، چطوری ؟
با هم ببینیم :
[root@seclinux ~]# free -g total used free shared buffers cached Mem: 9 8 0 0 0 3 -/+ buffers/cache: 4 5 Swap: 5 0 5 [root@seclinux ~]#
خوب همونطور که میبینید نزدیک به 4 گیگ از رم سرور درگیر کش هست
یک فایلی به اسم drop_caches توی مسیر /proc/sys/vm هست که میتونه چهار تا مقدار 0 و 1 و 2 و 3 بگیره.
0 حالت پیشفرض یا غیر فعال این مکانیزم هست.
1 برای پاک کردن کش های مربوط به pagecache
2 برای پاک کردن کش های مربوط به dentries و inodes
3 برای پاک کردن کل کش های موجوده
[root@seclinux ~]# sh -c "sync; echo 3 > /proc/sys/vm/drop_caches" [root@seclinux ~]# free -m total used free shared buffers cached Mem: 9 3 5 0 0 0 -/+ buffers/cache: 4 5 Swap: 5 0 5 [root@seclinux ~]#
خوب دیدید که موثر بود . حالا برای اینکه این دستور رو به صورت منظم داشته باشیم :
# crontab -e 0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches
خوب امید وارم که این آموزش هم به دردتون خورده باشه.
پیروز باشید.