求解
es是reflush 到操作系统缓存里,等待30分钟或者teanslog 到达512mb再flush将segment写入磁盘,如果操作系统缓存满了,会立即flush到磁盘么?
关于#Esreflush#的问题,如何解决?(标签-缓存)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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会带来额外的磁盘写入操作,可能会降低磁盘寿命,因此需要根据实际情况进行权衡和调整。
解决 无用评论 打赏 举报
悬赏问题
- ¥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来回复数据