欢迎来真孝善网,为您提供真孝善正能量书籍故事!

夏普821和松下P905i哪个好综合对比,夏普mt821和831区别大

时间: 民间故事 提交错误

10个最令人惊叹的私家旅行住所,你知道几个?

在旅行中与世界交谈!

请关注负责任的孤独星球 lptraveller

我们精心挑选了世界上最令人惊叹的自助式城市公寓、海滨别墅、城堡和小屋,让你在旅行中和当地人做邻居。

1.希腊岛屿

Coco & Belle 的恢宏景致堪称无与伦比——这座传统的洞穴式住宅盘踞于圣托尼岛令人目眩的悬崖之上。刷成白色的凉爽客房中配备有原木家具和凹陷天花板,以舒缓基克拉迪热辣艳阳的刺激感。不过等到日落西山时,这里又成了让你欲罢不能的观景胜地:置身于屋顶露台或阳台之上,你就能俯瞰到潜在水面之下的火山口,当年正是从这处火山口所喷发出的熔岩塑造出了这座岛屿。

Tips:

住宿6晚;2122元起;housetrip.com/en/rentals/166436

2.巴厘岛

在构思自己心目中完美的巴厘岛寓所时,房主乔安妮就梦想能够最大程度地保留宅邸周边的梯田和丛林景致。等到Villa Abadi完工之后,她终于梦想成真。这所光线明亮的住宅位于一座小村庄的边缘,距离海滩仅几公里之遥,其装饰精致,充满了现代化的亚洲格调,它为宾客们提供了一个绝佳的私密住所。泡在周围棕榈成行的泳池中,手捧一杯鸡尾酒,你就可以静静地欣赏周边的无敌美景了。

Tips:

住宿8晚;1199元起;flipkey.com/canggu-villa-rentals/p355511

3.伦敦

如果还可以再选择一次,那么位于诺丁山的这栋公寓的房主们肯定会用将自己的家装饰成这种纯白色。既然这样的风格是如此协调,那么住在这里的客人们还有什么其他好挑剔的呢?木制地板、壁炉和各种巧妙选择的装饰品都是这间起居室的亮点所在,在顶楼椽梁的衬托下,卧室显得异常温馨。房间里有雪橇床、卷盖式浴缸和露台,从露台上可以俯瞰远处西伦敦时尚街区的街景。

Tips:

住宿2晚;1799元起;onefinestay.com/london/powis-square

4.冰岛荒野

由因加设计的这座崭新木制别墅位于阿克雷里的市郊,它与周遭环境融合得极为协调,就像是从地面上长出来的一般,它绝对是建筑学上的奇迹。三套公寓的内部设计将功能性和时尚性完美地糅合到了一起,卧室位于夹楼,浴室被装饰成了极为鲜艳的大红色,不过你或许不会在室内流连很久,因为从外面的露天平台上就可以尽情领略冰岛的湖光山色。

Tips:

住宿4晚;1646元起;airbnb.co.uk/rooms/1083329

5.开普敦

南非的美丽风光令人向往,但或许你端坐在室内足不出户就能完全领略,显赫壮美的风玫瑰公寓就为你提供了这样的机遇。这座带有七间卧室的海滨别墅非常适合举办家庭聚会,从两间面积超大的休息室可远眺海面风光(和桌山)。此外这里还配备了泳池和三处露天平台,其中的一处平台可举行传统的野餐烤肉活动。在享用完香肠和龙虾之后,不妨前往海岬洁白的沙滩上吹吹凉爽的海风。

Tips:

住宿12晚;2832元起;homeaway.co.uk/p440439

6.布宜诺斯艾利斯

栖身于这座有着挑高天花板、始建于世纪之交的公寓中,你肯定不会为阿根廷而哭泣,相反你或许还会流下几滴幸福的泪水。这座建筑位于科莱塔( Recoleta),科莱塔是布宜诺斯艾利斯最漂亮的街区。宾客们穿过装饰华丽如同教堂般的前门,再登上一座大理石楼梯,即可进入经过精心整修带有三个卧室的住宿区域。白色墙壁、木质地板、古董家具以及本土艺术家们创作的艺术作品搭配得相得益彰,卧室外面是阳台,你可以啜饮着一杯马尔贝克葡萄酒,再悠闲地欣赏着楼下优雅的Porteños 舞蹈演出。

Tips:

住宿5晚;821元起;homeaway.co.uk/p907485

7.布拉格

如果不知道室内摄影师兼设计师所设计的公寓会给自己留下怎样的印象,那不妨去异乎寻常令人叹服的46号住宅亲自体验一番。枝形吊灯和古董凸显出了19世纪式的典雅格调,而一方吧台更为内饰增色不少,吧台上面摆满了美酒、欧舒丹化妆用品以及一部存储了本地餐馆和出租车电话的手机。

Tips:

住宿5晚;1096元起;kidandcoe.com/destinations/vinohrady/the-n-46-residence

8.巴西海滨

