当前位置: 代码网 > it编程>数据库>Mysql > Elasticsearch Index Monitoring(索引监控)之Index Stats API详解(2)

Elasticsearch Index Monitoring(索引监控)之Index Stats API详解(2)

2024年08月06日 Mysql 我要评论
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。第一个是算法关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本。

《一线大厂java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,即可获取!

  • exists_time_in_millis

命中的操作总耗时。

  • missing_total

未命中的总次数。

  • missing_time_in_millis

未命中的操作的总耗时。

  • current

当前正在执行的个数。

5、search

查询api的统计信息,其返回示例如下:

“search” : {

“open_contexts” : 0,

“query_total” : 0,

“query_time_in_millis” : 0,

“query_current” : 0,

“fetch_total” : 0,

“fetch_time_in_millis” : 0,

“fetch_current” : 0,

“scroll_total” : 0,

“scroll_time_in_millis” : 0,

“scroll_current” : 0,

“suggest_total” : 0,

“suggest_time_in_millis” : 0,

“suggest_current” : 0

},

其返回字段说明如下:

  • open_contexts

正在打开的查询上下文个数。

  • query_total

查询出来的总数据条数。

  • query_time_in_millis

查询阶段所耗费的时间。

  • query_current

当前正在查询个数。

  • fetch_total

fetch操作的次数。

  • fetch_time_in_millis

fetch阶段总耗时时间。

  • fetch_current

正在fetch的次数。

  • scroll_total

通过scroll api查询数据总条数。

  • scroll_time_in_millis

通过scroll api总耗时时间。

  • scroll_current

当前滚动api调用次数。

  • suggest_total

通过suggest api获取的推荐总数量。

  • suggest_time_in_millis

suggest总耗费时间。

  • suggest_current

正在执行suggest api的个数。

6、merges

合并相关的统计信息,其输出示例如下:

“merges” : {

“current” : 0,

“current_docs” : 0,

“current_size_in_bytes” : 0,

“total” : 0,

“total_time_in_millis” : 0,

“total_docs” : 0,

“total_size_in_bytes” : 0,

“total_stopped_time_in_millis” : 0,

“total_throttled_time_in_millis” : 0,

“total_auto_throttle_in_bytes” : 104857600

}

其返回字段说明如下:

  • current

总发生的合并次数。

  • current_docs

当前正在发生合并的文档数。

  • current_size_in_bytes

当前合并参与的文档总大小,单位字节。

  • total

总发生的合并次数。

  • total_time_in_millis

合并的总耗时(单位毫秒)。

  • total_docs

merge(合并)时总处理的文档个数。

  • total_size_in_bytes

merge(合并)时总处理的文档总大小(字节)。

  • total_stopped_time_in_millis

merge(合并)时总停止时间(吞吐率为0)。

  • total_throttled_time_in_millis

超过指定吞吐率而暂停的时间(节流)。

  • total_auto_throttle_in_bytes

自动进行流控的阔值,默认速率20m/s。

7、refresh

刷新索引相关的统计。

“refresh” : {

“total” : 15,

“total_time_in_millis” : 0,

“listeners” : 0

}

其返回字段说明如下:

  • total

执行刷新的总次数。

  • total_time_in_millis

执行刷新总耗时。

  • listeners

等待刷新侦听器的数量。

8、flush

刷盘的统计信息。

“flush” : {

“total” : 5,

“periodic” : 0,

“total_time_in_millis” : 0

}

其返回字段说明如下:

  • total

执行刷盘操作的次数。

  • periodic

当translog超过刷新阈值时周期性触发的刷新次数。

  • total_time_in_millis

刷盘操作总耗时时间。

9、warmer

索引分片(shard)预热统计信息,分片预热是指为索引创建一个分片节点时,是否对该索引预热(为索引创建一bitset位图)。其统计示例如下:

“warmer” : {

“current” : 0,

“total” : 5,

“total_time_in_millis” : 0

}

其返回字段说明如下:

  • current

当前正在预热的个数。

  • total

总共发生的预热次数。

  • total_time_in_millis

分片预热总耗时。

10、query_cache

查询缓存统计信息,其示例如下:

“query_cache” : {

“memory_size_in_bytes” : 0,

“total_count” : 0,

“hit_count” : 0,

“miss_count” : 0,

“cache_size” : 0,

“cache_count” : 0,

“evictions” : 0

}

其返回字段说明如下:

  • memory_size_in_bytes

查询缓存占用的内存空间,单位为字节。

  • total_count

缓存中查询的总次数,等于hit_count + miss_count。

  • hit_count

查询缓存命中的次数。

  • miss_count

查询缓存未命中的次数。

  • cache_size

当前查询缓存中缓存文档的个数。

  • cache_count

查询缓存总缓存文档个数(包含已经被换出evictions的文档个数)。

  • evictions

查询缓存被逐出的总数。

11、fielddata

fielddata统计信息,fielddata主要用加快text字段排序与聚合的性能,存储词根与文档的映射关系存储在在内存,在内存中进行排序与聚合。

“fielddata” : {

“memory_size_in_bytes” : 0,

“evictions” : 0

}

其返回字段说明如下:

  • memory_size_in_bytes

当前占用内存的大小。

  • evictions

被逐出词根的个数。

12、completion

completion(自动填充)相关统计,其输出示例为:

“completion” : {

“size_in_bytes” : 0

},

其返回字段说明如下:

  • size_in_bytes

自动提示占用字节数。

13、segments

检索打开段的内存使用情况。可选地,设置include_segment_file_size=true(默认为false),将输出每个lucene索引文件的聚合磁盘使用情况,其返回示例如下:

