导航:首页 > 程序命令 > free命令

free命令

发布时间:2022-01-14 14:53:55

A. linux系统free命令返回如下请问是否正常

加上cache就对了...

B. linux free命令中buffer和cache的区别

linux free命令中buffer与cache的区别

~$ free
total used free shared buffers cached
Mem: 1025204 981636 43568 0 38244 387808
-/+ buffers/cache: 555584 469620
Swap: 1931256 162948 1768308 www.2cto.com

也可以通过$watch free看到动态信息
以上为free命令的输出内容,从中可以得到当前系统内存使用情况.
系统的可用内存应该看第二行数据,
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached

因为第一行的used包含了系统使用的buffer及cache,而free则没包含buffer及cache,
这部分也是可以使用的部分.
如上所示555584为真正的系统使用内存情况,而469620为系统真正的可用内存情况.

下面介绍buffer与cache的差别:
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
buffer: www.2cto.com
缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的操作进程不发生间断。
cache:
高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于
CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存
着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调
用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)
和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现
在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。
当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,
这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会
自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有
内存可用。如果你希望手动去释放Cache Memory也是有办法的。
如何释放Cache Memory(缓存内存), 用下面的命令可以释放Cache Memory:
To free pagecache
$sync; echo 1>/proc/sys/vm/drop_caches
To free dentries and inodes: www.2cto.com
$sync; echo 2>/proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
$sync; echo 3>/proc/sys/vm/drop_caches
注意,释放前最好sync一下,防止丢失数据。

free命令中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache

C. free命令buff和cache的区别

buff

cache

Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可搜索以干其他的事情。
Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而
Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。

Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。 Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。

D. shell脚本中如何编写程序med.sh,根据free命令的结果计算内存占有率

#!/bin/bash

NowTime=`date +%F' '%T`
PhyMemPercent=`free -m|grep "Mem:"|awk '{printf("%2.2f\n",$3 * 100/$2)}'`
VirMemPercent=`free -m|grep "Swap"|awk '{printf("%2.2f\n",$3 * 100/$2)}'`
pyhmem=`free -m |grep "Mem:" |awk '{print $2}'`
virmem=`free -m |grep "Swap" |awk '{print $2}'`
Pyhmemused=`free -m |grep "Mem:" |awk '{print $3}'`
Virmemused=`free -m |grep "Swap" |awk '{print $3}'`

echo -n "$NowTime "
printf "%-16s%5s%8s%5s%12s%6s\n" "PhyMemory:total" "$pyhmem" " MB,used " "$Pyhmemused" " MB,percent " "$PhyMemPercent%"
# echo "PhyMemory:total $pyhmem MB,used $Pyhmemused MB,percent $PhyMemPercent%" >&3
echo -n "$NowTime "
printf "%-16s%5s%8s%5s%12s%6s\n" "VirMemory:total" "$virmem" " MB,used " "$Virmemused" " MB,percent " "$VirMemPercent%"

将以上复制到你的脚本中,执行下就会知道。

E. linux中free命令,total≠used+free,什么原因呢

-m 表示以MB显示
-G 表示用GB显示
当你内存为3500M时候
你用-G就会只显示3
明白我的意思不

就是 他并不是严格按照实际数量计算
用free 别加参数显示的就是正确数值 但是 单位是kb

F. cfree命令编写,请各位帮帮忙

第一题:

# include <stdio.h>
int main(void)
{
int a, b;
float x, y;
char c1, c2;

printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
printf("请输入两个小数:\n");
scanf("%f %f", &x, &y);
getchar(); //此处用来接受回车
printf("请输入两个字符:\n");
scanf("%c %c", &c1, &c2);

printf("各个变量的值为:\n");
printf("a = %d, b = %d\n", a, b);
printf("x = %f, y = %f\n", x, y);
printf("c1 = %c, c2 = %c\n", c1, c2);

return 0;
}

第二题:
# include <stdio.h>
int main(void)
{
char c1, c2;

printf("请输入第一个字符并回车:\n");
c1 = getchar();
getchar(); // 此处用来接受回车
printf("请输入第二个字符并回车:\n");
c2 = getchar();

printf("您输入的两个字符为:\n");
putchar(c1);
putchar('\n');
printf("%c", c2);

return 0;
}

第三题:
# include <stdio.h>
int main(void)
{
float a, b, c, d, x, y;

printf("请输入a b c d的值:\n");
scanf("%f %f %f %f",&a, &b, &c, &d);
printf("请输入x的值\n");
scanf("%f", &x);

y = x + ( (a-b) / (c+d) );

printf("y的值为:\n");
printf("y = %f", y);

return 0;
}

第四题:
# include <stdio.h>
# include <math.h>
int main(void)
{
float x, y;

printf("请输入x(弧度制)的值\n");
scanf("%f", &x);

y = sin(x) + cos(x);

printf("角度数为:\n");
printf("%.2f\n", x);
printf("sin(x) + cos(x)的值y为:\n");
printf("y = %.2f", y);

return 0;
}

这些都是我自己打的,一定要给分哦!

G. linux下free命令结果如下,谁能帮我通俗地解释下对应的意思

内存总共大小(total),
使用量(used)
剩余内存(free)
被OS buffer住的内存。 (buffers)

被OS cache的内存(cached)
buffer是用于存放要输出到disk(块设备)的数据的
,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。

H. linux服务器使用free命令显示如下情况,是不是需要增加内存了

没关系,free虽然少,因为都被cached了。我的机器24G内存,可以cache22G,这是linux内存管理的机制。并不影响使用,如果linux发现内存不够用,会自己释放cache,增加内存的。

I. linux free命令

Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况,

第1行 Mem:
total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
total = used + free
第2行 -/+ buffers/cached:
used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

J. Linux里面free -g命令作用是什么

不带任何选项运行 free 命令会显示系统内存,包括空闲、已用、交换、缓冲、缓存和交换的内存总数。这个时候显示的是字节为单位。-G 参数加上去以后,所有显示的内容就按照单位GB来显示明白了吗 查询命令 看看《Linux就该这么学》 里面有个专栏是 Linux命令大全(手册

阅读全文

与free命令相关的资料

热点内容
程序员真的累吗 浏览:323
学信网app为什么刷脸不了 浏览:871
天蝎vs程序员 浏览:991
单片机下载口叫什么 浏览:186
程序员的道 浏览:924
云服务器不实名违法吗 浏览:556
怎样查看文件夹图片是否重复 浏览:993
文件怎么导成pdf文件 浏览:805
打开sql表的命令 浏览:101
安卓手机如何面部支付 浏览:37
天元数学app为什么登录不上去 浏览:822
明日之后为什么有些服务器是四个字 浏览:102
安卓系统l1是什么意思 浏览:24
服务器一直崩应该用什么指令 浏览:923
cm202贴片机编程 浏览:729
php构造函数带参数 浏览:178
解压电波歌曲大全 浏览:345
为啥文件夹移到桌面成word了 浏览:859
命令符的安全模式是哪个键 浏览:760
编程中学 浏览:957