安东尼设计的圣卡塔琳娜海滨别墅盘踞于巨大的岩石之上,它就像一艘别致的登陆飞船俯瞰着碧蓝的大海。别墅内部设计的主要灵感似乎源自芬兰的桑拿房,即以木材为主要材质,再辅以深色横梁和巨大窗户这样的现代元素。虽然这里是放松休息的绝好场所,但划船出海去捕些鱼回来然后拿到屋顶露台上做烧烤晚餐却充满了另一番闲情雅致。

Tips:

住宿8晚;4478元起;airbnb.co.uk/rooms/156247

9.苏格兰

一旦领略到了都城城堡 (Dairsie Castle)的神韵所在,你就会被它的魅力所完全征服。这座古堡堪称是中世纪建筑的代表作:拱窗深陷于厚重的坚实墙壁之中;原本隐秘的炮台现在则被改造成了浴室;石制门楣变成了窗座;而游吟诗人用过的画廊则正对着下方巨大的就餐室。不妨邀上一些好朋友,来这里开上一场别开生面的家居派对。

Tips:

住宿13晚;5480 元起;airbnb.co.uk/rooms/330808

10.加拿大

Cob Cottage 端坐于不列颠哥伦比亚梅恩岛(上岛只能乘坐渡船,这趟旅程本身就蕴含着冒险意味)宁静的果园和草地之间,从外观来看,它就像是由霍比特建筑师所设计完成的。在小屋内部,石制地板、粗制的原木横梁和土墙也充满了霍比特式的魔幻色彩,目之所及的所有陈设皆不带直角。烧木柴的火炉随时可用来驱散寒意。

Tips:

住宿2晚;778元起;airbnb.co.uk/rooms/172083

— END —

登陆杂志铺、京东、天猫刊界订阅,立享优惠惊喜!

行客seeker微信公众号:seeker-me

《全境封锁2》独家盘点!华盛顿特工挺身而出,60种武器自由搭配

每天一篇战术&知识干货

7*24小时,不间断的战术大图

微博:@轻兵器爱好者

作为育碧的开年大作,《全境封锁2》无疑吸引了全球无数玩家的关注。尽管其前作《全境封锁》发售之初曾饱受批评,但育碧并未就此放弃这款游戏,而是对种种问题加以完善,终于挽回了这一全新IP的口碑。

华盛顿特区崩塌,特工挺身

《全境封锁2》的故事发生在美国首都——华盛顿特区。距离“绿色病毒”的爆发已经过去了七个月,但美国仍然处于无政府状态,就连“空军一号”都已经坠毁,总统则下落不明。华盛顿特区的街头成了军阀与匪帮混战的战场。

玩家们扮演的国土战略局特工必须在如此严峻的环境下拯救华盛顿。但在混乱的表象后,仍然酝酿着一个惊人的阴谋……

在《全境封锁2》的世界中,共有60余种型号的武器,加上不同的改装版本,可供使用的武器足有上百种!

从古典的温彻斯特连发枪、经典的莫辛-纳甘M44,到现代的各种AR-15改进型,甚至TAC-50反器材和M32A1发射器,玩家都可以自由选择。其中既有执法部门配备的全自动武器,也有美国民间常见的半自动。如此众多的武器,相信所有轻武器爱好者都能从中找到自己喜爱的型号。限于篇幅,我们只能挑选游戏中较为有特色的部分武器进行介绍。

M4与AK对决,经典突击出现

在本作中,突击仍然是玩家的主力武器。游戏中可供玩家选择的突击多数都是现实中的或武器,如、SCAR、P416、TAR-21、AKM、ACR以及FAMAS等。此外,不同阵营的敌军也会使用不同型号的突击。

使用ACR射击的“黑色獠牙”士兵

经典的在《全境封锁2》中被称作“M4”,这个名字或许来源于现实中的M4执法型。游戏中的“M4”使用经典的A2式护木,但在准星和护木下方都增设了导轨,能够加装握把等配件。在游戏中具备较高的射速和稳定性,并且更容易获得配件,是非常强力的一种突击,但威力相比其他突击要低一些。除了玩家之外,联合作战部队(JTF)士兵、民兵和敌军“真实之子”也会使用M4。

游戏中的M4突击,弹匣的位置有些错误

P416突击的出现倒是令玩家们眼前一亮。P416是美国爱国者军械公司(POF-USA)设计制造的一种突击。其在AR-15的基础上研发,改用了活塞短行程原理,与著名的HK416类似。P416也是美国民间最先改用活塞短行程自动原理的AR-15系之一。虽然名气不大,但P416的性能其实十分优秀。其机匣采用航空铝材制造,轻巧并且坚固,价格也并不昂贵。

游戏中的军规P416突击

在《全境封锁》中,P416是不能被玩家获取的,只有敌军能够使用。而在《全境封锁2》中,P416成为了玩家的初始武器,并且能够正常掉落。游戏中的P416具有较高的射速,虽然略低于,但威力相比更高。并且P416的造型更加“现代”,很适合外观党使用。

