指数型思维的五大原理
指数型组织的前世今生
世界500强作为企业界的指示标,1920年的时候,它们的平均寿命是67岁,在2015年它们变得年轻异常,平均寿命只有12岁。这就意味着,那些曾经的老牌大公司逐渐被新兴公司取代,其间的根本原因在于传统的线性思维被指数型思维打得一败涂地。
颠覆一切的信息技术
20世纪80年代早期,手机既笨重又昂贵,著名的咨询公司麦肯锡预测在2000年之前,移动电话的使用量不会超过100万部,所以它建议美国电话电报公司不要进入移动电话行业。但实际上,2000年时手机数量达到了一亿部,麦肯锡被狠狠地打脸,它的预测出现了99%的差错,这也导致美国电话电报公司错失了信息时代最重要的机会。
无独有偶,3D打印、生物技术等领域都发生过类似“谬以千里”的预测。归根结底,不过是这些领域的专家总是以线性的方式进行推测,毫不顾及正在“信息化”的一切,信息化产业的发展早已以指数型的方式增长了。诺基亚和谷歌的命运正是对这一现象最好的诠释。
线性的诺基亚VS指数的谷歌
诺基亚预测未来是智能手机的天下,为了能在未来智能手机的决战中掌握主动权,诺基亚提前布局,它们认为智能手机的决战一定在地图领域,于是斥资81亿美元收购了当时最好的地图公司——Navteq。Navteq耗费巨大财力在街道两边埋了大量的传感器,以获取街道信息。它的竞争对手谷歌却以11亿美元买下了Waze,一家毫不起眼的地图界的小公司Waze,它的策略是利用其用户手机上的GPS传感器来获取交通信息,因为用户手机的暴增,短短两年内,Waze的交通数据量就赶上了Navteq,四年之后更是Navteq的10倍以上,但成本却为零。可见,Navteq是线性思考的经典范例,Waze则是指数型思考的典型代表。
指数型思维最经典的理论当数“摩尔定律”。就是集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。这样每一次更新就是一种指数级的累积,类似于数学的幂次曲线。
二、指数型组织的11个属性
虽然指数型组织有11个属性,但并不是每一个指数型组织都具备全部属性,但其具备的属性越多,扩张速度就可能越快。
MTP:指数型组织最重要的属性
指数型组织都有一个共同点:他们都有一个崇高而热切的目标。M代表宏大,T代表变革,P代表目标。足够鼓舞人心的MTP,本身就是一种竞争优势,它会鼓励人们创造出自身的社区、群体和文化。如果一家公司的眼界很窄,那它就不太可能会追求能实现高速增长的商业战略。
谷歌的口号是“管理全世界的信息”,Quirky的理想是“让发明触手可及”,樊登读书会的使命是“帮助3亿国人养成阅读习惯”······强有力的MTP会给先行者带来特别有有效的帮助,能够站在一个品类的制高点。另外,MTP并不是任务宣言,而是都在说它想要实现什么。它们的目的是吸引组织内部和外部的人,抓住他们的心灵和思想,带动大量的人员和你一起去做这个伟大的事业。其实,在我们创业时候的发心很重要,你想为这个世界带来一些什么样的变化,把这个东西用MTP的方式描述出来。它既包含了足够的宏大,又有着变革的思想,同时是一个伟大的目标 ,它能帮助你吸引一些志同道合者和你一起推动这个目标前进。
指数型组织的5大外部属性 (SCALE)
指数型组织应该有利于组织的快速扩张,为了做到这一点,它应该具备以下5个属性:
随需随聘的员工(Staff on Demand)
社群与大众(Community&Crowd)
算法(Algorithms)
杠杆资产(Leveraged Assets)
参与(Engagement)
外部属性1:随需随聘的员工,取代传统的岗位聘任制
对任何指数型组织而言,随需解聘的员工是在快速变化的世界中实现快速、多功能和灵活性的必要特征。事实上,无论你的员工多么有天赋,其中大多数人很有可能迅速过时,并失去竞争力,且成本高昂。对时下公司而言,拥有永久性的员工充斥着越来越多的风险。而外部的临时劳动力可以保持更新,以填补专业能力的空缺,降低用人成本。
掌阅电子书,需要将大量的纸质书转化为电子书,如果招聘专职员工来做,势必花费巨大。掌阅的解决办法就是建立一个工作平台,雇佣兼职大学生来做,如果作品审核合格,掌阅就会打款给他,这样既保证了质量,同时也节省了成本。
外部属性2:社群与大众,把一大群充满热情的专业技能爱好者组成社群
克里斯·安德森在2007年组建了一个DIY无人机的社群,在这个社群里边,所有的人都在上传无人机的设计方案,测评各种无人机的参数。这些大众都是无人机的狂热粉丝,并不是公司聘请的专业人员,但他们却创造了惊人的成绩。怎么样才能实现这个效果呢?一般而言,围绕指数型组织建立一个社群需要经历以下三个步骤:
1、利用MTP来吸引早期成员参与:MTP是将成员吸引到轨道上的一股强大的力量。特斯拉、TED等均是个中翘楚。
2、培育社群:培育的要点包括倾听和反馈。
3、创建一个平等参与和自动化的平台:如Airbnb的房东和用户会都会填写评价表格。
外部属性3:算法,获取海量的数据
当阿尔法狗一统围棋界的江湖时,其绝招自然是深度学习的算法。可以说当今世界的发展很大程度上要依赖算法,优步也好,Airbnb也好,其快速增长的最大功臣当属算法。所谓算法即HVVBH,即首先收集数据;再组织这些数据;然后开始应用这些数据,从中找出关键点,归纳潮流风向;最后释放这些数据,让它变成一个平台,利用开放数据,开发出有价值的服务和新的功能。
外部属性4:杠杆资产,取代实体资产
优步并没有自己的车,但是它可以通过平台让全世界的车为它赚钱;Airbnb并没有自己的房间,但它可以通过平台让家家户户把多余的房间贡献出来,这就是杠杆资产。所以任何一个指数型组织最重要的东西,都不是实体资产,而是数据。其他的都可以通过外包或杠杆资产来实现。
外部属性5:参与,采取巧妙的方法让用户参与进来
在所有的外部属性当中,一定要在界面上去鼓励大家参与。在适当的情况下,参与会创造出超大范围的网络效应和积极的反馈回路,从而提高用户的忠诚度,或将大众转变成社群,还可以借助市场的宣传力量等。
指数型组织的5大内部属性(IDEAS)
在运用SCALE五大外部属性时,组织产出会激增,而这就要求指数型组织的内部控制机制必须得到仔细而高效的管理。
用户界面(Interface)
仪表盘(Dashboards)
实验(Experimentation)
自治(Autonomy)
社交技术(Social Technologyies)
内部属性1:用户界面
用户界面是指指数型组织连接和管理SCALE外部属性的过滤和匹配过程。良好的用户界面,是组织扩张的重要条件。在我们的生活中,优步、淘宝、大众点评等用户界面都非常友好, *** 作简单便捷。同时它还有助于管理“富足”,由于外部属性所产生的数量庞大的产出,这就意味着用户界面需要过滤和匹配,评价、排序和打分。
内部属性2:仪表盘
指数型组织能够获得大量来自顾客和员工的数据,需要一种新的方法来衡量和管理组织。而实时显示关键指标信息的仪表盘,能够让组织内部的每一个人都能了解关键信息。这就需要在公司的运营中嵌入度量指标,并进行实时跟踪。
内部属性3:实验,通过实验实现快速迭代
扎克伯格认为“最大的风险就是不承担任何风险”,持续不断地实验是如今唯一可行的降低风险的方法。无论在何种行业和组织中,经过适当筛选的、许多自下而上的创意,总是比自上而下的思维方式更为优秀。在理想的情况下,指数型组织应该是双管齐下,即创意自下而上产生,而支持则是自上而下。
Adobe Systems 公司曾经推出创新工作坊,报名的员工会获得创业指南和相应的创业基金,员工同时会得到45天的时间对自己的创新想法进行实验和验证。这一方法激发了Adobe Systems的实验精神,公司能够以系统化且具有可比性的方法,发现并实现有前途的创意和想法。
内部属性4:自治
在遵循MTP的情况下,实现员工高度自治,这种组织风格可以创造社交化、开放和信赖的文化,带来了更愉悦的员工团队。要实行员工自治,就要求要有伟大的愿景,及时反馈的能力以及每天仪表盘上的OKR数据展示。
内部属性5:社交技术
社交技术由7个关键元素组成:社交对象、活动流、任务管理、文件共享、远程交流、虚拟世界、情感感应。在实现这些元素后,我们就能创造出透明性和连通性,降低组织的信息延迟,而后者是至关重要的。其终极目标就是高德纳提出的零延迟企业(zero latency enterprise),即构思、接受和实现三者之间不浪费任何时间的公司。实现更快的对话、更短的决策周期、更快的学习能力、还有更稳定的团队,产生极高的投资回报率。
指数型组织形成的9大驱动因素
指数型组织不仅能带来极大的竞争优势,也是“先到先得”的,谁都不想错过这个好机会。它不是哪个天才的凭空想象,而是在多种要素的共同作用下进化而来,其中有九大重要的驱动因素。
因素1:信息让一切变得越来越快
放眼四周,由摩尔定律和其他诞生于数字世界的基本力量创造出来的全新信息范式正在加速产品、公司和产业的新陈代谢。在一个又一个行业里,产品和服务的开发周期正在不断缩短。
互联网将这种令人震惊的变化速度展现得淋漓尽致。现在许多产品都会以未完成版和测试版姿态提前发布,目的就是尽早地收集用户数据,确定该如何“完成”这一产品。“数字化”正在从根本上改变许多领域的竞争格局,从意想不到的地方带来了新的玩家。在某些国家,银行正在涉足旅游业务。我们也看到不少旅游公司转向保险业,零售商转向媒体。其结果就是,无论你身处什么行业,都可能遇到前所未见的新竞争对手。
因素2:“去货币化”势不可挡
互联网在过去10 年里最重要、却最不为人所知的一大成就就是,它将市场营销和销售的边际成本降到了近乎为零的地步。在谈及以信息为基础或运用信息的领域时,这一优势就一目了然了。
Uber的车队里增加一辆车和一名司机的成本基本为零。同样的道理,Quirky能以基本为零的成本找到下一个消费类产品。即便是在传统高资本支出的行业里,指数型组织也能凭借接近100%可变成本扩张自己的业务。
因素3:“颠覆”已成创新常态
诚如史蒂夫· 福布斯所言:“你要么颠覆自己,要么等别人将你毁灭。”这句话适用于每一个市场、地区和产业。我们在无人机、DNA 测序、3D 打印、传感器、机器人和比特币等领域看到了这样的变革。在这些行业的颠覆式创新中都有一些固定步骤:
领域(或技术)信息化
成本以指数速度降低,获取的难度也因去货币化而降低
业余爱好者聚在一起组成开源社群
带来新的技术组合和混合学科
推出品质提高、价格降低好几个数量级的新产品和服务
现状被颠覆(该领域朝信息化发展)
因素4:“专家”不再值得信赖
历史告诉我们,最好的发明或解决方案几乎都不是出自专家之手;它们基本上来自那些并非业内专家,却有着新鲜观念的人。
休利特基金会在 2012 年赞助了一场比赛,目标是开发一款算法,对学生的作文进行自动评分。最有趣的是,在胜利者当中,没有一人在此前有过任何自然语言处理的经验。尽管如此,他们还是击败了那些拥有数十年自然语言处理经验头衔的专家。
因素5:“5年计划”过时了
大型公司的一大特征就是都有战略部门,负责制订和发布5 年计划。在几十年前,制订这样长远的计划还是可行的。然而,在指数型的世界里,5年计划简直就是笑话。
未来的变化速度实在太快,超前思考很容易会产生错误的预期。在指数型组织的世界里,目标胜于战略,执行胜于计划。将5 年计划换成实时性较强的新元素可能会带来一些不安,但也同时令人振奋,这种勇于进取的心态会带来惊人的回报。
因素6:小公司的优势更大
小型团队的一项关键优势在于,它能承受的风险要比大型团队高得多。而且在信息化的世界里,小公司也能通过平台达到与大公司相同的高度。在眼下乃至不远的将来,公司的适应力和敏捷程度的重要性会逐渐超过大小和规模。
灵活运用用户原有资产的Airbnb,它现在的价值已经超过了全世界凯悦连锁酒店的总和。当凯悦拥有549处房产和45万名员工时,Airbnb却只有1324名员工。
因素7:“租赁”取代“拥有”
以低成本获取技术和工具,这是让世界各地的个人和小型团队获得发展动力的一项重要机制。这也就意味着任何个人或小型团队都可以通过租借设备,从而获得与财大气粗的老牌公司一样的制造能力。“租赁”而非“拥有”的哲学是构成指数型组织的敏捷性和灵活性,并继而带来成功的主要因素。
因素8:“信赖”胜于“控制”,“开放”胜于“封闭”
传统组织大多采用控制和封闭的框架,公司往往要在管理层和团队之间漫长的反馈回路上浪费大量资源,不得不进行监督和干涉。在过去的几年里,一批全新的协作工具的出现让组织能在无监督、全员工自我管理的情况下,管控一支小团队。指数型组织正在逐步掌握这些能力,他们通过实时跟踪数据来完成自我管理,并且产生了卓越的成效。
因素9:一切皆可测量和知晓
传感器革命是时下正在发生的最为重要却最不广为人知的技术革命之一,因为有了它,我们可以了解我们想要的数据。正如飞机引擎的传感器多达3000个,每次飞行它们都会记录下数十亿个数据点。指数型组织正从两种角度利用这种加速趋势:在现有的数据流上建立新的商业模式,或在旧的范式上添加新的数据流。
三、如何创建指数型组织
创建指数型组织的关键步骤
在评估一家创业公司的投资价值时,投资者通常会考虑以下三类主要的风险领域:
技术风险:是否可行?
市场风险:人们会买这个产品吗?
执行风险:这支队伍能合格地运作吗?
每家创业公司都面临的一大挑战就是找到降低这三类风险的方法,并在这个过程中找到目标问题的商业模式。而创建指数型组织的关键步骤,则可以从源头上降低这三类风险。
第1步:选择一个MTP。首先问自己,我想要解决的最大问题是什么,找到问题领域,然后构思一个相对应的MTP,保证自己对准备攻克的问题领域有强烈的热情和激情。
第2步:加入或创建与MTP相关的社群。无论你从事什么行业,为目标拼搏的人组成的社群,都会为相同的目标倾力投入。
第3步:建立一支团队。在任何一家创业公司,初创团队的慎重构建都是性命攸关的事情。组建成功的指数型组织初创团队的关键就在于每个人都拥有朝MTP奋发的热情。
第4步:突破性创意。可以利用社群或大众来发现突破性创意或新的实现模式。
第5步:建立商业模式蓝图。一旦找到了核心创意或突破性想法,下一步就是详细计划该如何让它走向市场。
第6步:寻找商业模式。寻找新的商业模式,使它在长期战略上与特定行业的关系密切的其他指数型组织合作。
第7步:建立MVP。MVP就是一种应用性质的实验,用来确定一个最简单的产品能否闯入市场,以及能获得怎样的用户反馈(同时也有助于在下一轮开发中寻找投资者)。随后,你就可以在反馈回路中快速更新和优化产品,实现开发路线。
第8步:验证市场和销售。一旦产品得到了目标市场的使用,那么就需要建立起客户获取渠道来促使新的访问者发现你的产品。戴夫·迈克鲁尔的AARRR就是一个很好的模型:
获取(Acquisition):用户发现你的速度快吗?(增长指标)
激活(ACtivition):用户的第一印象好吗?(价值指标)
保留(Retention):用户会回来吗?(价值指标)
收益(Revenue):你如何赚钱?(价值指标)
推荐(Referral):用户会告诉别人吗?(增长指标)
第9步:实现SCALE和IDEAS。好的指数型组织并不意味着实现所有11项的SCALE和IDEAS属性。好的MTP加上三四项其他属性,通常就足以带来成功了。关键在于确定你应执行的是哪些属性。
第10步:塑造文化。在高速扩张的组织中,文化、MTP和社交技术就是在指数型组织的两边条约中保持团队凝聚力的胶水。要做到这一点需建立OKR系统,然后让团队习惯于透明、责任、执行、高效风格,并不断持续深化。
第11步:定期回顾关键问题。在建立创业公司时,你需要思考8个关键性问题,而且要定期回顾这些问题。每一个能获得满意回答的问题,都会让你一步步接近目标。
1、你的顾客是谁?
2、你解决的顾客问题是什么?
3、你的解决方案是什么?至少现状改善了10倍吗?
4、你会如何为产品或服务进行市场销售?
5、你的产品或服务的销售情况如何?
6、你如何利用病毒效应和净推荐值将顾客转变为宣传者,从而降低需求的边际成本?
7、你如何扩大客户群体?
8、你如何将供应的边际成本降至零。
第12步:建立和维护平台。建立一个成功的平台,需要以下四个步骤:
1、找出某个消费用例的“痛点” 。
2、找出生产者与消费者之间任何互动当中的核心价值单元或社交对象。
3、设计出一个促进这种交互的方法。
4、决定如何围绕这一交互建立一个网络。
当万事俱备,即构思了巧妙的MTP并具备了相应属性,结果将会是惊人的。
中型公司如何获得指数级成长
与创业公司不同,一家已经存在的中型公司只能在现有基础上向“指数型组织” 迈进,从而实现10倍的绩效改善。对原有公司而言,解决方案必然是具体问题具体分析的:你必须从已有的东西入手,在此基础上建设。换句话说,世界上并没有什么“指数化”的通用模板。通过设定“社交编程”MTP,GitHub变成了600万开发者的开源社区,是指数型组织中的NO1。Coyote Logistics则致力于“提供史上最佳物流体验” ,一举变身美国成长最快的物流公司。
对于原有公司而言,所有的指数型组织解决方案都是量身定制的。 一般而言,将原有的企业转变为指数型组织需要两个条件:
第一,是公司文化,要能够迅速适应快速,且往往是根本性的变化。
第二,塑造一个得到董事会和高级管理层全力支持的梦想家领袖。要让一家公司以令人目不暇接的速度发展、让员工各施所长、让顾客心满意足,并建立起精密而彻底的技术基础支持,不仅要求领导者思想远大、行动果敢,而且还要得到公司中最有权力之人的支持。
小米的雷军就是一个梦想家领袖,思想远大,行动果敢。为他赢得了董事会的大力支持,他拥有大量的粉丝,大众更容易帮他,一起来实现某个目标。格力的董明珠、华为的任正非都是梦想家领袖的代表人物。对于想要进入指数型轨道的传统公司而言,主管和执行官团队的性格和勇气往往比他们的能力更有决定性作用。
大型公司向指数型组织靠拢的4大策略
传统大公司的层级结构,员工数量和实体资产,使他们自己无法适应目前和未来的需要。在这个新陈代谢极快的新世界,指数型技术正在对越来越多的行业形成致命冲击,因此,大公司必须想办法让自己尽可能地向指数型组织靠拢,避免成为下一个柯达、黑莓或者诺基亚。
策略1:改变领导层
改变大公司领导层级的方法有4种:教育、董事会管理,实现多样化、技能和领导力。
教育:让领导层开始转变思路,慢慢接受指数型思维方式。在这种情况下,可以引入外部资源,基于加速技术更新你的高级管理层和董事会。
奇点大学、X大基金会和德勤合作开设了为期4天的研讨会。参加课程之前,75%的执行官都表示自己很少甚至并不知道公司会牵涉哪些技术。在课程后100%的人都说自己已对这些技术准备了应对策略。
董事会管理:为董事会成员普及知识,让他们能认同首席执行官的大手笔变革计划。此外,利用OKR来跟踪董事会的表现。
实现多样化:在性别、经验和年龄上的多样化会带来更好的结果。打破旧派思维方式的壁垒,将墨守成规者替换成在经验和观念上有着多样性的个人和团队。要记住,多样性的一个最重要方面就是要让年轻人站在权利和影响力的位置上。
技能和领导力:员工的类型包括优化者、扩张者和传道者。公司常犯的一大错误就是将一个领域表现最好的人调到另一个领域期望他们能同样做得好。然而,只有从内部找到求新求变的传道者更利于塑造指数型组织。所以,在指派管理层和顾问团的时候要始终考虑多样性,定期让高层参与个人改变计划,认真审视自己的领导技能。
策略2:结盟、投资和收购
大型公司可以制定计划,本着观察、合作、投资和收购的目的找出并跟踪这些具有颠覆性的指数型组织。而且大型公司必须采取行动,才能降低投资的门槛并在竞争中占据先机。
在2005年谷歌以16亿美元买下YouTube,当时的YouTube已经淘汰了谷歌视频和其他竞争对手,在市场上攻城略地。谷歌在YouTube彻底爆发之前收购了该公司,并因此能够将自己的力量贯注进去,帮助这个曾经威胁自己的公司扩张。
策略3:颠覆
传统公司的组织结构会将颠覆性的影响力压制住,所以可以将企业中比较确定的变革者转换到组织边缘,让他们自由创建指数型组织去颠覆其他市场。观察他们与母公司的相互联系,随后增加更多的变革。
乔布斯在做苹果手机的时,从苹果调集了大概二三十名程序员,悄悄开始研发手机。公司研发电脑的程序员并不清楚他们在试验什么,直到苹果手机成功问世,成为公司的主流产品。
策略4:打造“精简版”指数型组织
对于大公司来讲,可以把指数型组织与原来的主体业务分开经营。如果这个指数型组织成长地特别快,它就会成为公司的主体。即便大公司必须维持现状,并因无法转变成指数型组织,也并不意味着他们就不能培养一些指数型性组织属性,并以此加速公司运营。
在2008年,Linkedin新任首席执行官杰夫·韦纳为公司引进了OKR,目标是让所有员工能与Linkedin拥有相同的愿景,同时为员工提供一个灵活、自主的跟踪进度机制。这一行动被普遍认为是Linkedin能成为价值200亿美元公司的关键原因之一。
尽管大公司可能得为了在结构上适应新时代而大动干戈,但依然拥有一个关键性优势:知识资本,有相应的办法来实现或适应指数型组织的原理。
运用4大策略对大型公司进行“指数化”改造,让很多公司取得了不俗的成绩。海尔的收入从2013年的200亿美元增加到2014年的600亿美元;与1000万“米粉”的深度接触,让小米一年就卖出2000万部手机;谷歌在5年间绩效提高了15倍,是一家完美的指数型组织。
未来,公司高管要么主动进行“指数化”,要么被动接受指数型竞争对手的挑战。CEO这一职位将会被“首席指数官”所取代,执掌公司的命脉,迅速前行。
结语
指数型组织并非全新的思想,我们曾经讲述过众多的共享经济、创客、人工智能、大数据等概念,指数型组织不无它们的影子。然而本书的创新不在于简单的思想提出,而是在观察了大量的组织后得出了翔实的结论、方法和工具,启迪之余,行动可鉴。
看到这里,听到这里,倘若你只是暗吃一惊,那要恭喜了,你一定已经是家成功的指数型组织了!如果不是那就赶紧抓出纸笔,想想如何才能将自己的组织改造成一家指数型组织吧,说不定我们的庞大的书友群里就有你的同行!
因为未来,也许我们不是在自己的指数型组织里乘风破浪,就会成为其他家指数型组织的炮灰,可能战争尚未开启,就已结束!
可以访问以下网站查看hbase服务状态及master等等信息,
>
Windows性能计数器--磁盘性能分析Disk
Physical Disk:
单次IO大小
AvgDisk Bytes/Read
AvgDisk Bytes/Write
IO响应时间
AvgDisk sec/Read
AvgDisk sec/Write
IOPS
DiskReads/sec
DiskWrites/sec
DiskTransfers/sec
IO吞吐率
DiskBytes/sec
DiskRead Bytes/sec
DiskWrite Bytes/sec
磁盘有两个重要的参数:Seek time、Rotational latency。
正常的I/O计数为:①1000/(Seek time+Rotational latency)075,在此范围内属正常。当达到85%的I/O计数以上时则基本认为已经存在I/O瓶颈。理论情况下,磁盘的随机读计数为125、 顺序读计数为225。对于数据文件而言是随机读写,日志文件是顺序读写。因此,数据文件建议存放于RAID5上,而日志文件存放于RAID10或 RAID1中。
附:
15000 RPM:150随机IOPS
10000 RPM:110随机IOPS
5400 RPM:50随机IOPS
下面假设在有4块硬盘的RAID5中观察到的Physical Disk性能对象的部分值:
Avg DiskQueue Length 12 队列长度
Avg DiskSec/Read 035 读数据所用时间ms
Avg DiskSec/Write 045 写数据所用时间ms
DiskReads/sec 320 每秒读数据量
DiskWrites/sec 100 每秒写数据量
Avg DiskQueue Length,12/4=3,每块磁盘的平均队列建议不超过2。
Avg DiskSec/Read一般不要超过11~15ms。
Avg DiskSec/Write一般建议小于12ms。
从上面的结果,我们看到磁盘本身的I/O能力是满足我们的要求的,原因是因为有大量的请求才导致队列等待,这很可能是因为你的SQL语句导致大量的表扫描所致。在进行优化后,如果还是不能达到要求,下面的公式可以帮助你计算使用几块硬盘可以满足这样的并发要求:
Raid 0 -- I/Os per disk = (reads +writes) / number of disks
Raid 1 -- I/Os per disk = [reads +(2 writes)] / 2
Raid 5 -- I/Os per disk = [reads +(4 writes)] / number of disks
Raid 10 -- I/Os per disk = [reads +(2 writes)] / number of disks
我们得到的结果是:(320+400)/4=180,这时你可以根据公式①来得到磁盘的正常I/O值。假设现在正常I/O计数为125,为了达到这个结果:720/125=576。就是说要用6块磁盘才能达到这样的要求。
但是上面的Disk Reads/sec和Disk Writes/sec是个很难正确估算的值。因此只能在系统比较忙时,大概估算一个平均值,作为计算公式的依据。另一个是你很难从客户那里得到Seek time、 Rotational latency参数的值,这也只能用理论值125进行计算。
前言
作为一个数据库管理员,关注系统的性能是日常最重要的工作之一,而在所关注的各方面的性能只能IO性能却是最令人头痛的一块,面对着各种生涩的参数和令人眼花缭乱的新奇的术语,再加上存储厂商的忽悠,总是让我们有种云里雾里的感觉。本系列文章试图从基本概念开始对磁盘存储相关的各种概念进行综合归纳,让大家能够对IO性能相关的基本概念,IO性能的监控和调整有个比较全面的了解。
在这一部分里我们先舍弃各种结构复杂的存储系统,直接研究一个单独的磁盘的性能问题,藉此了解各个衡量IO系统系能的各个指标以及之间的关系。
几个基本的概念
在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理。不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条——Hard disk drive(英文)和硬盘驱动器(中文)。
读写IO(Read/Write IO) *** 作
磁盘是用来给我们存取数据用的,因此当说到IO *** 作的时候,就会存在两种相对应的 *** 作,存数据时候对应的是写IO *** 作,取数据的时候对应的是读IO *** 作。
单个IO *** 作
当控制磁盘的控制器接到 *** 作系统的读IO *** 作指令的时候,控制器就会给磁盘发出一个读数据的指令,并同时将要读取的数据块的地址传递给磁盘,然后磁盘会将读取到的数据传给控制器,并由控制器返回给 *** 作系统,完成一个写IO的 *** 作;同样的,一个写IO的 *** 作也类似,控制器接到写的IO *** 作的指令和要写入的数据,并将其传递给磁盘,磁盘在数据写入完成之后将 *** 作结果传递回控制器,再由控制器返回给 *** 作系统,完成一个写IO的 *** 作。单个IO *** 作指的就是完成一个写IO或者是读IO的 *** 作。
随机访问(Random Access)与连续访问(Sequential Access)
随机访问指的是本次IO所给出的扇区地址和上次IO给出扇区地址相差比较大,这样的话磁头在两次IO *** 作之间需要作比较大的移动动作才能重新开始读/写数据。相反的,如果当次IO给出的扇区地址与上次IO结束的扇区地址一致或者是接近的话,那磁头就能很快的开始这次IO *** 作,这样的多个IO *** 作称为连续访问。因此尽管相邻的两次IO *** 作在同一时刻发出,但如果它们的请求的扇区地址相差很大的话也只能称为随机访问,而非连续访问。
顺序IO模式(Queue Mode)/并发IO模式(BurstMode)
磁盘控制器可能会一次对磁盘组发出一连串的IO命令,如果磁盘组一次只能执行一个IO命令时称为顺序IO;当磁盘组能同时执行多个IO命令时,称为并发IO。并发IO只能发生在由多个磁盘组成的磁盘组上,单块磁盘只能一次处理一个IO命令。
单个IO的大小(IO ChunkSize)
熟悉数据库的人都会有这么一个概念,那就是数据库存储有个基本的块大小(Block Size),不管是SQL Server还是Oracle,默认的块大小都是8KB,就是数据库每次读写都是以8k为单位的。那么对于数据库应用发出的固定8k大小的单次读写到了写磁盘这个层面会是怎么样的呢,就是对于读写磁盘来说单个IO *** 作 *** 作数据的大小是多少呢,是不是也是一个固定的值?答案是不确定。首先 *** 作系统为了提高 IO的性能而引入了文件系统缓存(File System Cache),系统会根据请求数据的情况将多个来自IO的请求先放在缓存里面,然后再一次性的提交给磁盘,也就是说对于数据库发出的多个8K数据块的读 *** 作有可能放在一个磁盘读IO里就处理了。还有对于有些存储系统也是提供了缓存(Cache)的,接收到 *** 作系统的IO请求之后也是会将多个 *** 作系统的 IO请求合并成一个来处理。不管是 *** 作系统层面的缓存还是磁盘控制器层面的缓存,目的都只有一个,提高数据读写的效率。因此每次单独的IO *** 作大小都是不一样的,它主要取决于系统对于数据读写效率的判断。
当一次IO *** 作大小比较小的时候我们成为小的IO *** 作,比如说1K,4K,8K这样的;当一次IO *** 作的数据量比较的的时候称为大IO *** 作,比如说32K,64K甚至更大。
在我们说到块大小(Block Size)的时候通常我们会接触到多个类似的概念,像我们上面提到的那个在数据库里面的数据最小的管理单位,Oralce称之为块(Block),大小一般为8K,SQL Server称之为页(Page),一般大小也为8k。在文件系统里面我们也能碰到一个文件系统的块,在现在很多的Linux系统中都是4K(通过 /usr/bin/time -v可以看到),它的作用其实跟数据库里面的块/页是一样的,都是为了方便数据的管理。但是说到单次IO的大小,跟这些块的大小都是没有直接关系的,在英文里单次IO大小通常被称为是IO Chunk Size,不会说成是IO Block Size的。
IOPS(IO per Second)
IOPS,IO系统每秒所执行IO *** 作的次数,是一个重要的用来衡量系统IO能力的一个参数。对于单个磁盘组成的IO系统来说,计算它的IOPS不是一件很难的事情,只要我们知道了系统完成一次IO所需要的时间的话我们就能推算出系统IOPS来。
现在我们就来推算一下磁盘的IOPS,假设磁盘的转速(Rotational Speed)为15K RPM,平均寻道时间为5ms,最大传输速率为40MB/s(这里将读写速度视为一样,实际会差别比较大)。
对于磁盘来说一个完整的IO *** 作是这样进行的:当控制器对磁盘发出一个IO *** 作命令的时候,磁盘的驱动臂(ActuatorArm)带读写磁头(Head)离开着陆区(LandingZone,位于内圈没有数据的区域),移动到要 *** 作的初始数据块所在的磁道(Track)的正上方,这个过程被称为寻址(Seeking),对应消耗的时间被称为寻址时间(SeekTime);但是找到对应磁道还不能马上读取数据,这时候磁头要等到磁盘盘片(Platter)旋转到初始数据块所在的扇区(Sector)落在读写磁头正上方的之后才能开始读取数据,在这个等待盘片旋转到可 *** 作扇区的过程中消耗的时间称为旋转延时(RotationalDelay);接下来就随着盘片的旋转,磁头不断的读/写相应的数据块,直到完成这次IO所需要 *** 作的全部数据,这个过程称为数据传送(DataTransfer),对应的时间称为传送时间(TransferTime)。完成这三个步骤之后一次IO *** 作也就完成了。
在我们看硬盘厂商的宣传单的时候我们经常能看到3个参数,分别是平均寻址时间、盘片旋转速度以及最大传送速度,这三个参数就可以提供给我们计算上述三个步骤的时间。
第一个寻址时间,考虑到被读写的数据可能在磁盘的任意一个磁道,既有可能在磁盘的最内圈(寻址时间最短),也可能在磁盘的最外圈(寻址时间最长),所以在计算中我们只考虑平均寻址时间,也就是磁盘参数中标明的那个平均寻址时间,这里就采用当前最多的10krmp硬盘的5ms。
第二个旋转延时,和寻址一样,当磁头定位到磁道之后有可能正好在要读写扇区之上,这时候是不需要额外额延时就可以立刻读写到数据,但是最坏的情况确实要磁盘旋转整整一圈之后磁头才能读取到数据,所以这里我们也考虑的是平均旋转延时,对于10krpm的磁盘就是(60s/15k)(1/2)= 2ms。
第三个传送时间,磁盘参数提供我们的最大的传输速度,当然要达到这种速度是很有难度的,但是这个速度却是磁盘纯读写磁盘的速度,因此只要给定了单次IO的大小,我们就知道磁盘需要花费多少时间在数据传送上,这个时间就是IOChunk Size / Max Transfer Rate。
现在我们就可以得出这样的计算单次IO时间的公式:
IO Time = Seek Time + 60 sec/Rotational Speed/2 + IO ChunkSize/Transfer Rate
于是我们可以这样计算出IOPS
IOPS = 1/IO Time = 1/(Seek Time + 60 sec/Rotational Speed/2 + IOChunk Size/Transfer Rate)
对于给定不同的IO大小我们可以得出下面的一系列的数据
4K (1/71 ms = 140 IOPS)
5ms + (60sec/15000RPM/2) + 4K/40MB = 5 + 2 + 01 = 71
8k (1/72 ms = 139 IOPS)
5ms + (60sec/15000RPM/2) + 8K/40MB = 5 + 2 + 02 = 72
16K (1/74 ms = 135 IOPS)
5ms + (60sec/15000RPM/2) + 16K/40MB = 5 + 2 + 04 = 74
32K (1/78 ms = 128 IOPS)
5ms + (60sec/15000RPM/2) + 32K/40MB = 5 + 2 + 08 = 78
64K (1/86 ms = 116 IOPS)
5ms + (60sec/15000RPM/2) + 64K/40MB = 5 + 2 + 16 = 86
从上面的数据可以看出,当单次IO越小的时候,单次IO所耗费的时间也越少,相应的IOPS也就越大。
上面我们的数据都是在一个比较理想的假设下得出来的,这里的理想的情况就是磁盘要花费平均大小的寻址时间和平均的旋转延时,这个假设其实是比较符合我们实际情况中的随机读写,在随机读写中,每次IO *** 作的寻址时间和旋转延时都不能忽略不计,有了这两个时间的存在也就限制了IOPS的大小。现在我们考虑一种相对极端的顺序读写 *** 作,比如说在读取一个很大的存储连续分布在磁盘的文件,因为文件的存储的分布是连续的,磁头在完成一个读IO *** 作之后,不需要从新的寻址,也不需要旋转延时,在这种情况下我们能到一个很大的IOPS值,如下
4K (1/01 ms = 10000 IOPS)
0ms + 0ms + 4K/40MB = 01
8k (1/02 ms = 5000 IOPS)
0ms + 0ms + 8K/40MB = 02
16K (1/04 ms = 2500 IOPS)
0ms + 0ms + 16K/40MB = 04
32K (1/08 ms = 1250 IOPS)
0ms + 0ms + 32K/40MB = 08
64K (1/16 ms = 625 IOPS)
0ms + 0ms + 64K/40MB = 16
相比第一组数据来说差距是非常的大的,因此当我们要用IOPS来衡量一个IO系统的系能的时候我们一定要说清楚是在什么情况的IOPS,也就是要说明读写的方式以及单次IO的大小,当然在实际当中,特别是在OLTP的系统的,随机的小IO的读写是最有说服力的。
传输速度(Transfer Rate)/吞吐率(Throughput)
现在我们要说的传输速度(另一个常见的说法是吞吐率)不是磁盘上所表明的最大传输速度或者说理想传输速度,而是磁盘在实际使用的时候从磁盘系统总线上流过的数据量。有了IOPS数据之后我们是很容易就能计算出对应的传输速度来的
Transfer Rate = IOPS IO Chunk Size
还是那上面的第一组IOPS的数据我们可以得出相应的传输速度如下
4K: 140 4K = 560K / 40M = 136%
8K: 139 8K = 1112K / 40M = 271%
16K: 135 16K = 2160K / 40M = 527%
32K: 116 32K = 3712K / 40M = 906%
可以看出实际上的传输速度是很小的,对总线的利用率也是非常的小。
这里一定要明确一个概念,那就是尽管上面我们使用IOPS来计算传输速度,但是实际上传输速度和IOPS是没有直接关系,在没有缓存的情况下它们共同的决定因素都是对磁盘系统的访问方式以及单个IO的大小。对磁盘进行随机访问时候我们可以利用IOPS来衡量一个磁盘系统的性能,此时的传输速度不会太大;但是当对磁盘进行连续访问时,此时的IOPS已经没有了参考的价值,这个时候限制实际传输速度却是磁盘的最大传输速度。因此在实际的应用当中,只会用IOPS 来衡量小IO的随机读写的性能,而当要衡量大IO连续读写的性能的时候就要采用传输速度而不能是IOPS了。
IO响应时间(IOResponse Time)
最后来关注一下能直接描述IO性能的IO响应时间。IO响应时间也被称为IO延时(IOLatency),IO响应时间就是从 *** 作系统内核发出的一个读或者写的IO命令到 *** 作系统内核接收到IO回应的时间,注意不要和单个IO时间混淆了,单个IO时间仅仅指的是IO *** 作在磁盘内部处理的时间,而IO响应时间还要包括IO *** 作在IO等待队列中所花费的等待时间。
计算IO *** 作在等待队列里面消耗的时间有一个衍生于利托氏定理(Little’sLaw)的排队模型M/M/1模型可以遵循,由于排队模型算法比较复杂,到现在还没有搞太明白(如果有谁对M/M/1模型比较精通的话欢迎给予指导),这里就罗列一下最后的结果,还是那上面计算的IOPS数据来说:
8K IO Chunk Size (135 IOPS, 72 ms)
135 => 2400 ms
105 => 295 ms
75 => 157 ms
45 => 106 ms
64K IO Chunk Size(116 IOPS, 86 ms)
135 => 没响应了……
105 => 886 ms
75 => 246 ms
45 => 146 ms
从上面的数据可以看出,随着系统实际IOPS越接近理论的最大值,IO的响应时间会成非线性的增长,越是接近最大值,响应时间就变得越大,而且会比预期超出很多。一般来说在实际的应用中有一个70%的指导值,也就是说在IO读写的队列中,当队列大小小于最大IOPS的70%的时候,IO的响应时间增加会很小,相对来说让人比较能接受的,一旦超过70%,响应时间就会戏剧性的暴增,所以当一个系统的IO压力超出最大可承受压力的70%的时候就是必须要考虑调整或升级了。
另外补充说一下这个70%的指导值也适用于CPU响应时间,这也是在实践中证明过的,一旦CPU超过70%,系统将会变得受不了的慢。很有意思的东西。
从上一篇文章的计算中我们可以看到一个15k转速的磁盘在随机读写访问的情况下IOPS竟然只有140左右,但在实际应用中我们却能看到很多标有5000IOPS甚至更高的存储系统,有这么大IOPS的存储系统怎么来的呢?这就要归结于各种存储技术的使用了,在这些存储技术中使用最广的就是高速缓存(Cache)和磁盘冗余阵列(RAID)了,本文就将探讨缓存和磁盘阵列提高存储IO性能的方法。
高速缓存(Cache)
在当下的各种存储产品中,按照速度从快到慢应该就是内存>闪存>磁盘>磁带了,然而速度越快也就意味着价格越高,闪存虽然说是发展势头很好,但目前来说却还是因为价格问题无法普及,因此现在还是一个磁盘作霸王的时代。与CPU和内存速度相比,磁盘的速度无疑是计算机系统中最大的瓶颈了,所以在必须使用磁盘而又想提高性能的情况下,人们想出了在磁盘中嵌入一块高速的内存用来保存经常访问的数据从而提高读写效率的方法来折中的解决,这块嵌入的内存就被称为高速缓存。
说到缓存,这东西应用现在已经是无处不在,从处于上层的应用,到 *** 作系统层,再到磁盘控制器,还有CPU内部,单个磁盘的内部也都存在缓存,所有这些缓存存在的目的都是相同的,就是提高系统执行的效率。当然在这里我们只关心跟IO性能相关的缓存,与IO性能直接相关的几个缓存分别是文件系统缓存(FileSystem Cache)、磁盘控制器缓存(DiskController Cache)和磁盘缓存(DiskCache,也称为DiskBuffer),不过当在计算一个磁盘系统性能的时候文件系统缓存也是不会考虑在内的,因此我们重点考察的就是磁盘控制器缓存和磁盘缓存。
不管是控制器缓存还是磁盘缓存,他们所起的作用主要是分为三部分:缓存数据、预读(Read-ahead)和回写(Write-back)。
缓存数据
首先是系统读取过的数据会被缓存在高速缓存中,这样下次再次需要读取相同的数据的时候就不用在访问磁盘,直接从缓存中取数据就可以了。当然使用过的数据也不可能在缓存中永久保留的,缓存的数据一般那是采取LRU算法来进行管理,目的是将长时间不用的数据清除出缓存,那些经常被访问的却能一直保留在缓存中,直到缓存被清空。
预读
预读是指采用预读算法在没有系统的IO请求的时候事先将数据从磁盘中读入到缓存中,然后在系统发出读IO请求的时候,就会实现去检查看看缓存里面是否存在要读取的数据,如果存在(即命中)的话就直接将结果返回,这时候的磁盘不再需要寻址、旋转等待、读取数据这一序列的 *** 作了,这样是能节省很多时间的;如果没有命中则再发出真正的读取磁盘的命令去取所需要的数据。
缓存的命中率跟缓存的大小有很大的关系,理论上是缓存越大的话,所能缓存的数据也就越多,这样命中率也自然越高,当然缓存不可能太大,毕竟成本在那儿呢。如果一个容量很大的存储系统配备了一个很小的读缓存的话,这时候问题会比较大的,因为小缓存的数据量非常小,相比整个存储系统来说比例非常低,这样随机读取(数据库系统的大多数情况)的时候命中率也自然就很低,这样的缓存不但不能提高效率(因为绝大部分读IO都还要读取磁盘),反而会因为每次去匹配缓存而浪费时间。
执行读IO *** 作是读取数据存在于缓存中的数量与全部要读取数据的比值称为缓存命中率(ReadCache Hit Radio),假设一个存储系统在不使用缓存的情况下随机小IO读取能达到150IOPS,而它的缓存能提供10%的缓存命中率的话,那么实际上它的IOPS可以达到150/(1-10%)=166。
回写
首先说一下,用于回写功能的那部分缓存被称为写缓存(WriteCache)。在一套写缓存打开的存储中, *** 作系统所发出的一系列写IO命令并不会被挨个的执行,这些写IO的命令会先写入缓存中,然后再一次性的将缓存中的修改推到磁盘中,这就相当于将那些相同的多个IO合并成一个,多个连续 *** 作的小IO合并成一个大的IO,还有就是将多个随机的写IO变成一组连续的写IO,这样就能减少磁盘寻址等 *** 作所消耗的时间,大大的提高磁盘写入的效率。
读缓存虽然对效率提高是很明显的,但是它所带来的问题也比较严重,因为缓存和普通内存一样,掉点以后数据会全部丢失,当 *** 作系统发出的写IO命令写入到缓存中后即被认为是写入成功,而实际上数据是没有被真正写入磁盘的,此时如果掉电,缓存中的数据就会永远的丢失了,这个对应用来说是灾难性的,目前解决这个问题最好的方法就是给缓存配备电池了,保证存储掉电之后缓存数据能如数保存下来。
和读一样,写缓存也存在一个写缓存命中率(WriteCache Hit Radio),不过和读缓存命中情况不一样的是,尽管缓存命中,也不能将实际的IO *** 作免掉,只是被合并了而已。
控制器缓存和磁盘缓存除了上面的作用之外还承当着其他的作用,比如磁盘缓存有保存IO命令队列的功能,单个的磁盘一次只能处理一个IO命令,但却能接收多个IO命令,这些进入到磁盘而未被处理的命令就保存在缓存中的IO队列中。
RAID(Redundant Array Of InexpensiveDisks)
如果你是一位数据库管理员或者经常接触服务器,那对RAID应该很熟悉了,作为最廉价的存储解决方案,RAID早已在服务器存储中得到了普及。在RAID的各个级别中,应当以RAID10和RAID5(不过RAID5已经基本走到头了,RAID6正在崛起中,看看这里了解下原因)应用最广了。下面将就RAID0,RAID1,RAID5,RAID6,RAID10这几种级别的RAID展开说一下磁盘阵列对于磁盘性能的影响,当然在阅读下面的内容之前你必须对各个级别的RAID的结构和工作原理要熟悉才行,这样才不至于满头雾水,推荐查看wikipedia上面的如下条目:RAID,StandardRAID levels,Nested RAID levels。
Windows性能计数器--磁盘性能析Disk
Physical Disk:
单IO
AvgDisk Bytes/Read
AvgDisk Bytes/Write
IO响应间
AvgDisk sec/Read
AvgDisk sec/Write
IOPS
DiskReads/sec
DiskWrites/sec
DiskTransfers/sec
IO吞吐率
DiskBytes/sec
DiskRead Bytes/sec
DiskWrite Bytes/sec
磁盘两重要参数:Seek time、Rotational latency
I/O计数:①1000/(Seek time+Rotational latency)075范围内属达85%I/O计数则基本认已经存I/O瓶颈理论情况磁盘随机读计数125、 顺序读计数225于数据文件言随机读写志文件顺序读写数据文件建议存放于RAID5志文件存放于RAID10或 RAID1
附:
15000 RPM:150随机IOPS
10000 RPM:110随机IOPS
5400 RPM:50随机IOPS
面假设4块硬盘RAID5观察Physical Disk性能象部值:
Avg DiskQueue Length 12 队列度
Avg DiskSec/Read 035 读数据所用间ms
Avg DiskSec/Write 045 写数据所用间ms
DiskReads/sec 320 每秒读数据量
DiskWrites/sec 100 每秒写数据量
Avg DiskQueue Length12/4=3每块磁盘平均队列建议超2
Avg DiskSec/Read般要超11~15ms
Avg DiskSec/Write般建议于12ms
面结我看磁盘本身I/O能力满足我要求原量请求才导致队列等待能SQL语句导致量表扫描所致进行优化能达要求面公式帮助计算使用几块硬盘满足并发要求:
Raid 0 -- I/Os per disk = (reads +writes) / number of disks
Raid 1 -- I/Os per disk = [reads +(2 writes)] / 2
Raid 5 -- I/Os per disk = [reads +(4 writes)] / number of disks
Raid 10 -- I/Os per disk = [reads +(2 writes)] / number of disks
我结:(320+400)/4=180根据公式①磁盘I/O值假设现I/O计数125达结:720/125=576说要用6块磁盘才能达要求
面Disk Reads/secDisk Writes/sec难确估算值能系统比较忙概估算平均值作计算公式依据另难客户Seek time、 Rotational latency参数值能用理论值125进行计算
前言
作数据库管理员关注系统性能重要工作所关注各面性能能IO性能却令痛块面着各种涩参数令眼花缭乱新奇术语再加存储厂商忽悠总让我种云雾觉本系列文章试图基本概念始磁盘存储相关各种概念进行综合归纳让家能够IO性能相关基本概念IO性能监控调整比较全面解
部我先舍弃各种结构复杂存储系统直接研究单独磁盘性能问题藉解各衡量IO系统系能各指标及间关系
几基本概念
研究磁盘性能前我必须先解磁盘结构及工作原理再重复说明关系硬盘结构工作原理信息参考维基百科面相关词条——Hard disk drive(英文)硬盘驱器(文)
读写IO(Read/Write IO) *** 作
磁盘用给我存取数据用说IO *** 作候存两种相应 *** 作存数据候应写IO *** 作取数据候应读IO *** 作
单IO *** 作
控制磁盘控制器接 *** 作系统读IO *** 作指令候控制器给磁盘发读数据指令并同要读取数据块址传递给磁盘磁盘读取数据传给控制器并由控制器返给 *** 作系统完写IO *** 作;同写IO *** 作类似控制器接写IO *** 作指令要写入数据并其传递给磁盘磁盘数据写入完 *** 作结传递控制器再由控制器返给 *** 作系统完写IO *** 作单IO *** 作指完写IO或者读IO *** 作
随机访问(Random Access)与连续访问(Sequential Access)
随机访问指本IO所给扇区址IO给扇区址相差比较磁两IO *** 作间需要作比较移作才能重新始读/写数据相反IO给扇区址与IO结束扇区址致或者接近磁能快始IO *** 作IO *** 作称连续访问尽管相邻两IO *** 作同刻发请求扇区址相差能称随机访问非连续访问
顺序IO模式(Queue Mode)/并发IO模式(BurstMode)
磁盘控制器能磁盘组发连串IO命令磁盘组能执行IO命令称顺序IO;磁盘组能同执行IO命令称并发IO并发IO能发由磁盘组磁盘组单块磁盘能处理IO命令
单IO(IO ChunkSize)
熟悉数据库都概念数据库存储基本块(Block Size)管SQL ServerOracle默认块都8KB数据库每读写都8k单位于数据库应用发固定8k单读写写磁盘层面呢于读写磁盘说单IO *** 作 *** 作数据少呢固定值答案确定首先 *** 作系统提高 IO性能引入文件系统缓存(File System Cache)系统根据请求数据情况自IO请求先放缓存面再性提交给磁盘说于数据库发8K数据块读 *** 作能放磁盘读IO处理于些存储系统提供缓存(Cache)接收 *** 作系统IO请求 *** 作系统 IO请求合并处理管 *** 作系统层面缓存磁盘控制器层面缓存目都提高数据读写效率每单独IO *** 作都主要取决于系统于数据读写效率判断
IO *** 作比较候我IO *** 作比说1K4K8K;IO *** 作数据量比较候称IO *** 作比说32K64K甚至更
我说块(Block Size)候通我接触类似概念像我面提数据库面数据管理单位Oralce称块(Block)般8KSQL Server称页(Page)般8k文件系统面我能碰文件系统块现Linux系统都4K(通 /usr/bin/time -v看)作用其实跟数据库面块/页都便数据管理说单IO跟些块都没直接关系英文单IO通称IO Chunk Size说IO Block Size
IOPS(IO per Second)
IOPSIO系统每秒所执行IO *** 作数重要用衡量系统IO能力参数于单磁盘组IO系统说计算IOPS件难事情要我知道系统完IO所需要间我能推算系统IOPS
现我推算磁盘IOPS假设磁盘转速(Rotational Speed)15K RPM平均寻道间5ms传输速率40MB/s(读写速度视实际差别比较)
于磁盘说完整IO *** 作进行:控制器磁盘发IO *** 作命令候磁盘驱臂(ActuatorArm)带读写磁(Head)离着陆区(LandingZone位于内圈没数据区域)移要 *** 作初始数据块所磁道(Track)程称寻址(Seeking)应消耗间称寻址间(SeekTime);找应磁道能马读取数据候磁要等磁盘盘片(Platter)旋转初始数据块所扇区(Sector)落读写磁才能始读取数据等待盘片旋转 *** 作扇区程消耗间称旋转延(RotationalDelay);接随着盘片旋转磁断读/写相应数据块直完IO所需要 *** 作全部数据程称数据传送(DataTransfer)应间称传送间(TransferTime)完三步骤IO *** 作完
我看硬盘厂商宣传单候我经能看3参数别平均寻址间、盘片旋转速度及传送速度三参数提供给我计算述三步骤间
第寻址间考虑读写数据能磁盘任意磁道既能磁盘内圈(寻址间短)能磁盘外圈(寻址间)所计算我考虑平均寻址间磁盘参数标明平均寻址间采用前10krmp硬盘5ms
第二旋转延寻址磁定位磁道能要读写扇区候需要额外额延立刻读写数据坏情况确实要磁盘旋转整整圈磁才能读取数据所我考虑平均旋转延于10krpm磁盘(60s/15k)(1/2)= 2ms
第三传送间磁盘参数提供我传输速度要达种速度难度速度却磁盘纯读写磁盘速度要给定单IO我知道磁盘需要花费少间数据传送间IOChunk Size / Max Transfer Rate
现我计算单IO间公式:
IO Time = Seek Time + 60 sec/Rotational Speed/2 + IO ChunkSize/Transfer Rate
于我计算IOPS
IOPS = 1/IO Time = 1/(Seek Time + 60 sec/Rotational Speed/2 + IOChunk Size/Transfer Rate)
于给定同IO我面系列数据
4K (1/71 ms = 140 IOPS)
5ms + (60sec/15000RPM/2) + 4K/40MB = 5 + 2 + 01 = 71
8k (1/72 ms = 139 IOPS)
5ms + (60sec/15000RPM/2) + 8K/40MB = 5 + 2 + 02 = 72
16K (1/74 ms = 135 IOPS)
5ms + (60sec/15000RPM/2) + 16K/40MB = 5 + 2 + 04 = 74
32K (1/78 ms = 128 IOPS)
5ms + (60sec/15000RPM/2) + 32K/40MB = 5 + 2 + 08 = 78
64K (1/86 ms = 116 IOPS)
5ms + (60sec/15000RPM/2) + 64K/40MB = 5 + 2 + 16 = 86
面数据看单IO越候单IO所耗费间越少相应IOPS越
面我数据都比较理想假设理想情况磁盘要花费平均寻址间平均旋转延假设其实比较符合我实际情况随机读写随机读写每IO *** 作寻址间旋转延都能忽略计两间存限制IOPS现我考虑种相极端顺序读写 *** 作比说读取存储连续布磁盘文件文件存储布连续磁完读IO *** 作需要新寻址需要旋转延种情况我能IOPS值
4K (1/01 ms = 10000 IOPS)
0ms + 0ms + 4K/40MB = 01
8k (1/02 ms = 5000 IOPS)
0ms + 0ms + 8K/40MB = 02
16K (1/04 ms = 2500 IOPS)
0ms + 0ms + 16K/40MB = 04
32K (1/08 ms = 1250 IOPS)
0ms + 0ms + 32K/40MB = 08
64K (1/16 ms = 625 IOPS)
0ms + 0ms + 64K/40MB = 16
相比第组数据说差距非我要用IOPS衡量IO系统系能候我定要说清楚情况IOPS要说明读写式及单IO实际特别OLTP系统随机IO读写说服力
传输速度(Transfer Rate)/吞吐率(Throughput)
现我要说传输速度(另见说吞吐率)磁盘所表明传输速度或者说理想传输速度磁盘实际使用候磁盘系统总线流数据量IOPS数据我容易能计算应传输速度
Transfer Rate = IOPS IO Chunk Size
面第组IOPS数据我相应传输速度
4K: 140 4K = 560K / 40M = 136%
8K: 139 8K = 1112K / 40M = 271%
16K: 135 16K = 2160K / 40M = 527%
32K: 116 32K = 3712K / 40M = 906%
看实际传输速度总线利用率非
定要明确概念尽管面我使用IOPS计算传输速度实际传输速度IOPS没直接关系没缓存情况共同决定素都磁盘系统访问式及单IO磁盘进行随机访问候我利用IOPS衡量磁盘系统性能传输速度太;磁盘进行连续访问IOPS已经没参考价值候限制实际传输速度却磁盘传输速度实际应用用IOPS 衡量IO随机读写性能要衡量IO连续读写性能候要采用传输速度能IOPS
IO响应间(IOResponse Time)
关注能直接描述IO性能IO响应间IO响应间称IO延(IOLatency)IO响应间 *** 作系统内核发读或者写IO命令 *** 作系统内核接收IO应间注意要单IO间混淆单IO间仅仅指IO *** 作磁盘内部处理间IO响应间要包括IO *** 作IO等待队列所花费等待间
计算IO *** 作等待队列面消耗间衍于利托氏定理(Little’sLaw)排队模型M/M/1模型遵循由于排队模型算比较复杂现没搞太明白(谁M/M/1模型比较精通欢迎给予指导)罗列结面计算IOPS数据说:
8K IO Chunk Size (135 IOPS, 72 ms)
135 => 2400 ms
105 => 295 ms
75 => 157 ms
45 => 106 ms
64K IO Chunk Size(116 IOPS, 86 ms)
135 => 没响应……
105 => 886 ms
75 => 246 ms
45 => 146 ms
面数据看随着系统实际IOPS越接近理论值IO响应间非线性增越接近值响应间变越且比预期超般说实际应用70%指导值说IO读写队列队列于IOPS70%候IO响应间增加相说让比较能接受旦超70%响应间戏剧性暴增所系统IO压力超承受压力70%候必须要考虑调整或升级
另外补充说70%指导值适用于CPU响应间实践证明旦CPU超70%系统变受慢意思东西
篇文章计算我看15k转速磁盘随机读写访问情况IOPS竟140左右实际应用我却能看标5000IOPS甚至更高存储系统IOPS存储系统呢要归结于各种存储技术使用些存储技术使用广高速缓存(Cache)磁盘冗余阵列(RAID)本文探讨缓存磁盘阵列提高存储IO性能
高速缓存(Cache)
各种存储产品按照速度快慢应该内存>闪存>磁盘>磁带速度越快意味着价格越高闪存虽说发展势目前说却价格问题普及现磁盘作霸王代与CPU内存速度相比磁盘速度疑计算机系统瓶颈所必须使用磁盘想提高性能情况想磁盘嵌入块高速内存用保存经访问数据提高读写效率折解决块嵌入内存称高速缓存
说缓存东西应用现已经处处于层应用 *** 作系统层再磁盘控制器CPU内部单磁盘内部都存缓存所些缓存存目都相同提高系统执行效率我关跟IO性能相关缓存与IO性能直接相关几缓存别文件系统缓存(FileSystem Cache)、磁盘控制器缓存(DiskController Cache)磁盘缓存(DiskCache,称DiskBuffer)计算磁盘系统性能候文件系统缓存考虑内我重点考察磁盘控制器缓存磁盘缓存
管控制器缓存磁盘缓存所起作用主要三部:缓存数据、预读(Read-ahead)写(Write-back)
缓存数据
首先系统读取数据缓存高速缓存再需要读取相同数据候用访问磁盘直接缓存取数据使用数据能缓存永久保留缓存数据般采取LRU算进行管理目间用数据清除缓存些经访问却能直保留缓存直缓存清空
预读
预读指采用预读算没系统IO请求候事先数据磁盘读入缓存系统发读IO请求候实现检查看看缓存面否存要读取数据存(即命)直接结返候磁盘再需要寻址、旋转等待、读取数据序列 *** 作能节省间;没命则再发真读取磁盘命令取所需要数据
缓存命率跟缓存关系理论缓存越所能缓存数据越命率自越高缓存能太毕竟本呢容量存储系统配备读缓存候问题比较缓存数据量非相比整存储系统说比例非低随机读取(数据库系统数情况)候命率自低缓存能提高效率(绝部读IO都要读取磁盘)反每匹配缓存浪费间
执行读IO *** 作读取数据存于缓存数量与全部要读取数据比值称缓存命率(ReadCache Hit Radio)假设存储系统使用缓存情况随机IO读取能达150IOPS缓存能提供10%缓存命率实际IOPS达150/(1-10%)=166
写
首先说用于写功能部缓存称写缓存(WriteCache)套写缓存打存储 *** 作系统所发系列写IO命令并挨执行些写IO命令先写入缓存再性缓存修改推磁盘相于些相同IO合并连续 *** 作IO合并IO随机写IO变组连续写IO能减少磁盘寻址等 *** 作所消耗间提高磁盘写入效率
读缓存虽效率提高明显所带问题比较严重缓存普通内存掉点数据全部丢失 *** 作系统发写IO命令写入缓存即认写入功实际数据没真写入磁盘掉电缓存数据永远丢失应用说灾难性目前解决问题给缓存配备电池保证存储掉电缓存数据能数保存
读写缓存存写缓存命率(WriteCache Hit Radio)读缓存命情况尽管缓存命能实际IO *** 作免掉合并已
控制器缓存磁盘缓存除面作用外承着其作用比磁盘缓存保存IO命令队列功能单磁盘能处理IO命令却能接收IO命令些进入磁盘未处理命令保存缓存IO队列
RAID(Redundant Array Of InexpensiveDisks)
位数据库管理员或者经接触服务器RAID应该熟悉作廉价存储解决案RAID早已服务器存储普及RAID各级别应RAID10RAID5(RAID5已经基本走RAID6崛起看看解原)应用广面RAID0RAID1RAID5RAID6RAID10几种级别RAID展说磁盘阵列于磁盘性能影响阅读面内容前必须各级别RAID结构工作原理要熟悉才行才至于满雾水推荐查看wikipedia面条目:RAIDStandardRAID levelsNested RAID levels
性价比高的蓝牙耳机排行榜10强
蓝牙耳机可能是这个时代除了手机之外,人们用到最多的随身电子产品了。很多手机上已经看不到耳机插口的存在,想入手蓝牙耳机又怕入坑,对于蓝牙耳机我用过不少,盘点了几款相对比较平价一下,配置又比较好的蓝牙耳机给大家,感觉还挺适合学生党的,性能比较高价位还行大多数都能接受。感兴趣的一起来看看吧。
第一款、NANK南卡Lite Pro
推荐理由:高通蓝牙52,音质好,游戏加速模式
这次南卡/NANK半入耳Lite Pro的充电仓一改前代椭圆设计,直接采用了圆润设计,在视觉感官上要比前代好上不少。蓝牙也从之前的50升级为蓝牙52,带来了更加不错的解析能力和延迟。耳机的隔音性也做的很好,由于两个耳机使用无线的连接完全避免了听诊器效应,使外界的干扰降至最低。耳机支持APT-X编码技术,可以提供高清的音乐播放模式。南卡-LITE PRO 蓝牙耳机还增加了游戏模式,三击右耳就可以进入游戏模式,在游戏模式下耳机的延时可以降到005秒不仅可以分辨左右的环境,还能及时获取信息,大大提高游戏体验。
第二款、小米 Air2S
推荐理由:外观简约大气交互性强,功能齐全
非入耳式的设计14mm的动圈结构首先带来的一点好处就是相对开阔的声场,小米 Air 2s 采用半入耳式佩戴结构,单边耳机重 45g,支持蓝牙 50,升级双核芯片,采用全新双耳同步传输技术,将声音信号同时传递到左右耳机,有效降低声音延迟。同时,小米 Air 2s 支持唤醒语音助手与 ENC 环境降噪技术,还针对 MIUI 系统全面优化了 LHDC 蓝牙解码,并采用全新架构对硬件进行了深度优化。新款虽然已经发布,但是对于没有降噪需求的这款耳机绝对是最好的选择,性价比高佩戴也比较舒适。
第三款、魅族POP2s
推荐理由:魅族手机入手比较合适
魅族早期也是做MP3音频的厂家,如今TWS真无线蓝牙耳机的兴起魅族自然是也要加入进来的,这款POP2s也是经过了两代的更新了,造型和POP2差不多整体的线条流线感很流畅顺滑,同时兼顾了颜值和手感。魅族POP2s具备开盖d窗功能,方便单独查看充电盒和耳机各自的电量,不过需要Flyme安卓10以上的版本才行音质表现上,魅族POP2s的调音风格偏流行,重点在于中低音。
第四款、漫步者TWS1 Pro
推荐理由:蓝牙52加持,超长续航单次12小时,总续航30小时
漫步者TWS1 Pro真无线蓝牙耳机为豆式入耳设计,有云白、深灰两种配色,统一以金色点缀,看上去比较典雅。耳机升级为钛振膜, 优化了人声及高频表现;单次续航时间可达12小时,搭配充电盒总续航可达42小时,并且充电盒支持快充,40分钟即可快速充满。此外,耳机还支持IP65级防尘防水,可运动佩戴。搭载的是高通QCC3040蓝牙音频SoC,采用高通第二代aptX Adaptive编解码器,可根据用户使用耳机的场景自动切换aptX HD高音质和aptX Low Latency低延时,兼顾用户体验和续航。这里不太推荐老款TWS1了,升级款整体提升了不少,价位也没有贵多少性价比也是可以的。
MAGIX Low Latency Driver (64-Bit) 是在由Magix AG开发类别 Miscellaneous Shareware 软件。
它是由我们客户端应用程序更新期间的最后一个月的用户更新 94 次进行检查。
最新版本是 MAGIX Low Latency Driver (64-Bit) 的目前未知。 它最初被添加到我们的数据库 2012/05/05 上。
MAGIX Low Latency Driver (64-Bit) 需要任何 Windows *** 作系统,它将被安装在计算机上运行。
MAGIX Low Latency Driver (64-Bit) 已不被评为由我们用户尚未。
以上就是关于指数型思维的五大原理全部的内容,包括:指数型思维的五大原理、如何查看hbase数据库当前的状态、如何使用windows性能监视器监控磁盘性能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)