PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : جلوگیری از cache شدن ram در لینوکس



آگونیس
May 19th, 2012, 15:52
همان طور که در جریان هستید لینوکس رم را cashe میکند برای جلوگیری از این کار میتوانید از دستور زیر استفاده کنید :
کد:
root@linux ~]# echo 3 > /proc/sys/vm/drop_caches]
توضیحات :
از آنجایی که ram usage را کاهش میدهد ، درصد استفاده از swap هم کاهش پیدا میکند .
حذف cache سرعت پردازش را کاهش میدهد ( این میتواند محسوس یا نامحسوس باشد )
در کل به نظر نمیرسد این کار برای سرور مفید باشد
تنها استفاده و مزیت این است که مقدار ram ای رو به که به cache اختصاص داده شده ، حذف شده و به مقدار ram آزاد اضافه شود . در صورتی که محدودیت منابع دارید و به سریعا نیاز به رم avail دارید این کار میتونه به شما کمک کند .
همانطور که میدانید برنامه ها برای هر بار اجرا ابتدا از روی دیسک باید روی RAM بارگذاری شوند ، حافظه ی cache این امکان را میدهد که مقداری از اطلاعات را در خود رم نگه داری میکند تا برای دفعات بعد این اطلاعات را از روی disk فراخوانی نکند ، و این افزایش سرعت پردازش را حاصل میشود .
نکته :
در ضمن توصیه میشود قبل از این که drop cache کنید یکبار دستور "sync" را اجرا کنید تا مشکلی پیش نیاید .
(با این کار محتویات cache و buffer روی disk ذخیره میشود )
دستور مربوط برای برگشت به حالت اولیه :
کد :
echo 0 > /proc/sys/vm/drop_caches

sellpad
June 3rd, 2012, 18:08
اقا دمت گرم
توپ بود
حالا چجوری میشه رم واقعی و کش نشده در لینوکس دید؟

همینطور در esx؟

sellpad
June 3rd, 2012, 18:10
اقا عالی بود در حد تیم ملی بود
دمت گرم
حالا از کجا میشه میزان رم واقعی را در esx دید؟
همینطور در لینوکس؟

se7en-host
January 11th, 2013, 23:28
اقا واقعا اقای باز هم مرسی چقدر تشکر کنم راضی باشید؟ :دی
تشکر کردم باز کم بود مرسی

astro.alireza
January 12th, 2013, 02:56
همان طور که در جریان هستید لینوکس رم را cashe میکند برای جلوگیری از این کار میتوانید از دستور زیر استفاده کنید :
کد:
root@linux ~]# echo 3 > /proc/sys/vm/drop_caches]
توضیحات :
از آنجایی که ram usage را کاهش میدهد ، درصد استفاده از swap هم کاهش پیدا میکند .
حذف cache سرعت پردازش را کاهش میدهد ( این میتواند محسوس یا نامحسوس باشد )
در کل به نظر نمیرسد این کار برای سرور مفید باشد
تنها استفاده و مزیت این است که مقدار ram ای رو به که به cache اختصاص داده شده ، حذف شده و به مقدار ram آزاد اضافه شود . در صورتی که محدودیت منابع دارید و به سریعا نیاز به رم avail دارید این کار میتونه به شما کمک کند .
همانطور که میدانید برنامه ها برای هر بار اجرا ابتدا از روی دیسک باید روی RAM بارگذاری شوند ، حافظه ی cache این امکان را میدهد که مقداری از اطلاعات را در خود رم نگه داری میکند تا برای دفعات بعد این اطلاعات را از روی disk فراخوانی نکند ، و این افزایش سرعت پردازش را حاصل میشود .
نکته :
در ضمن توصیه میشود قبل از این که drop cache کنید یکبار دستور "sync" را اجرا کنید تا مشکلی پیش نیاید .
(با این کار محتویات cache و buffer روی disk ذخیره میشود )
دستور مربوط برای برگشت به حالت اولیه :
کد :
echo 0 > /proc/sys/vm/drop_caches

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


اقا واقعا اقای باز هم مرسی چقدر تشکر کنم راضی باشید؟ :دی
تشکر کردم باز کم بود مرسی
یوزر شما به دلیل ارسال اسپم های مشابه در تاپیک های مختلف به مدیران گزارش شد. واقعا معلوم نیست بعد از رسیدن به ۱۰۰ پست کیا رو می خواید بدبخت کنید!

iMohsen
January 12th, 2013, 10:08
لینوکس فایلهای فعال رو توی رم کش می کنه و ادیت می کنه. خالی کردن یکباره کش بدون نوشتن اون روی دیسک یعنی حذف اطلاعات.
حذف اطلاعات !؟
یعنی اگر سرور شما در حین عملکرد شات داون بشه همه اطلاعات ( در حافظه و فایلهای باز ) از دست میره !؟ پس نویسندگان سیستم عامل ها به این فکر نکردند که fly caching ممکنه خطر از دست رفتن اطلاعات داشته باشه ؟ :D

