内存大页及基本块

大页内存

透明大页和大页的关系

这两者最大的区别在于 :  标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。

内存页的概念:

内存页:page

内存的最小分配单元:page   ---->  一个应用程序至少要使用一个内存页  4096B(4k)

linux中查看内存页的大小

getconf  -a  |  gerp  -I  pagesize

文件系统最小存储单元:块(block)  一个文件至少要占用一个block(4k)

linux 里打开火狐

firefox  &

查看火狐占用的内存大小

这里的total指的是虚拟内存的大小,并且你可以发现各种插件占用的内存都是4k的倍数

查看物理内存的占用

ps   aux  |  grep   firefox

单位为kb,实际大小100+M

MMU:内存管理单元(用于维护虚拟内存到物理内存的映射表)

存放于CPU中,映射由CPU来做

如果你开了火狐,又关又开这样对于cpu来讲他就需要不停去做映射,因为应用关闭映射就删

大页(Hugepage):记录虚拟内存到物理内存的分配映射表(记录于CPU中,由CPU管理)

免得应用在重复进行开关的时候反复执行映射导致CPU压力过高

cat  /proc/meminfo

查看内存信息

黑色框选的Total为0表示系统并未分配大页,Hugepagesize为2M

查看在系统中设置的大页数量

sysctl  -a  | grep  huge

free  -m

查看当前使用的内存大小

vim  /etc/sysctl.conf

修改配置文件,设置大页的数量

让sysctl配置文件生效

sysctl  -p

重新查看内存的占用情况,发现比之前多使用了200M

free  -m

所以当你让大页内存生效了以后,这200M就会被占用(并且是物理空间),并且这部分内存是不释放的,就是用来存映射,其他程序无法使用

所以这样的话,是很浪费内存的,默认情况下大页内存是不开启的,需要手动去开去配置

什么时候开启:当你的CPU性能很紧张的时候(CPU成为瓶颈),通过牺牲内存来减轻CPU 的负担

一个映射的大小为256B

最小存储:

查看文件系统的详细信息

创建一个2k大小的文件,但是在查看的时候发现他的大小为4k

这是因为内存和磁盘都有一个最小的分配单位4k

作用:因为内存和磁盘文件都会通过映射表指向一个物理的存储位置,那如果按照每一个比特去指向的话,那么光维护映射表就会花费大量的空间,得不偿失

所以他在分配磁盘空间的时候指定最小为4k,无论你实际使用多少(哪怕再小)都会分4k给你,如果实际大小为6k那么分配空间则为8k,并且这部分空间只有你能用,这样他维护的映射表就会小很多,缩小为原来的1/4000

windows里在格式化磁盘的时候也可以看到分配单元大小,4k

block小的时候可以节省存储空间,但是可能会降低读取的性能(因为一个20K的文件你可能需要读5个块,那如果块大小是16k就只需要读2个block)

大:提高读取的性能

小:节省存储的空间

VM的磁盘空间一般都比较大,且存储的都是大文件,所以这里可以调整block/簇的大小,改成1024KB也就是 1M

block大小和条带的大小建议对齐(保持一致)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值