本文主要涉及关于elastcisearch 关于内存,mapping,查询语句,系统性能查看方面基本的内容和一些调试方法的整理和收集。
官方关于index性能优化方案
官方关于search性能优化方案
官方关于mapping设置的一些限制
官方关于nested-field的一些限制
使用enabled配置,只对数据进行保存,不进行index
ebay的es性能优化实践
性能优化干货(和官方的基本类似)
简单
中等
mapping优化(需review业务代码,修改IDE配置)
不需要再es返回结果中出现的字段,不同步到es中
需要在返回结果中出现,但不需要用于搜索的字段
同步过程优化(需在IDE中实现)
对不同步规模的index写数据时,动态调整每次批量写入的条目数,以及写完数据后sleep等待的时长(已实现)
往ES写数据前修改index的refresh参数,或设置分区参数,写完数据再改回来
复杂
mapping优化(需review业务代码,修改业务代码,修改IDE配置)
https://developer.aliyun.com/article/802096
结论: 对写入/更新速度比较大,nest 创建的子文档对硬盘size影响还好
使用help模式查看参数详情
GET _cat/segments?help
GET _cat/segments?v&h=index,si,sm
GET _cat/indices?help
GET _cat/indices?v
GET _cat/indices?v&h=i,dc,qcm,rcm,mtd,sm,fm,tm,sfbm 查看索引内存使用状况
GET _cat/nodes?help
GET _cat/nodes?v&h=rc
GET _cat/nodes?v&h=rc,sfbm
注意rc参数 "used machine memory"这个值无论现在es里面有多少doc,这个值都接近服务器最大内存
GET _cat/nodes?h=name,fm,fcm,sm,qcm,im&v
查看节点磁盘占用
GET _cat/nodes?v&h=dt,du,r
查询语法优化时候注意事项:
一些带空格的string查询 和 OR 查询 在没有括号的时候,系统语法会将其解析为全文查询
Titanhouse t4.large 机型大概63万talent 会占满磁盘
关于写入速度,使用现有talent数据,在bulk api 500条每次情况下,会导致ingest node 压力较大,
在ingest node 磁盘空间不够时候还会造成index宕机
Es的机型的带宽,对批量写入数据 影响挺大,
之前用的r5.large 的机型 同步数据用的1000条一组没问题
刚才用m4.large的reIndex, 500条一次支持不了,一次的写入不能超过10MB。
https://juejin.cn/post/6844903860125827086
https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'
使用Ruby1.9.2运行IDE提示说需要gemruby-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的