دستور free
دستور free برایه دیدن مقدار رم خالی استفاده میشود
کلا تعداد زیادی اپشن نداره ولی تشریح قسمت هایه مختلف دستورش مهمه
شکل کلی دستور
با زدن خود دستور free به تنهایی خروجی شبیه زیر رو دریافت میکنین که بر اساس کیلوبایت است
Mem = مقدار رم مصرفی شما رو با احتصاب disk caching نشون میده ((disk caching در اخر توضیح داده شده ))کد:alieblice@ali:~$ free total used free shared buffers cached Mem: 4037504 723244 3314260 0 44752 198608 -/+ buffers/cache: 479884 3557620 Swap: 2096124 0 2096124 alieblice@ali:~$
-/+ buffers/cache = مقدار رم مصرف شده برایه disk caching و مقدار رم خالی شما بدون احتصاب disk caching رو نشون میدهد
Swap = مقدار فضایه مصرف شده از رم Swap رو نشون میده
توضیح اپشن ها :
= -b برایه نشون دادن بر اساس بایت است
= -k برایه نشون دادن بر اساس کیلوبایت است
= -m برایه نشون دادن بر اساس مگابایت است
کد:alieblice@ali:~$ free -m total used free shared buffers cached Mem: 3942 706 3236 0 43 193 -/+ buffers/cache: 468 3473 Swap: 2046 0 2046 alieblice@ali:~$
= -g برایه نشون دادن بر اساس گیگابایت است
نکته : همون طور که در مثال اپشن –m میبینین مقدار رم 3942 مگابایت است ولی در حالت –g مقدار 3 رو نشون میده پس کلی نشون میده
= -s برایه خروجی گرفتن به صورت ادامه دار هستش با تعیین مدت رمان (( پشت سر هم اپدیت میشه ))کد:alieblice@ali:~$ free -g total used free shared buffers cached Mem: 3 0 3 0 0 0 -/+ buffers/cache: 0 3 Swap: 1 0 1 alieblice@ali:~$
در زیر هر 3 ثانیه خروجیمون بروز میشه
= -c برایه تعیین تعداد مرتبه خروجی است که حتما باید با –s بیادکد:alieblice@ali:~$ free -s 3 total used free shared buffers cached Mem: 4037504 726784 3310720 0 44848 200992 -/+ buffers/cache: 480944 3556560 Swap: 2096124 0 2096124 total used free shared buffers cached Mem: 4037504 726908 3310596 0 44848 200992 -/+ buffers/cache: 481068 3556436 Swap: 2096124 0 2096124 ^C alieblice@ali:~$
مثال:
در زیر 4 بار خروجی میگریم با فاصله زمانی 3 ثانیه
کد:alieblice@ali:~$ free -ms 3 -c 4 total used free shared buffers cached Mem: 3942 711 3231 0 43 196 -/+ buffers/cache: 471 3471 Swap: 2046 0 2046 total used free shared buffers cached Mem: 3942 711 3231 0 43 196 -/+ buffers/cache: 471 3471 Swap: 2046 0 2046 total used free shared buffers cached Mem: 3942 711 3231 0 43 196 -/+ buffers/cache: 471 3471 Swap: 2046 0 2046 total used free shared buffers cached Mem: 3942 711 3231 0 43 196 -/+ buffers/cache: 471 3471 Swap: 2046 0 2046 alieblice@ali:~$
= -o به صورت شکل قدیم نشون میده
فرقش اینه که خط -/+ buffers/cache (( buffer adjusted )) رو نشون نمیده
= -t مجموع مقداررم swap و ram سخت افزاری رو نشون میدهکد:alieblice@ali:~$ free -o -m total used free shared buffers cached Mem: 3942 711 3231 0 43 196 Swap: 2046 0 2046 alieblice@ali:~$
نکته : اعداد خط -/+ buffers/cache رو تو جمع حساب نمیکنه
مقدار واقعی مصرف رم شماکد:alieblice@ali:~$ free -tm total used free shared buffers cached Mem: 3942 712 3230 0 43 196 -/+ buffers/cache: 471 3470 Swap: 2046 0 2046 Total: 5989 712 5277 alieblice@ali:~$
در لینوگس 2 نوع مصرف رم داریم
1= رمی که شما مصرف میکنین
2= رمی که شما مصرف میکنین به همراه disk caching
disk caching چیست ؟
disk caching در این جا به عملی می گویند که سیستم میاد مقدار رم خالی شما (( مثلا 2.5 گیگ از 4 گیگ )) که استفاده نمیشه مقداریش رو برایه کش کردن استفاده میکنه اما به محض این که شما اون مقدار فضا (( مثلا 500 مگابایت )) یا به مقداری از اون فضا احتیاج پیدا کردین سیستم بلافاصله فضا رو برایه شما خالی میکنه . پس اختلالی در انجام کار ها پیش نمیاره و حتی باعث سریع شدن کار ها بالا رفتن سرعت لود نرم افزارها میشه .
اگه هنوز متوجه نشدین داستان زیر رو بخونین
و برایه دیدن تاثیرش هم ادرس زیر رو نگاه کنین
پس برایه این که بدونین چه مقدار رم خالی دارین باید عددی که در خط -/+ buffers/cache است رو بخونین
که در مثال زیر 3470 مگابایت است
نکته :کد:alieblice@ali:~$ free -tm total used free shared buffers cached Mem: 3942 712 3230 0 43 196 -/+ buffers/cache: 471 3470 Swap: 2046 0 2046 Total: 5989 712 5277 alieblice@ali:~$
در دستور top مقدار رم مصرفی با احتصاب disk caching نشون داده میشه
در دستور htop مقدار رم مصرفی بدون احتصاب disk caching محاصبه میشود
غیر فعال کردن disk caching
حقیقتش نمیدونم که با این کار به طور کامل از کش شدن جلو گیری میکنیم یا تا حدی جلوشو میگیریم ولی در اعداد تغییر چشم گیری ایجاد میشه
دستور زیر رو برایه جلوگیری کردن بزنین
حالا اگه دوباره دستور free رو بزنین میبینین که اعداد زیر ستون هایهکد:Sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
shared buffers cached
نغییر کرده است
در ادرس زیر هم ((جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک))
جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک ! - PersianAdmins
فایل هایه مربوطه
منابع:کد:/proc/meminfo /proc/sys/vm/drop_caches
جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک ! - PersianAdmins
Help! Linux ate my RAM!






پاسخ با نقل قول