draveness / blog-comments

面向信仰编程
https://draveness.me
140 stars 6 forks source link

为什么 Linux 默认页大小是 4KB - 面向信仰编程 · /whys-the-design-linux-default-page #210

Closed draveness closed 2 years ago

draveness commented 4 years ago

https://draveness.me/whys-the-design-linux-default-page/

pengpaige commented 4 years ago

手动点赞

wolf-joe commented 4 years ago

补充两点从《现代操作系统》里看到的:

yuanlinZhao commented 3 years ago

过大的页面大小会浪费内存空间,造成内存碎片,降低内存的利用率,但是可以较少进程中的页表项以及 TLB 的寻址时间;

应该是减少进程中的页表项吧


2021-01-12 UPDATES: 已修复

yuanlinZhao commented 3 years ago

顺便在此处咨询下 为什么 MongoDB 使用 B 树 打不开了,期望修复可以阅读~

draveness commented 3 years ago

过大的页面大小会浪费内存空间,造成内存碎片,降低内存的利用率,但是可以较少进程中的页表项以及 TLB 的寻址时间;

应该是减少进程中的页表项吧

已修复

顺便在此处咨询下 为什么 MongoDB 使用 B 树 打不开了,期望修复可以阅读~

这篇文章有问题,已经删掉了,之后重写

cdpath commented 3 years ago

"增加寻址时 TLB(Translation lookaside buffer)的查找速度"


s/查找速度/查找时间

wxainn commented 3 years ago

看你的文章真是一种享受,已订阅

nonbutAworker commented 2 years ago

在如上图所示的四层页表结构中,操作系统会使用最低的 12 位作为页面的偏移量,剩下的 36 位会分四组分别表示当前层级在上一层中的索引,所有的虚拟地址都可以用上述的多层页表查找到对应的物理地址 这个地方我看文章里说的是64位系统,去掉12位用来表示页表偏移量,剩下的不应该是52位吗,为什么这里只剩下36位了,36+12也不等于64啊