P416的民用型号——P415 Edge“”

相比前作而言,《全境封锁2》中的AKM性能得到了大幅提升,特别是稳定性得以改善。但在游戏前期,玩家无法获取7.62毫米扩容弹匣,这就大幅限制了AKM的持续输出能力。

在游戏中,共有3种AKM的变形枪,包括经典AKM,军规AKM和黑市AKM。经典AKM在传统AKM的基础上直接加装了导轨,而黑市AKM则换装了Magpul CTR和护木,并改用PMAG弹匣。不过“军规AKM”安装的明显是AK-74突击使用的5.45毫米弹匣。

游戏中的经典AKM

半自动被专门归类为“”

夏普821和松下P905i哪个好综合对比,夏普mt821和831区别大

在《全境封锁2》中,半自动被专门归类为“”。不过也有例外——温彻斯特1886杠杆连发枪也被归类到之中。游戏中的多数是现实中的民用武器,如LVOA-C、SIG716、USC等,但也包括了Mk.17、M16A2这些。

游戏中的SIG 716

SIG716是西格-绍尔在2010年的SHOTSHOW上推出的活塞短行程AR,发射7.62mmNATO弹,与其一同推出的还有发射5.56mmNATO弹的SIG516。民用市场销售的版本只有半自动射击选项,而部门采购的型号则可以进行全自动射击。

现实中的SIG 716

目前,SIG516已经被多个国家和地区的部门采用,包括中国香港的“飞虎队”也装备了这种。而就在今年二月,印度陆军采购了超过7万支SIG716自动。在前作中,SIG716曾作为奇特武器“恶魔”和“脚跟”出现,而在本作中则改为普通武器登场。

使用短弹匣的USC

USC则是著名的UMP45的民用型号。在前作中,USC被设定为一种全自动,但较小的弹匣容量令这支武器在实际游戏中毫无用处。而在本作中,USC则被归类到了中。虽然是中威力最小的,但USC的射速已经堪比一些低射速的全自动武器,同时相比自动武器威力更大,因此在游戏中相当强力。但或许是出于平衡性,发射弹的USC的后坐力竟然远远大于其他7.62毫米口径的!

游戏中的USC,奇怪的使用了S-1-A快慢机而非现实中的保险

M60通用,具备强大的压制能力

相比前作而言,《全境封锁2》的并没有什么独特之处,仍然只有M249、M60、MG5、RPK74和L86A2几种基础型号以及相应的变形枪。不过,M134转管作为固定和特定BOSS的专属武器加入了游戏之中。在游戏中,“真实之子”的手会使用M60通用,具备强大的压制能力。而“流亡者”的手则使用了更加轻便灵活的RPK-74轻。

使用RPK-74M的敌军手

令人有些难以理解的是,游戏中的RPK-74系列轻全部使用的是7.62毫米武器的配件,如弹匣、枪口装置等。这样的设定或许是出于简化游戏配件系统的考虑,例如AKM和FAL都使用相同的弹匣配件。但为RPK-74这种配备5.56毫米配件,显然更加合理。但这样又和5.56毫米口径的L86A2轻产生了定位重合。或许这才是RPK-74系列在游戏中使用7.62毫米配件的真正原因吧。

游戏中的经典RPK-74轻

在《全境封锁2》中,的地位被大幅加强。由于突击无法在10米内造成暴击伤害,就成了近距离作战的最佳选择。游戏中的不仅有经典的MP5、FN P90等型号,也包括了新锐的MPX,以及较为冷门的SOCIMI T821。当然,著名的也在游戏中有所出现。

使用Vector射击的特工

SOCIMI T821是意大利SOCIMI公司设计制造的一种。SOCIMI的名字,很多人恐怕从未听说过。但大名鼎鼎的SPAS-12的制造商——路易吉·弗兰奇想必是无人不晓。而SOCIMI正是路易吉·弗兰奇的前任东家。但由于经营不善,SOCIMI于1993年破产,将路易吉·弗兰奇转手卖给了。而T821的原型枪和早期型号,实际上就是由路易吉·弗兰奇生产的,直到后来才转由SOCIMI生产。

现实中的SOCIMI T821

T821造型上最大的特点就是向右折叠的管状,与Uzi的两段式折叠相差较大。内部结构上,T821基本保持了Uzi的结构,但进行了一些改进,降低了射速,提高了武器的可控性。不过,这种的产量不大,虽然计划向美国出口,但出口的原型枪并未完成。因此这种少见的在《全境封锁2》中大量出现,令人感到有些奇怪。

游戏中的“黑市T821”,取消了并加装了导轨

始终是美国民间轻武器的重要组成部分,而在《全境封锁2》中,玩家可以选择的种类也相当多样。从威力巨大的、史密斯-维森686等大威力,到经典的1911式,甚至截短的双管,都能够在游戏中获得。

手持P×4的特工,眼前是华盛顿的地标——国会山与华盛顿纪念碑

