首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

huge page 能给MySQL 带来性能提升吗?

一 前言 最近一直在做性能压测相关的事情,有公众号的读者朋友咨询有赞的数据库服务器有没有开启huge page,我听说过huge page会对性能有所提升,本文就一探究竟。...二 Huge Page 来龙去脉 2.1 为什么需要Huge Page 在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TLB Miss...这也正是 Linux 内核引入大页面支持的直接原因。...三 mysql 如何用huge page 不同系统的huge pages大小可能不一样,我们使用centos7 huge page 大小默认为2M 。...3.1 计算需要多少 huge pages 启用 huge page之前 首先我们要计算分配多少huge page给mysql 使用。一般的建议是mysql使用的总内存大小加上10%。

1.1K20

huge page 能给MySQL 带来性能提升吗?

一 前言 最近一直在做性能压测相关的事情,有公众号的读者朋友咨询有赞的数据库服务器有没有开启huge page,我听说过huge page会对性能有所提升,本文就一探究竟。...二 Huge Page 来龙去脉 2.1 为什么需要Huge Page 在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TLB Miss...三 mysql 如何用huge page 不同系统的huge pages大小可能不一样,我们使用centos7 huge page 大小默认为2M 。...3.1 计算需要多少 huge pages 启用 huge page之前 首先我们要计算分配多少huge page给mysql 使用。一般的建议是mysql使用的总内存大小加上10%。...http://cenalulu.github.io/linux/huge-page-on-numa/ -The End- ---- 本公众号长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享

2.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【图解Linux内核】Page Cache

    这些问题,很可能是由于Page Cache管理不到位引起的,因为Page Cache管理不当除了会增加系统I/O吞吐外,还会引起业务性能抖动。...认识Page Cache最简单的方式,就是用数据说话,通过具体的数据你会更加深入地理解Page Cache的本质。 为什么需要Page Cache,Page Cache的产生和回收是什么样的。...最好具备一些Linux编程的基础,比如,如何打开一个文件;如何读写一个文件;如何关闭一个文件等等。 什么是Page Cache? Page Cache到底是属于内核还是属于用户?...红色的地方就是Page Cache,Page Cache是内核管理的内存,它属于内核。...怎么观察Page Cache 在Linux上直接查看Page Cache的方式: /proc/meminfo free /proc/vmstat 命令 内容其实是一致的。

    5.8K10

    【图解Linux内核】Page Cache

    这些问题,很可能是由于Page Cache管理不到位引起的,因为Page Cache管理不当除了会增加系统I/O吞吐外,还会引起业务性能抖动。...认识Page Cache最简单的方式,就是用数据说话,通过具体的数据你会更加深入地理解Page Cache的本质。 为什么需要Page Cache,Page Cache的产生和回收是什么样的。...最好具备一些Linux编程的基础,比如,如何打开一个文件;如何读写一个文件;如何关闭一个文件等等。 什么是Page Cache? Page Cache到底是属于内核还是属于用户?...红色的地方就是Page Cache,Page Cache是内核管理的内存,它属于内核。...怎么观察Page Cache 在Linux上直接查看Page Cache的方式: /proc/meminfo free /proc/vmstat 命令 内容其实是一致的。

    5.2K20

    linux Page cache和buffer cache正解

    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。...当page cache的数据需要刷新时,page cache中的数据交给buffer cache,但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。...简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。...这个page的数量将会在top程序的buffer一栏中显示。...从上面的分析可以看出,2.6内核中的buffer cache和page cache在处理上是保持一致的,但是存在概念上的差别,page cache针对文件的cache,buffer是针对磁盘块数据的cache

    3K20

    深入理解Linux VFS和Page Cache

    编者注:在分析完 Linux inode 基础概念 之后,让我们看下inode在内存中对应的文件系统抽象VFS,然后分析下关于 磁盘操作 中Page Cache的回写策略。...其目的是屏蔽下层具体文件系统操作的差异,为上层的操作提供一个统一接口,正是由于VFS的存在,Linux中允许多个不同的文件系统共存。...Linux中VFS依靠四个主要的数据结构来描述其结构信息,分别为超级块、索引结点、目录项和文件对象,这些数据结构大都会与磁盘上的对应上。 超级块(Super Block):超级块对象表示一个文件系统。...一个Inode只对应一个实际文件,一个文件也会只有一个Inode(Unix/Linux系统中目录也是一种文件,打开目录实际上就是打开目录文件。...Linux使用的策略是基于LRU改进的Two-List策略: Two-List策略维护了两个list,active list 和 inactive list。

    3.2K21

    Page Cache与Page回写

    理想的做法是释放距离下次访问时间最久的page,但是很明显,这是不现实的。下面先介绍LRU算法,然后介绍基于LRU改进的Two-List策略,后者是Linux使用的策略。...Page Cache在Linux中的具体实现 address_space结构 内核使用address_space结构来表示一个page cache,address_space这个名字起得很糟糕,叫page_ache_entity...associated buffers */ }; 其中 host域指向对应的inode对象,host有可能为NULL,这意味着这个address_space不是和一个文件关联,而是和swap area相关,swap是Linux...(对从用户空间拷贝到内核空间不是很理解,后期会重点学习Linux读、写文件的详细过程然后写一篇详细的blog介绍) Buffer Cache 在Block I/O的文章中提到用于表示内存到磁盘映射的buffer_head...在Linux2.4中,buffer cache和 page cache之间是独立的,前者使用老版本的buffer_head进行存储,这导致了一个磁盘block可能在两个cache中同时存在,造成了内存的浪费

    1.6K20

    THP对redis的影响

    前言: 前文《[linux][redis]bgsave引起的latency突刺问题分析》分析了redis-server执行bgsave因为fork引起的latency突刺问题。...发现了copy_huge_pmd、copy_user_huge_page和do_huge_pmd_wp_page等huge page的API只有在THP的情况下调用了。...3,do_huge_pmd_wp_page 分析Linux的源代码,发现在THP的情况下,如果发生了COW: a,发生了page fault b,处理page fault,检查地址,然后确定是因为COW...c,执行THP的COW过程,重新分配2M的huge page,并copy数据到新的page上 d,更新page table 梳理过大致流程后,定位在do_huge_pmd_wp_page函数。...当然,也是存在另外的一种情况的:执行THP fault的时候,发现申请不到2M的page了,就需要把原来的huge page执行split,当然也需要拷贝数据。

    1.7K20

    THP

    但对于1GB的huge page,就只能在启动时分配(且分配后不能释放),而不支持在运行时修改(系统起来后再要倒腾出1GB连续的物理内存,也怪难为内核的): Linux针对huge page提供了一种特殊的...【另一种huge page】 在Linux中,除了这种普通的huge page,自2.6.38版本开始支持THP。...与之相对的,可以把普通的huge page称为"static huge page"。一个是动态的,一个是静态的。两者的关系,类似于上文介绍的CMA和预留DMA的关系。...而且,静态huge page也是不支持swap操作的,不能被换出到外部存储介质上。 THP和静态huge page看起来样子差不多,但在Linux中的归属和行为却完全不同。...Linux中使用一个单独的线程khugepaged来负责实现THP,不管设置为"always"还是"madvise",khugepaged都是会被启动的(要时刻做好准备嘛)。

    56110
    领券