明木 2023-05-31 12:33 采纳率: 0%
浏览 7

关于#Esreflush#的问题,如何解决?(标签-缓存)

求解
es是reflush 到操作系统缓存里,等待30分钟或者teanslog 到达512mb再flush将segment写入磁盘,如果操作系统缓存满了,会立即flush到磁盘么?

  • 写回答

1条回答 默认 最新

  • 于扶摇 2023-05-31 15:23
    关注

    不会,操作系统缓存满并不会立即将数据flush到磁盘,而是会等待一定的时间,这个时间取决于配置的刷新间隔和translog大小。在Elasticsearch中,每个segment都有一个对应的translog,translog记录了segment中的所有操作,当translog达到一定大小时,Elasticsearch会将其flush到磁盘上,同时创建一个新的translog来记录后续的操作。操作系统缓存的作用是为了加速读写操作,它会将数据存储在内存中,以提高读取速度,但是当内存满时,操作系统会根据一定的策略将数据写入磁盘,这个策略和Elasticsearch的刷新策略是独立的。

    因此,即使操作系统缓存满了,Elasticsearch也不会立即将数据flush到磁盘,而是会按照配置的刷新间隔和translog大小进行flush。如果需要立即将数据写入磁盘,可以调用Elasticsearch的flush API或者使用清空缓存的命令行工具。但是需要注意,频繁地flush会带来额外的磁盘写入操作,可能会降低磁盘寿命,因此需要根据实际情况进行权衡和调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月31日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据