作为全美国最受欢迎的之一,M1911自然而然的出现在了《全境封锁2》中。游戏有3种不同型号的M1911,包括经典的M1911A1、新锐的XSE政府型和M45A1。其中,M1911A1只能加装弹匣配件,而XSE和M45A1则能够加装枪口和下导轨附件。此外,叛变JTF组成的“真实之子”部队也会携带M45A1。

游戏中的M1911A1

则是首次加入《全境封锁》的世界。在游戏中,Mark XIX以“D-50”的名称加入游戏。虽然名为“D-50”,但游戏中加入的实际上是.44口径的型号,具备8发弹匣容量。此外,游戏中还加入了的奇特武器版本“肯卓的自由”。虽然在游戏中的掉率极低,但通过生存专家奖励,玩家仍然可以获得一支。

游戏中的Mark XIX

喷子近战王者-霰弹武器篇

在《全境封锁2》中,是近距离作战的强力武器。游戏中登场的包括了经典的雷明顿M870、伯奈利M4 Super 90、Saiga12等型号,前作中的奇特武器“万众瞩目”AA-12则作为普通武器重回了《全境封锁2》。而著名的SPAS-12也加入了游戏之中。此外,威力巨大的双管仍然是近距离战斗的王者。

手持AA-12的特工

SPAS-12是意大利路易吉·弗兰奇设计制造的一种半自动,但可以切换射击模式改为泵动结构。这样的设计是为了方便改用膛压不同的霰弹。对于膛压较小的霰弹来说,可能很难正常完成武器的自动循环。SPAS-12在美国较为稀有,并且价格昂贵,只有少数收藏家会购买这种武器。

现实中的SPAS-12

游戏中的SPAS-12有着较大的威力,但只保留了手动射击模式。此外,购买黄金版的玩家还可以获得SPAS-12的奇特武器版本“摇篮曲”。和标准版不同的是,“摇篮曲”使用了少见的固定式和握把。

游戏中的“摇篮曲”,使用了少见的固定式

武器篇

与前作不同,《全境封锁2》中的被称为“射手”。“射手”包括了半自动和手动两种,半自动包括了SVD和Mk20 SSR两种型号,手动则出现了DSR-1、SRS、莫辛-纳甘M44、雷明顿M700等型号。这两种武器除了射击模式不同,其他属性均基本一致。游戏中,“真实之子”的手会使用M700,而“鬣狗帮”的手则使用了SVD。

手持雷明顿M700的特工

SRS早在前作就已经加入了游戏之中。作为一种无托,SRS的特点是枪身十分紧凑,能够在保证长度的情况下大幅缩短长度。通常来说,现代的重心都极为靠前,只适合架设在掩体上进行射击。而SRS既能固定射击,也能够和普通一样进行稳定的无依托射击。在游戏中出现了SRS的紧凑型号以及全尺寸型号,后者被称作SRS A1。虽然SRS的单发伤害较低,但具备较快的射速,能够持续精确的射击敌人。

现实中的SRS A1

其他武器

除了这些游戏中能够获得的常规武器外,在30级后,玩家还能够获得特别的“专精武器”。选择射手专长的玩家将会获得TAC-50反器材,选择爆破专长的玩家将会获得M32A1发射器,选择生存专长的玩家则会获得一把用于发射爆炸箭的十字。这些专精武器具备毁灭性的伤害,但弹药数量也极为有限。玩家必须通过消灭敌人补充这些特殊武器的弹药。

游戏中的TAC-50C,较短,弹匣上写有“AP”,指装填了

TAC-50是美国麦克米兰军械公司于1980年推出的反器材,也是世界上最为精确的反器材之一。这种威力巨大的精确射击武器曾两度创下最远记录,2002年,加拿大陆军手罗布·福尔隆使用一支TAC-50准确击杀了2430米外的武装分子。

而在2017年6月,JTF-2特种部队的一名手更是使用TAC-50创下了3540米外的IS,这一记录恐怕在短时间内都难以被再次打破。

游戏中的M32A1发射器

M32A1发射器则是著名的MGL发射器的改进型号,专门装备美军特种部队使用。M32A1发射器由南非米尔科MGL发射器改进而来,使用了Vltor的伸缩和OEG反射式,并且配备140毫米的长弹巢,方便发射各种特种。

MGL发射器的结构就像是超大号的转轮,但改为发条驱动弹巢转动。除了发射威力巨大的高爆,MGL发射器还可以发射各种非致命特种,如,等。由于性能优异,MGL发射器已经被50多个国家的军队和执法部门采购。

游戏中的爆炸,发射的箭不大,很难想象有如此大的爆炸威力

游戏中出现的十字则是美国Excalibur Vortex十字,常被用于和运动射击。不过,Excalibur Vortex的磅数较大,初速更是达到了300fps,在现实中需要结合脚蹬架进行上弦。但游戏中的十字取消了脚蹬架,特工仅仅轻轻一拉,就能轻松的装填箭,这样的臂力实在是有些惊人了。

