当前位置: 首页 > news >正文

招生处网站建设方案山西省建设工程招投标监督网站

招生处网站建设方案,山西省建设工程招投标监督网站,关于手机的网站有哪些内容吗,中国建设部官方网站mysql 基于chunk机制是如何支持运行期间,动态调整buffer pool大小的 MySQL 的 InnoDB 存储引擎确实支持在运行期间动态调整缓冲池(buffer pool)的大小,但其机制与自定义缓存系统有所不同。InnoDB 通过内部优化和配置参数来实现这…

mysql 基于chunk机制是如何支持运行期间,动态调整buffer pool大小的

MySQL 的 InnoDB 存储引擎确实支持在运行期间动态调整缓冲池(buffer pool)的大小,但其机制与自定义缓存系统有所不同。InnoDB 通过内部优化和配置参数来实现这一功能。

实际上mysql 设计了一个chunk机制,也就是说buffer pool是由很多chunk组成的,他的大小是innodb_buffer_pool_chunk_size参数控制的,默认值就是128MB。

所以实际上我们可以来做一个假设,比如现在我们给buffer pool设置一个总大小是8GB,然后有4个buffer pool,那

么每个buffer pool就是2GB,此时每个buffer pool是由一系列的128MB的chunk组成的,也就是说每个buffer pool会有16个chunk。

然后每个buffer pool里的每个chunk里就是一系列的描述数据块和缓存页,每个buffer pool里的多个chunk共享一套

free、flush、lru这些链表.

以下是 MySQL 基于 chunk 机制动态调整 buffer pool 大小的关键点:

  1. 动态调整 Buffer Pool 大小的命令
    从 MySQL 5.7 开始,InnoDB 支持在运行期间动态调整 innodb_buffer_pool_size 参数。你可以使用以下 SQL 命令来调整缓冲池大小:
SET GLOBAL innodb_buffer_pool_size = new_size;

例如,将缓冲池大小设置为 16GB:

SET GLOBAL innodb_buffer_pool_size = 16 * 1024 * 1024 * 1024;
  1. Chunk 机制
    InnoDB 使用分块(chunk)机制来管理缓冲池的扩展和收缩。每个 chunk 是一个固定大小的内存块,默认情况下是 128MB。当需要增加或减少缓冲池大小时,InnoDB 会以 chunk 为单位进行操作。
    2.1 扩展缓冲池
    添加新 Chunk:当需要增加缓冲池大小时,InnoDB 会逐步添加新的 chunk。
    平滑扩展:每次添加一个 chunk 后,InnoDB 会等待一段时间(默认为 1 秒),然后继续添加下一个 chunk,直到达到目标大小。这样可以避免一次性分配大量内存对系统性能造成冲击。
    2.2 收缩缓冲池
    移除旧 Chunk:当需要减少缓冲池大小时,InnoDB 会逐步移除现有的 chunk。
    渐进式收缩:每次移除一个 chunk 后,InnoDB 会等待一段时间(默认为 1 秒),然后继续移除下一个 chunk,直到达到目标大小。这同样是为了避免一次性释放大量内存对系统稳定性的影响。

  2. 相关配置参数
    为了更好地控制缓冲池的动态调整行为,InnoDB 提供了以下几个关键配置参数:
    innodb_buffer_pool_chunk_size
    设置每个 chunk 的大小,默认为 128MB。
    可以根据服务器的内存情况调整这个值,但建议保持默认值以确保最佳性能。
    innodb_buffer_pool_resize_delay
    设置每次调整后等待的时间(以毫秒为单位),默认为 1000 毫秒(即 1 秒)。
    如果需要更快地完成调整,可以减小这个值;如果担心对性能的影响,可以增大这个值。
    innodb_buffer_pool_instances
    设置缓冲池实例的数量,默认为 8。
    更多的实例可以减少锁争用,提高并发性能。

  3. 注意事项
    内存限制:确保服务器有足够的可用内存来支持新的缓冲池大小。如果内存不足,可能会导致 OOM(Out of Memory)错误。
    性能影响:频繁调整缓冲池大小可能会影响性能,因此应尽量减少调整频率,并选择合适的时间窗口进行调整。
    数据一致性:InnoDB 在调整过程中会确保数据的一致性和完整性,不会丢失或损坏数据。

  4. 实际应用场景
    假设你有一个正在运行的 MySQL 服务器,当前 innodb_buffer_pool_size 设置为 8GB,你想将其调整为 16GB。你可以按照以下步骤操作:

  5. 检查当前配置:

   SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
  1. 调整缓冲池大小:
   SET GLOBAL innodb_buffer_pool_size = 16 * 1024 * 1024 * 1024;
  1. 验证调整结果:

       SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
    1. 监控性能: 使用 SHOW ENGINE INNODB STATUS 或其他监控工具来观察调整后的性能变化,确保没有负面影响。
      通过上述方法,MySQL 的 InnoDB 存储引擎可以在运行期间动态调整缓冲池大小,同时利用 chunk 机制确保调整过程的平稳性和高效性。如果你有更多具体需求或问题,请进一步说明。
http://www.yayakq.cn/news/82504/

相关文章:

  • 定期做图书推荐的网站高端快速建站
  • 上海建设网站制作免费咨询在线
  • 圆梦科技专业网站建设软件产品
  • 织梦cms 5.6网站地图成都软件开发网站建设
  • 北京网络公司的网站淄博定制网站建设公司
  • 谁帮58同城做的网站吗网络服务时代
  • 做网站用哪个工具wordpress同时置顶多篇文章
  • 如何建立自己网站视频网站域名设计找谁
  • 重庆微信网站建设报价有域名和主机怎么做网站
  • 朝阳区建设工作办公室网站宝洁网站建设
  • 移动端网站建设推广方案免费网络推广的方法
  • 英文免费网站模板高端网站建设哪家便宜
  • asp.net网站管理系统范湖网站建设团队
  • 多配色创意metro风格企业网站织梦模板佛山网站制作网站
  • 手机网站的好处杭州软件开发定制公司
  • 郑州网站建设中心网站添加字体
  • 米课做网站东莞网站建设方案外包
  • 成都网站建设公司地址html网页制作我的家乡
  • 仿美团版网站开发制作如何看那个网站是那个公司做的
  • 网站备案号在哪本地网站搭建教程
  • 怎么做谷歌收录的网站吗做平面设计都在那个网站找免费素材
  • 淮安建设工程协会网站查询微信公众号里的网站怎么做的
  • 南宁如何做百度的网站自建网站有哪些
  • 网站怎样做优化wordpress forandroid
  • qq免费建网站宁波网站建设免费咨询
  • 返利网站开发超市会员管理系统
  • 美观网站建设价格wordpress百度显示缩略图
  • 网站改版影响排名制作投票的网站
  • 网站建设管理理论app设计公司排名
  • 模板网站与 定制网站的 对比网络推广品牌营销公司