PDA

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



mandasan
May 2nd, 2013, 11:44
سلام
از عنوان معلومه که مشکل از کجا هست
هرموقع هم دستور Echo رو اجرا میکنم که کش روی رم دراپ بشه مقدار رمی که پر هست میاد روی 300
مقدار کل رم هم1 گیگ هست
میخواستم ببینم امکانش هست که این دستور Echo رو توی کرون جاب بزارم که هر چندساعت یه بار اجرا بشه و رم خالی کنه ؟
آخه رم که پر میشه سرعت هم میاد پایین یه مقداری.یا اصلا کلا جلوگیری کرد که رم پر نشه اینقدر.
این هم دستور Echo که اجرا میکنم

echo 3 > /proc/sys/vm/drop_caches

vistaperes
May 2nd, 2013, 11:54
رم کش میشه مشکلی ایجاد نمیکنه

از این دستور هم سرخود استفاده نکنین lost دیتا میشین آخرش :)

mandasan
May 2nd, 2013, 12:01
رم کش میشه مشکلی ایجاد نمیکنه

از این دستور هم سرخود استفاده نکنین lost دیتا میشین آخرش :)
خوب اینجور که باشه من متوجه نمیشم که منابع سرور چه مقدار واقعا داره استفاده میشه !
و کی نیازه که ارتقا بدم.مشکل اصلی من هم همینه.
هیچ راهی وجود نداره که کش نکنه ؟

vistaperes
May 2nd, 2013, 12:03
بهتره عملکرد رم اول بررسی کنین تا متوجه بشید

htop نصب کنین با از دستور free -m استفاده کنین

nginxweb
May 2nd, 2013, 12:12
همان طور که در جریان هستید لینوکس رم را 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

vistaperes
May 2nd, 2013, 12:43
همان طور که در جریان هستید لینوکس رم را 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

با این دستور باز هم رم کش می شود

این مطلب کپی کردید؟
http://www.webhostingtalk.ir/f105/48813/

nginxweb
May 2nd, 2013, 13:21
ابتدا یک فایل به نام

deletecache.sh

بسازید

سپس

دستوران زیر رو داخل اون فایل قرار دهید


#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches



خوب حالا اسکریپتتون آماده می باشد

کافیست اسکریپت فوق را بصورت cronjob قرار دهید مثلا توسط کد زیر:


0 * * * * /root/deletecache.sh


پیروز باشید