目前,《全境封锁2》才刚刚发售数日,游戏内容也并未完全公开。相信在后续的更新中,仍然会有更多种类的武器装备加入其中!面对如此豪华的武装阵容,各位爱好者们是否已经心动了呢?

原创内容,文字著作权属作者本人所有。如需转载,请联系我们

TiDB 可观测性解读(二)丨算子执行信息性能诊断案例分享

导读

可观测性已经成为分布式系统成功运行的关键组成部分。如何借助多样、全面的数据,让架构师更简单、高效地定位问题、分析问题、解决问题,已经成为业内的一个技术焦点。本系列文章将深入解读 TiDB 的关键参数,帮助大家更好地观测系统的状态,实现性能的优化提升。

本文为 TiDB 可观测性解读系列文章的第二篇,将探讨如何利用算子执行信息更准确地分析和诊断 SQL 性能。

你有没有遇到过这样的情况:同样模式的 SQL 语句,仅仅是日期参数或者函数的变化,最终返回的结果形式也都相同,性能却相差几十甚至上百倍。现实中遇到这样的问题,我们一般会运行 explain 语句,检查执行计划的变化情况。如果执行计划没有改变,如何进行进一步排查?

这种情况下,可以通过 explain analyze 语句来深入查看算子的实际运行情况。本文将结合实际案例和常见问题,探讨如何利用算子执行信息更准确地分析和诊断 SQL 性能。

通常我们可以用explain analyze 语句获得算子执行信息。explain analyze 会实际执行对应的 SQL 语句,同时记录其运行时信息,和执行计划一并返回出来,记录的信息包括:actRows、execution info、memory、disk。