این cache فقط به صورت لحظه ای استفاده میشه . اگر هم از meminfo ببینید ,میشه فهمید که این میزان حافظه به صورت reserve استفاده میشه و اگر drop 'ش کنید مجددا شروع میکنه به رزرو کردن هر زمانی که نیاز داشته باشه .
اکثر پرتال های بزرگ جه با جاوا کار میکنن مثل لایفری یا جی باس زمانی که garbage میکنن از drop cache هم استفاده میکنه . البته استفاده از دستور sync قبل از drop cache مثل بک آپ گرفتن از دیتابیس قبل از آپگرید mysql هست .

astro.alireza
January 12th, 2013, 16:19
حذف اطلاعات !؟
یعنی اگر سرور شما در حین عملکرد شات داون بشه همه اطلاعات ( در حافظه و فایلهای باز ) از دست میره !؟ پس نویسندگان سیستم عامل ها به این فکر نکردند که fly caching ممکنه خطر از دست رفتن اطلاعات داشته باشه ؟ :D

این cache فقط به صورت لحظه ای استفاده میشه . اگر هم از meminfo ببینید ,میشه فهمید که این میزان حافظه به صورت reserve استفاده میشه و اگر drop 'ش کنید مجددا شروع میکنه به رزرو کردن هر زمانی که نیاز داشته باشه .
اکثر پرتال های بزرگ جه با جاوا کار میکنن مثل لایفری یا جی باس زمانی که garbage میکنن از drop cache هم استفاده میکنه . البته استفاده از دستور sync قبل از drop cache مثل بک آپ گرفتن از دیتابیس قبل از آپگرید mysql هست .

منظور من هم همون استفاده از دستور sync بود قبل از خالی کردن کش که مطمئن تر هست.

entezar
January 13th, 2013, 11:21
من تازه کارم ولی با اطلاعات محدودی که دارم با نظر علیرضا موافقم

shingo
January 16th, 2013, 17:29
کلا لینوکس رم زیادی استفاده نمیکنه توصیه نمیشه استفاده کنید

Aries
July 14th, 2013, 12:39
در ادامه بحث، اینم مطلب بی ربطی نیست، ممکنه کمک کنه :)

آزاد کردن RAM (رم) در لینوکس (http://blog.iranserver.com/%D8%A2%D8%B2%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%D9%85-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/)

beniii
July 17th, 2013, 20:55
Clear Memory Cache on Linux Server (http://www.hosting.com/support/linux/clear-memory-cache-on-linux-server)

pc.rootall
July 19th, 2013, 21:58
اگه میشه دستور هارو اینجا بزارید ممنون میشم

Aries
July 20th, 2013, 07:17
برای آزاد کردن رمی که بوسیله زامبی‌ها استفاده می‌شود و هنوز آزاده نشده است از دستور زیر استفاده می‌کنیم.



sync


برای آزاد کردن page cache.



echo 1 > /proc/sys/vm/drop_caches


برای آزاد کردن dentry ها و inode ها.



echo 2 > /proc/sys/vm/drop_caches


و در انتها برای آزاد کردن page cache و inode ها و dentry ها.



echo 3 > /proc/sys/vm/drop_caches


نکته: رمی که در لینوکس به عنوان cache استفاده می‌شود در مواقعی که سیستم با کمبود رم مواجه است می‌تواند به صورت خودکار به برنامه‌ها اختصاص یابد. در حقیقت لینوکس با اختصاص رم اضافه سیستم به عنوان کش سرعت دسترسی به هارد را افزایش می‌دهد و همزان در صورت کمبود رم این رم کش شده را به عنوان رم آزاد به برنامه‌ها می‌دهد.نکته: برای مشاهده رم قابل استفاده و رم کش شده از دستور free به شکل زیر استفاده می‌کنیم.



free -m total used free shared buffers cached
Mem: 486 94 391 0 10 37
-/+ buffers/cache: 46 439
Swap: 99 0 99


اعداد مقابل بخش mem نشان‌دهنده رم استفاده شده سیستم با احتساب cache است اما اعداد مقابل بخش buffers/cache نشان دهنده رم سیستمی منهی cache است و نشان دنده رمی است که در نهایت می‌تواند به برنامه‌ها اختصاص یابد. در مثال بالا ۴۳۹ مگا بایت رم می‌تواند به برنامه‌ها اختصاص یابد.


من از وبلاگ ایرن‌سرور (آزاد کردن RAM (رم) در لینوکس (http://blog.iranserver.com/%D8%A2%D8%B2%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%D9%85-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/)) کپی کردم البته