دستور free

دستور free برایه دیدن مقدار رم خالی استفاده میشود
کلا تعداد زیادی اپشن نداره ولی تشریح قسمت هایه مختلف دستورش مهمه
شکل کلی دستور
با زدن خود دستور free به تنهایی خروجی شبیه زیر رو دریافت میکنین که بر اساس کیلوبایت است
کد:
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:~$
Mem = مقدار رم مصرفی شما رو با احتصاب disk caching نشون میده ((disk caching در اخر توضیح داده شده ))
-/+ 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 رو نشون میده پس کلی نشون میده
کد:
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:~$
= -s برایه خروجی گرفتن به صورت ادامه دار هستش با تعیین مدت رمان (( پشت سر هم اپدیت میشه ))
در زیر هر 3 ثانیه خروجیمون بروز میشه
کد:
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:~$
= -c برایه تعیین تعداد مرتبه خروجی است که حتما باید با –s بیاد
مثال:
در زیر 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 )) رو نشون نمیده
کد:
alieblice@ali:~$ free -o -m
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
Swap: 2046 0 2046
alieblice@ali:~$
= -t مجموع مقداررم swap و ram سخت افزاری رو نشون میده
نکته : اعداد خط -/+ 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
حقیقتش نمیدونم که با این کار به طور کامل از کش شدن جلو گیری میکنیم یا تا حدی جلوشو میگیریم ولی در اعداد تغییر چشم گیری ایجاد میشه
دستور زیر رو برایه جلوگیری کردن بزنین
کد:
Sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
حالا اگه دوباره دستور free رو بزنین میبینین که اعداد زیر ستون هایه
shared buffers cached
نغییر کرده است
در ادرس زیر هم ((جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک))
جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک ! - PersianAdmins
فایل هایه مربوطه
کد:
/proc/meminfo
/proc/sys/vm/drop_caches
منابع:
جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک ! - PersianAdmins
Help! Linux ate my RAM!