draveness / blog-comments

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

为什么 HugePages 可以提升数据库性能 - 面向信仰编程 · /whys-the-design-linux-hugepages #223

Closed draveness closed 2 years ago

draveness commented 3 years ago

https://draveness.me/whys-the-design-linux-hugepages/

ppd0705 commented 3 years ago

上次学redis专栏有了解到:fork是用了copy-on-write机制,当数据有修改,会copy一份对应的内存页,当改动比较小时比如几个字节,内存页大反而会带来更大开销

GongchuangSu commented 3 years ago

文章排版看着真舒服👍

Bowser1704 commented 3 years ago

@ppd0705 上次学redis专栏有了解到:fork是用了copy-on-write机制,当数据有修改,会copy一份对应的内存页,当改动比较小时比如几个字节,内存页大反而会带来更大开销

所以说 huge page 用于一些特定的场合。

作为 Linux 从 2.6.32 引入的新特性,HugePages 能够提升数据库、Hadoop 全家桶等占用大量内存的服务的性能,该特性对于常见的 Web 服务以及后端服务没有太多的帮助,反而可能会影响服务的性能

meton-robean commented 3 years ago

mmap可以申请大页面,那么这些大页面是和系统默认的其他4KB页面共存的吗?也就是说LInux可以同时使用4级查找和五级查找?

yeqown commented 3 years ago

@meton-robean mmap可以申请大页面,那么这些大页面是和系统默认的其他4KB页面共存的吗?也就是说LInux可以同时使用4级查找和五级查找?

是共存的

trigged commented 3 years ago
  1. 它们也不会被 Swap 到磁盘上,... 这个说法是存疑, 参照 https://access.redhat.com/solutions/46111
  2. 在 OS 层面,要保证连续的内存同样会有压力,感觉这是一种 trade off 不是纯粹的优化 参照 Mongo https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
draveness commented 3 years ago
  1. 它们也不会被 Swap 到磁盘上,... 这个说法是存疑, 参照 https://access.redhat.com/solutions/46111
  2. 在 OS 层面,要保证连续的内存同样会有压力,感觉这是一种 trade off 不是纯粹的优化 参照 Mongo https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

HugePages 和 THP 不是一种东西,可以看看 https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/restrictions-for-hugepages-and-transparent-hugepages-configurations.html#GUID-D8178896-D00F-4F02-82A7-A44F89D8F103

botbotty commented 3 years ago

虽然部分处理器会使用 8KB、16KB 后者 64KB 作为默认的页面大小

“后者”应该是“或者”吧?


2021-05-26 UPDATES: 已修复