linux 4k?linux系统
今天给各位分享linux 4k的知识,其中也会对linux系统进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
为什么linux kernel默认的页面大小是4K,而不是4M或8M
太多了,我就做一次搬运工了。
相信很多人在看内核内存管理部分的时候,都有这样一个疑问,为什么物理页面的大小选择4K,而不是大一些或者小一些呢?
这个问题没有固定的答案,仁者见仁智者见智,每个人的关注点不一样。所以这篇文章不是说给出一个固定的答案,更多的只是一篇讨论性的文章。
内核的页面大小首先跟CPU有关,不同的架构支持的页面大小也不相同,但有一个共同点,那就是肯定支持4K的页面大小。为什么处理器在设计
的时候会选择4K,而不是其他,这个只有熟悉CPU历史的人才能给出答案,本人才疏学浅,回答不上来,有兴趣的自己找一找。当然处理器的设计者在考虑页面
大小的时候,也不是凭空就选择了这个大小,除了历史因素,肯定综合了考虑了大页面、小页面的优缺点,所以这里主要列出这些优缺点,通过这些比较来发现内核
为什么将默认的页面大小选择为4K。
现在更多争论的是大页面还是维持现在的页面4K大小,所以小页面的情况我们就不考虑了,通过比较前两者也可以得出小页面的情况。支持大页面的人通常认为大页面有以下好处:
1、减小page table占用的内存。
假设内存一定的话,页面大小越大,管理页面占用的内存也越小。现在内核中每个页面假设是4K的话,这4K不是全都可用,还有一部分用作
struct
page(大约是64bytes),如果是2.6.32的话,每个页还有一个page_cgroup(32bytes),也就是说内存大小的2.3%
(96/4096)会被内核固定使用。如果页面大小是4M的话,这个比率大约是0.0006%。假设内存时64G的话,页面大小是4K,管理页占用的内存
为1.472G,而页面大小是4M,管理页面占用的内存为0.393M。所以页面比较大时,节省的内存比较多。
2、提高TLB的命中率
每次访问内存的时候,都要将虚拟地址转换为物理地址,如果每次都访问页表的话,消耗比较大。因此,通常使用TLB来加速这个过程。但是
TLB的可以直接转换的地址范围是有限的(具体就是项数乘以页面大小),一旦出现TLB
miss,这时就必须去页表中查找。所以,如果是大页面的话,同样TLB项数的情况下,可以跟踪更大的内存。
3、提高磁盘I/O
我们知道在访问磁盘时,最耗时的操作就是查找写入盘区的起始位置,也就是在磁盘盘片上将读写头置于正确的位置上。所以如果是大页面的话,可以减少写入磁盘的次数。比如要写入4M的缓存,页面大小是4M的话,只需写入1次,而页面大小是4K的话,则需要写入4次。
4、提供缓存利用率
如果是大页面的话,可以减少访问伙伴系统的次数。调用伙伴系统的操作队系统的数据和指令高速缓存有相当的影响。内核越浪费这些资源,这些资源对用户空间进程就越不可用。
除了上面提高的好处,肯定还有的好处,就不一一列举了。那既然有这么好处,而且现在内存越来越大,为什么不更多地采用大页面呢?比如4M?
软件开发中,从来不会有非常完美的方案,都是在优缺点之间找到平衡点。同样,大页面有这样那样的好处,缺点也很明显。
1、最大的问题就是内存浪费,而且这个问题非常严重。比如这时要分配的内存是4M+1byte,这时需要两个页面才能满足分配的需要,这个
时候浪费的内存为4M-1byte。如果页面是4K的话,浪费的内存数量为4k-1byte。页面太大,可能导致每个页面都只使用了部分空间,剩余的空间
就被浪费了。当然对于数据库这样的系统来说,页面越大会越好,但是内核要考虑到通用的情况,而不是专注于特殊的应用场景。再比如,现在系统都是只分配虚拟
地址空间,虚拟地址空间只有在真正被访问的时候,才映射物理页面,而且为了减少物理页面的浪费,对不访问的部分,则不作映射。如果页面太大,在映射很小的
部分时,分配的内存会越大,浪费也就越大。系统在运行时,会频繁地请求内存页的操作,这样导致潜在的浪费会非常严重。这样的浪费会完全抵消减小page
table的优势。
2、页面太大,会导致大量的内存碎片。因为底层的内存管理是以页面为单位。如果系统运行了很长时间,空闲的内存很多,但是连续的内存块都小
于要分配的页面数。这时可以通过移动内存块或者利用swap来获取可用内存,但是会导致分配内存的操作很慢,这种慢会形成恶性循环,严重影响系统的性能。
如果是小页面的话,内存的利用会比较紧凑,分配页面时需要的连续内存块的大小不像大页面那样需要的那么大。
3、如果CPU崩溃,TLB可以访问的内存越大,对系统的影响也越大。这时一把双刃剑,大页面可以提供TLB访问的内存数量,但是CPU崩溃时,会导致很多内存访问要去页表中请求物理地址。
4、兼容性问题。X86处理器支持的页面大小只有4K,所以如果页面过大的话,会导致兼容性问题。
5、如果页面太大,在将内存页换出到swap分区时,需要换出的内存也就越大,会影响性能。
总之,这个页面大小4K是在计算机发展过程中选择的,也是在实践中经过检验的,现在看来这个页面是合适的。
五款优秀的Linux视频播放软件推荐linux看视频软件
Linux是一个非常多样化并兼容多种文件格式的操作系统,因此 Linux用户能够在多种环境中进行视频播放。为了让你能够更有效地收看视频,下面我将向您介绍一些 Linux视频播放软件。
首先,VLC是一款 Linux视频播放软件,它通常可以兼容所有主流的视频格式,具有强大的播放能力和实用的性能,并且拥有很多实用的播放工具和制作工具,以得到更好的视频播放效果。
其次,Mplayer是一款很受欢迎的视频播放器,在 Linux上可以用多个平台安装,具有优质的视频渲染能力,而且 Mplayer还可以对视频进行准确的定位和实现实时调节,为用户带来更好的视频播放体验。
此外,SMPlayer是另一款 Linux视频播放软件,具有界面美观、功能强悍和功耗低的特点,能够支持播放所有主流的媒体文件格式,可以说是综合性和全面性都很高的 Linux视频播放软件。
此外,KMPlayer是一款 Linux视频播放器,具有清晰、流畅和实用的特点,可以同时播放多个视频,支持多路混合格式,另外 KMPlayer还具有海量开源字幕库,且可以完美的支持 4K视频播放,是一款很不错的 Linux视频播放器。
最后,OMXPlayer是一款简洁低资源的 Linux视频播放软件,具有播放流畅性好、支持音频格式齐全尔等优点,OMXPlayer还具有非常强大的播放稳定性,即使在核心网络断断续续的场景中也能播放视频,具有不错的用户体验。
总而言之,上述五款优秀 Linux视频播放软件各有特色,自己根据需求选择,既可以达到视频播放的最高效果,又能为节能减排贡献一份力。
linuxblock大小linuxblock
linux中ll中显示的大小为什么跟du显示的大小不一样呢?ll中占用的总量大小是那里的?
那我在详细解释一下:du不是显示文件大小,而是显示文件所占用的block大小,默认linux系统分区的blocksize是4k,也就是说即使文件只有1个字节,也会占用4k.这下楼主明白否?ls-l则是文件的实际大小。建议主楼在详细读一下linux基础篇。呵呵你先看一下你自己系统分区时的块大小,/sbin/tune2fs-l/dev/***如果是4K就对了,如果你的是1K的话文件指向的node也要占块大小
用linux命令查看磁盘空间使用情况怎样查?
查看磁盘剩余空间可以使用命令:df-hl对磁盘的操作主要就是df命令。df能对磁盘做很多操作,df的详细介绍如下:语法:df说明:linux中df命令可显示所有文件系统对i节点和磁盘块的使用情况。该命令各个选项的含义如下:-a显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。-k以k字节为单位显示。-i显示i节点信息,而不是磁盘块。-t显示各指定类型的文件系统的磁盘空间使用情况。-x列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。-T显示文件系统类型。功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
linux格式化整个磁盘的命令?
linux格式化磁盘命令:mkfs。
案例:格式化sda1分区
#mkfs-text2/dev/sda1#将sda1磁盘分区格式化为ext2格式使用方式:mkfs
说明:建立linux档案系统在特定的partition上
参数:
device:预备检查的硬盘partition,例如:/dev/sda1;
-V:详细显示模式;
-t:给定档案系统的型式,Linux的预设值为ext2;
-c:在制做档案系统前,检查该partition是否有坏轨;
-lbad_blocks_file:将有坏轨的block资料加到bad_blocks_file里面;
block:给定block的大小;
-L:建立lable。