“segments” : {

“count” : 32,

“memory_in_bytes” : 38078,

“terms_memory_in_bytes” : 23838,

“stored_fields_memory_in_bytes” : 9984,

“term_vectors_memory_in_bytes” : 0,

“norms_memory_in_bytes” : 2048,

“points_memory_in_bytes” : 32,

“doc_values_memory_in_bytes” : 2176,

“index_writer_memory_in_bytes” : 0,

“version_map_memory_in_bytes” : 0,

“fixed_bit_set_memory_in_bytes” : 0,

“max_unsafe_auto_id_timestamp” : -1,

“file_sizes” : { }

},

其返回字段说明如下:

  • count

该索引目前拥有的总段数。

  • memory_in_bytes

该索引缓存在内存中字节数。

  • terms_memory_in_bytes

倒排索引(term)缓存在内中所占字节数。

  • stored_fields_memory_in_bytes

该索引定义为stored_fields字段在内存中缓存的字节数。

  • term_vectors_memory_in_bytes

该索引term_vectors(词向量)在内存中所占字节数量。

  • norms_memory_in_bytes

该索引存储对应norms=true的字段当前在内存中缓存字节数。

  • points_memory_in_bytes

与地理位置相关的缓存数据。

  • doc_values_memory_in_bytes

设置为doc_values缓存在内存中的字节数(doc_values,列式存储)。

  • index_writer_memory_in_bytes

用于优化索引写的缓存(减少写磁盘的频率)。

  • version_map_memory_in_bytes

关于文档的版本映射所占内存大小。

  • fixed_bit_set_memory_in_bytes

fixed_bit_set内存,专门用来做nested查询的。

  • max_unsafe_auto_id_timestamp

es内部当前的自增id。

  • file_sizes

其中如果设置为true,则file_sizes主要包含如下统计信息:

在这里插入图片描述

14、translog

translog统计信息(有点类似于innodb的redo日志),其输出示例如下:

“translog” : {

“operations” : 0,

“size_in_bytes” : 1100,

“uncommitted_operations” : 0,

“uncommitted_size_in_bytes” : 1100,

“earliest_last_modified_age” : 0

}

其返回字段说明如下:

  • operations

写translog的次数(索引文档、更新文档、删除文档的总操作数量)。

  • size_in_bytes

translog实例管理的translog文件总大小。(一个索引引擎(internalengine)示例包含一个translog实例)。

  • uncommitted_operations

当前还未提交到lucene中的操作次数(索引文档、更新文档、删除文档的操作数量)。

  • uncommitted_size_in_bytes

translog中未提交到lucene中的字节数。

  • earliest_last_modified_age

以秒为单位返回translog文件中最老条目的年龄。

15、request_cache

请求缓存的统计信息,其输出示例如下:

“request_cache” : {

“memory_size_in_bytes” : 0,

“evictions” : 0,

“hit_count” : 0,

“miss_count” : 0

},

其返回字段说明如下:

  • memory_size_in_bytes

请求缓存占用内存总大小。

  • evictions

请求缓存被剔除出次数。

  • hit_count

请求缓存被命中次数。

  • miss_count

请求缓存未命中次数。

16、recovery

recovery(恢复)相关的统计信息,其输出示例:

“recovery” : {

“current_as_source” : 0,

“current_as_target” : 0,

“throttle_time_in_millis” : 0

}

其返回字段说明如下:

  • current_as_source

作为源分片,正在执行恢复的分片数量 。

  • current_as_target

作为目标分片,正在执行恢复的分片数量。

  • throttle_time_in_millis

恢复过程总等待时间。

indices stats返回的结果是在索引级别的聚合,包含三个维度:primaries(所有主节点进行聚合)、total(所有主节点、副本节点进行聚合)、indices(索引级别)。

下面给出在java中使用index stats示例来结束本篇的讲解。

elasticsearch index stats java示例如下:(当前elasticsearch6.4.0 high rest client未提供对应api的封装)

public static final void test_indices_statsindex() {

transportclient client = esclient.gettransportclient();

try {

indicesstatsrequest request = new indicesstatsrequest();

总结

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、mysql、redis、kafka、网络等等。

  • 第一个是算法

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,我貌似是将《算法刷题leetcode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

《算法刷题leetcode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

最新出炉,头条三面技术四面hr,看我如何一步一步攻克面试官?

《算法的乐趣》共有23个章节:

最新出炉,头条三面技术四面hr,看我如何一步一步攻克面试官?

最新出炉,头条三面技术四面hr,看我如何一步一步攻克面试官?

  • 第二个是redis、mysql、kafka(给大家看下我都有哪些复习笔记)

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

最新出炉,头条三面技术四面hr,看我如何一步一步攻克面试官?

  • 第三个是网络(给大家看一本我之前得到的《java核心知识整理》包括30个章节分类,这本283页的java核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

最新出炉,头条三面技术四面hr,看我如何一步一步攻克面试官?

《一线大厂java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,即可获取!
、kafka、网络等等。

  • 第一个是算法

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,我貌似是将《算法刷题leetcode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

《算法刷题leetcode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

[外链图片转存中…(img-typmnpyc-1714475168532)]

《算法的乐趣》共有23个章节:

[外链图片转存中…(img-mbqjcsmo-1714475168532)]

[外链图片转存中…(img-n0xb1o4o-1714475168533)]

  • 第二个是redis、mysql、kafka(给大家看下我都有哪些复习笔记)

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

[外链图片转存中…(img-fpcv8pcw-1714475168533)]

  • 第三个是网络(给大家看一本我之前得到的《java核心知识整理》包括30个章节分类,这本283页的java核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

[外链图片转存中…(img-aljmmegl-1714475168533)]

《一线大厂java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,即可获取!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com