不同算子的 execution info 可以通过 TiDB 文档 (https://docs.pingcap.com/zh/tidb/stable/sql-statement-explain-analyze )了解。这些信息是研发人员在长期的性能问题定位中,总结提炼出来的指标,值得每一个想对 TiDB SQL 性能诊断有深入研究的同学阅读。

有时候一些 SQL 的性能问题是偶发的,这会增加我们直接使用 explain analyze 来分析的难度。这时候我们还需要借助慢日志功能来获取有效的算子执行信息。通常,我们可以通过 TiDB Dashboard 的慢日志查询 (https://docs.pingcap.com/zh/tidb/stable/dashboard-overview#最近的慢查询 )页面,快速定位并查询到问题 SQL 的详细执行信息。

接下来,我们将通过一些具体案例来探讨相关问题。请注意,以下案例中的执行计划大多直接来源于生产环境(做了脱敏处理),由于本地难以复现这些场景,版本难以统一。但版本差异并不影响问题诊断和分析的完整性,本文主要探讨诊断问题的思路和方法。

查询延时抖动

查询偶发性延时抖动是较为常见的性能问题之一。如果能够通过慢日志定位到导致性能抖动的具体查询语句,进一步分析这些查询的算子执行信息,往往能够找到问题的根源并获得有效的优化线索。

实际案例

以一个客户遇到过的点查询性能抖动问题为例,点查询的延迟偶尔会超过 2s。我们先通过慢日志查询,定位到某次查询的算子执行信息:

诊断分析

首先,我们看到查询中只有一个Point_Get_1 算子,其execution info中记录的执行时间为2.52s。这说明执行时间被完整记录了下来。

进一步查看execution info,我们注意到其中包含ResolveLock项。这一项的细节显示,总的执行时间为2.52s,这意味着查询的绝大部分时间都花在了resolve lock操作上。与此同时,实际的Get统计项显示总时间为2.2ms,这表明获取数据本身几乎不耗时。

此外,还有一个txnNotFound_backoff项,它记录了因残留事务触发的重试信息。这里显示总共进行了12次重试,累计耗时2.51s,与ResolveLock项的2.52s基本一致。因此,我们可以初步推测:点查询可能读取到了残留事务的锁,尝试resolve lock时发现锁已过期,进而触发了锁清理操作,这一过程导致了较高的查询延迟。

夏普821和松下P905i哪个好综合对比,夏普mt821和831区别大

接下来,我们可以通过监控数据进一步验证这一推测:

算子并发度

在 TiDB 中,我们可以通过设置一些系统参数来调节算子的执行并发度,从而最终调节 SQL 的执行性能。算子的执行并发度往往对 SQL 的执行性能有重要的影响,比如同样多的 cop task,我们把并发度从 5 改到 10,性能可能就会有将近 1 倍的提升,当然也会更集中地占用系统的资源。执行信息可以帮助我们了解算子的实际执行并发度,为更进一步的性能诊断做好准备。下面我们来看一个运维同学实际遇到的问题。

实际问题

系统中设置了tidb_executor_concurrency 为 5 以控制算子的并发度;同时设置了tidb_distsql_scan_concurrency为 15,用于限制每个读取算子的最大线程数。那么,在下述执行计划中,cop_task 和 tikv_task 是如何与这两个参数相对应的呢?

问题分析

我们正好借这个例子解释下执行信息中 cop_task 和 tikv_task 项的关系以及 cop task 的实际执行并发度。

cop_task 和 tikv_task 的关系

首先需要明确,execution info中的各类xxx_task和执行计划中的 “task” 列并不是同一个概念。

例如,在执行计划中,task列的类别分别为 ”root”、”cop[tikv]” 等。它既描述了算子实际在哪个组件执行(如 TiDB、TiKV 或 TiFlash),又进一步说明了其与存储引擎的通信协议类型(如 Coprocessor、Batch Coprocessor 或 MPP)。

相比之下,execution info中的各类task更多是从不同维度对算子执行信息进行拆解,以便用户快速定位潜在性能问题,并通过不同维度的信息进行相互印证。具体来说:

tikv_task描述的是某个具体 TiKV 算子的整体执行情况;

cop_task描述的是整个 RPC 任务的执行情况,它包含了tikv_task。例如,一个cop_task可能包含tableScan + Selection两个算子,每个算子都有自己的tikv_task信息来描述其执行情况;而cop_task则描述了整个 RPC 请求的执行信息,其时间涵盖了这两个算子的执行时间。

类似地,在 MPP 查询中,execution info中的tiflash_task统计项描述了某个具体 TiFlash 算子的整体执行情况:

cop task 的执行并发度

首先,我们来看执行计划。IndexLookUp_10是一个root 算子。我们知道,IndexLookUp 算子主要执行两个步骤:一是通过索引获取目标行的rowid;二是根据 rowid 读取所需的列数据。在 IndexLookUp_10 的execution info中,index_task 和 table_task 的细节被分别列出。显然,index_task 对应的是 IndexRangeScan_8 算子,而 table_task 对应的是 TableRowIDScan_9 算子。

从并发度的角度来看,index_task 没有显示并发信息,这意味着 IndexRangeScan_8 算子本身的并发度默认为1。然而,IndexRangeScan_8 的cop_task的 distsql_concurrency 为15(由tidb_distsql_scan_concurrency参数决定),这意味着理论上它可以并发执行15 个 cop task来读取数据。

对于table_task,其并发度为5(由 tidb_executor_concurrency 参数决定),表示最多可以同时运行 5 个 TableRowIDScan_9算子。而 TableRowIDScan_9 的cop_task的 distsql_concurrency 同样为15(由tidb_distsql_scan_concurrency决定)。因此,table_task 的最大并发读取能力为5 × 15 = 75 个 cop task

max 换成 min,慢了好几十倍

实际案例

一条对索引列求 max 值的 SQL 花费 100 毫秒左右,换成求 min 值,却需要花费 8s 多时间,这是他们 explain analyze 的信息:

诊断分析

使用算子执行信息进行性能诊断时,我们一般先从上到下看每个算子本身(即去除掉等待子算子数据的时间后)的执行时间,再去寻找对整个查询性能影响最大的算子,以下为算子执行时间的计算方法:

单子算子的算子执行时间

以下是不同类型算子的执行时间计算方法:

1. 类型为 ”root” 的算子

可以直接用该算子的执行时间减去其子算子的执行时间,得到该算子本身的处理时间。

2. 类型为 ”cop[tikv]” 的算子

执行信息中包含tikv_task 统计项。可以通过以下公式估算包含等待子算子数据的执行时间:

估算执行时间 = avg × tasks / concurrency

然后,再从该时间中减去子算子的执行时间,得到该算子的实际处理时间。

3. 类型为 ”mpp[tiflash]”、”cop[tiflash]” 或 ”batchcop[tiflash]” 的算子

执行信息中包含tiflash_task 统计项。通常可以用 proc max 减去子算子的 proc max,得到该算子的处理时间。这是因为对于 TiFlash 任务,可以简单理解为同一条查询的所有 TiFlash 任务是同时开始执行的。

注意:对于 ExchangeSender 算子,其执行时间包含了等待数据被上层 ExchangeReceiver 算子接收的时间,因此往往会大于上层 ExchangeReceiver 读取内存数据的时间。

多子算子的算子执行时间

对于包含多个子算子的复合算子,其execution info中通常会详细列出各个子算子的执行信息。例如,在 IndexLookUp 算子的执行信息中,会明确包含 index_task 和 table_task 的执行细节。通过分析这些子算子的执行信息,我们可以精准判断哪个子算子对整体性能的影响更大,从而更有针对性地进行优化。

在这个例子中,我们可以看出IndexReader_45 是对性能影响最大的关键算子。对比其两次执行信息可以发现,cop task 的数量存在显著差异:在“max”场景下,仅有1个 cop task;而在“min”场景下,却有175 个cop task。同时,proc_keys 的数量也从32增加到了480,000

从 ”operator info” 列的标记来看,“max”场景中读取顺序为降序(keep order, desc),即从大到小读取;而“min”场景中则是默认的升序(keep order)。由此可以推测:优化器根据聚合函数的类型,对索引的读取顺序进行了优化——在“max”场景中采用降序读取,而在“min”场景中采用升序读取。这种优化策略的初衷是尽快找到第一条满足条件的数据。

在“min”场景中,最小的 keys 附近恰好存在大量已被删除但尚未回收的 keys。因此,系统在读取过程中不得不扫描大量无用数据,直到最终找到第一条有效数据,这导致了显著的性能开销。

换个日期,查询慢了 160 倍还没跑出来

实际案例

这是另一个客户的实际案例:查询12 月 20 日数据的 SQL 语句仅耗时 25 分钟便完成,而查询12 月 21 日数据的 SQL 语句却运行了超过 40 小时仍未完成,最终只能手动终止。以下是这两条 SQL 语句及其对应的执行信息:

诊断分析

首先对比两次查询的执行计划,确认执行计划未发生跳变。接着,我们从上至下逐一分析,找出两次查询中主要执行时间差异的来源。可以看到,Insert_1、Projection_7 和 HashAgg_16 的执行时间均在秒级,因此可以排除这些算子的嫌疑。

重点聚焦于IndexLookUp 算子。在 12 月 21 日的查询中,index_task 的总耗时为 40 小时,但实际获取 rowid 的时间仅为 1 个多小时,其余时间主要消耗在等待 table_task 读取表数据上,具体为 wait:39h4m44.7s。

进一步查看table_task 的执行细节,以下两个信息值得关注:total_time:202h30m18s 和 concurrency:5。计算可得,平均每个并发任务的耗时为202h / 5 = 40.4h,与 IndexLookUp 的总耗时基本一致。因此,基本可以确定问题出在 table_task 上,即对应的 HashAgg_9算子。

在HashAgg_9 算子的execution info中,主要包含以下关键信息:

time: 200h6m9.4s, loops: 157469:该算子的任务类型为”cop[tikv]”,表明其实际在TiKV上执行。这里的执行时间反映了 TiDB 等待和读取 Coprocessor 任务返回数据的总耗时。需要注意的是,这个时间并不是实际的walltime,而是多个并发任务的执行时间累加而成。由于table_task的并发度为5,因此实际算子的walltime大约为200h / 5 = 40h,与总耗时一致。从 TiDB 9.0 版本开始,我们将这种并发执行时间的统计项名称改为total_time,以便与真正的walltime区分开来。

cop_task: 此部分信息描述了向 TiKV 发送cop task的执行情况。其中,rpc_timedistsql_concurrency是两个关键指标:

rpc_time是 TiDB 端记录的从发送cop task到接收结果的总耗时。

distsql_concurrency是单个table_task发送cop_task的并发度。由于table_task的并发度为5,因此整体的cop task并发度为5 × 15 = 75

根据这两个指标,我们可以推算出 cop task 的实际 walltime 大约为 138h / 75 ≈ 1.8h,与整体的 40h 相比,占比并不高。

backoff:这部分描述了 cop task 发送失败时重试的时间。

tikv_task:这部分是描述的HashAgg_9这个算子在 TiKV 上的执行信息,实际时间并不多。

scan_detail:描述了 TiKV 从 RocksDB 读取数据的信息统计,由于 tikv_task 推算出算子总执行时间并不长,所以这部分信息不影响总体性能。

综合上述信息可以发现,HashAgg_9 的总执行时间并非主要消耗在cop task的执行上,而更可能是花费在从cop task response中读取数据的过程中。结合 CPU profiling 的结果,可以看到 Go runtime 的 GC(垃圾回收)占用了大约80%的 CPU 时间。

进一步观察heap profiling的结果,可以最终确认问题根源是 issue44047 ( https://github.com/pingcap/tidb/issues/44047 ):此前,TiDB 为了精确统计cop task的 p90 等指标,会缓存所有cop task的执行信息。当cop task数量极为庞大时,这会导致 TiDB 内存紧张,进而频繁触发 Go 的 GC(垃圾回收),最终引发性能异常。该问题已经在 TiDB 6.5 版本中修复。

在 TiDB 9.0 版本中,我们将进一步丰富算子执行信息,提升系统的可观测性,具体改进包括:

1. 算子执行时间的细化

在 9.0 版本中,TiDB 算子的执行信息新增了openclose时间。此前,执行信息中的time并未涵盖算子初始化和结束执行的时间,这可能导致执行时间显著低于实际耗时(如 issue50377 ( https://github.com/pingcap/tidb/issues/50377 ) 和 issue55957 ( https://github.com/pingcap/tidb/issues/55957 ))。在 9.0 版本中,time被修正为从进入算子到离开算子的完整wall time,包括所有子算子的执行时间。其中:

  • open:表示算子初始化所需的时间。
  • close:表示从算子处理完所有数据到完全结束的时间。
  • time包含了openclose的时间。

2. 并发执行时间的区分

当算子存在多并发执行时,此前的execution info中显示的是并发任务的wall time累加值,这可能导致子算子的执行时间大于父算子的执行时间(如 issue56746 ( https://github.com/pingcap/tidb/issues/56746 )),容易引起混淆。在 9.0 版本中,这些累加的时间信息(如timeopenclose)将被替换为total_timetotal_opentotal_close,以更清晰地反映并发执行的真实耗时。

3. TiFlash 执行中的等待时间信息补充

在 TiFlash 的执行信息中,新增了以下等待时间的统计:

  • minTSO_wait:记录 MPP Task 等待 TiFlash MinTSO 调度器调度的时间。
  • pipeline_breaker_wait:在 TiFlash 的 Pipeline 执行模型中,记录包含 pipeline breaker 算子的 pipeline 等待上游 pipeline 数据的时间。目前主要用于展示包含 Join 算子的 pipeline 等待哈希表构建完成的时间。
  • pipeline_queue_wait:在 TiFlash 的 Pipeline 执行模型中,记录 pipeline 在 CPU Task Thread Pool 和 IO Task Thread Pool 中的等待时间。

通过这些改进,TiDB 9.0 版本将为用户提供更全面、更准确的执行信息,帮助更好地诊断和优化查询性能。

文章分享结束,夏普821和松下P905i哪个好综合对比,夏普mt821和831区别大和的答案你都知道了吗?欢迎再次光临本站哦!

用户评论

白恍

终于看完了这篇关于夏普821和松下P905i的比较! 我一直在犹豫要不要升级手机,这两款都挺吸引我的。这篇文章帮我了解了他们的优缺点,决定下一步去体验一下。

    有17位网友表示赞同!

艺菲

这篇对比很棒! 我对这两个机型很感兴趣,你对夏普821的拍照部分做了详细介绍,我很期待看看实拍效果。松下P905i的游戏性能也很强势,这对于游戏爱好者来说非常关键!

    有16位网友表示赞同!

羁绊你

我觉得文章中没细说屏幕分辨率的区别,这个对很多用户来说很重要啊! 夏普821的续航表现怎么样? 还有其他功能方面的细节,希望下次能补充。

    有19位网友表示赞同!

冷嘲热讽i

夏普821和松下P905i哪个好? 看完你的对比,我觉得两款手机各有优缺点,如果注重拍照效果,选夏普821; 如果喜欢流畅的游戏体验,可以考虑松下P905i 我打算再仔细研究下我的需求选择!

    有16位网友表示赞同!

冷眼旁观i

我也是摄影爱好者,对于相机性能的要求很高。看了你对夏普821的评测,感觉它的传感器和镜头技术真的超棒! 松下的拍照表现怎么样呢? 需要更多细节对比!

    有10位网友表示赞同!

怅惘

我觉得文章比较主观,缺乏一些客观的测试数据支持。比如CPU跑分排行榜、电池续航时间对比等等,这样能更直观地了解两款手机的性能差异。

    有14位网友表示赞同!

墨城烟柳

夏普831和821的区别真的不大? 文章里提到的是屏幕材质和配置不一样,但其他方面基本一致,对我来说意义不大!

    有7位网友表示赞同!

服从

我比较看重性价比,这两款手机的价格差距很大, 夏普821可能更适合预算有限的用户;松下P905i是高性能旗舰机,功能非常全面!

    有11位网友表示赞同!

强辩

夏普821的体积和重量怎么样? 我想买个舒适拿上手的手机,这个方面比较看重!

    有19位网友表示赞同!

我怕疼别碰我伤口

对这两个品牌不太了解,希望可以多聊聊它们的历史和用户评价,这样才能更全面地理解两者的优缺点!

    有8位网友表示赞同!

凝残月

这款松下P905i的游戏性能确实很强大,感觉是玩游戏的必备款啊! 夏普821这款手机也挺不错的,适合日常使用和其他功能需求比较均衡的人群。

    有5位网友表示赞同!

。婞褔vīp

我之前用的也是夏普手机,很喜欢它的拍照效果和简洁的操作界面。不过松下P905i的游戏性能更强大,让我很感兴趣尝试一下新科技!

    有13位网友表示赞同!

身影

夏普831和821的区别确实不大,但是价格差别还挺大哈!感觉买821性价比更高一些?

    有9位网友表示赞同!

龙卷风卷走爱情

我在选择手机的时候非常注重续航时间,这篇文章没提到两款手机的电池容量和使用时长对比,希望下次能补充!

    有13位网友表示赞同!

泪湿青衫

夏普821和松下P905i各有千秋吧,看个人对哪些功能需求更高!如果我是摄影爱好者的话,会选夏普821。

    有16位网友表示赞同!

淡淡の清香

手机越来越智能了,这两款型号都是顶尖科技的体现,我也很期待未来手机的发展趋势!

    有13位网友表示赞同!

病态的妖孽

对于一款手机来说,除了硬件配置之外,软件体验也很重要。 有没有对比两款产品的系统流畅度和应用商店? 希望下次能补充这些方面的信息!

    有18位网友表示赞同!

【夏普821和松下P905i哪个好综合对比,夏普mt821和831区别大】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界