CPU与网络延迟温度与CPU的关系系

电脑内存和CPU的关系 - 竹林剑客 - 博客园
http://zhidao.baidu.com/link?url=OmHYd0uUJ3elyOnx1Qpdw1GGhMQBzwbdKSwR62Dn6j0090-sR0sQWR02THP-uPx7cK6izC0qFMMRTbrEvCMGtq
1 CPU是负责运算和处理的,内存是交换数据的。当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等。在没有显示完之前,这些数据也保存在内存里,如果内存不足,那么系统自动从硬盘上划分一部分空间作为虚拟内存来用。但写入和读取的速度 跟物理内存差的很远很远,所以,在内存不足的时候,会感到机器反应很慢,硬盘一直在响。512M的物理内存如果增加到2GB,你会感到电脑变得飞快。但内存512,即使你把CPU从单核换成双核,加速感觉也不明显。如果你本来就有2G内存,再增加2G,使用起来几乎没有多少性能的改变。在理论上,物理内存太大反而会减慢速度,因为它增加了寻址的时间。所以家用机器推荐使用2GB-4GB足矣。
2 将电脑比作一个加工厂,CPU就是加工车间,内存就是加工车间的临时仓库硬盘就是加工的原料仓库而操作系统就是协调整间工厂的调度办公室,用户要运行一个游戏,双击鼠标,操作系统接收到用户的指令,将指令传达给CPU,CPU根据用户的需要,将运行这个游戏所需要的东西返回给操作系统,操作系统将游戏的运行要求返回给CPU(包括游戏放在硬盘上的哪个地方,运行游戏需要多少CPU资源,多少内存资源,多少声卡支援,多少显卡资源),CPU接到信息后,开始向各个硬件设备申请资源(包括从硬盘读取游戏数据,让声卡准备为游戏工作,显卡准备为游戏工作),等所有硬件资源都准备就绪,CPU就开始处理游戏程序的各种效果(登陆界面,声音,3D效果等等)用户就可以看到熟悉的游戏画面了。以上是电脑处理每一次用户操作的大致流程,那内存和CPU有什么关系呢,最初的电脑是是没有内存的,CPU处理的数据全部直接读取硬盘内的数据,但是随着CPU技术的发展,CPU的处理速度日益加快,而硬盘的传输速度提升跟不上CPU,就造成了CPU在处理任务的时候,要花费很多时间来等待硬盘的数据传输,在一定程度上影响了电脑的整体运行效率,这时,工程师们在CPU和硬盘直接的传输通道中间加上了内存,这种内存的存储速度是硬盘的数倍到几十倍不等,并在操作系统内制定了相关的预读功能,这样在电脑启动之后,操作系统就预先将平时最常使用的功能先从硬盘读取,并放在内存里,在用户运行常用程序的时候,CPU就直接从内存读取,而不再去频繁的访问硬盘,因此有了内存,电脑的整体性能就得到了很大的提升,后话:为什么不将内存直接做到CPU里面呢?CPU内部也有它自己的内存的,我们一般称之为CPU的缓存,根据CPU不同,CPU有1级缓存、二级缓存、这些缓存的作用也跟内存一样,但速度比内存更快其实缓存就是内存,内存是整机的缓存,显存是显卡的缓存,CPU的CACHE就是CPU的缓存,
3存工作原理:内存带宽一般取决于内存频率,而总线带宽最好和内存带宽保持一致。内存带宽超过总线带宽的话,不超频的情况下,那么也只能按总线带宽来传输数据。那么在这种情况下,内存的频率是否有变化? 比如:1.假设有一块总线频率为800MHZ,并且支持1066MHZ内存的主板上插一根1066MHZ的内存条,(CPU总线800)那么内存带宽最多只有6.4G/S,而其频率仍然是1066?还是只有800了? 2.如果在一块总线频率为1066的主板上(CPU总线1066)组2根667内存双通道,那么其内存带宽为8.5G/S,而其内存频率是2个667还是2个533?另外,现在的DDR3号称虽然延迟时序比DDR2要多,但绝对延迟值却比DDR2要小,因为要将内存运行频率计算在内。那么问题就来了:DDR3的绝对延迟值是在其运行频率100%发挥的前提下的结果,如果内存频率受到瓶颈限制的话,其绝对延迟值还是这么低吗?比如:总线频率为800MHZ,主板支持的情况下,配一根DDR3 1066MHZ的内存,其绝对延迟值是变大了,还是不变?CPU的原始工作模式 在了解CPU工作原理之前,我们先简单谈谈CPU是如何生产出来的。CPU是在特别纯净的硅材料上制造的。一个CPU芯片包含上百万个精巧的晶体管。人们在一块指甲盖大小的硅片上,用化学的方法蚀刻或光刻出晶体管。因此,从这个意义上说,CPU正是由晶体管组合而成的。简单而言,晶体管就是微型电子开关,它们是构建CPU的基石,你可以把一个晶体管当作一个电灯开关,它们有个操作位,分别代表两种状态:ON(开)和OFF(关)。这一开一关就相当于晶体管的连通与断开,而这两种状态正好与二进制中的基础状态&0&和&1&对应!这样,计算机就具备了处理信息的能力。 但你不要以为,只有简单的&0&和&1&两种状态的晶体管的原理很简单,其实它们的发展是经过科学家们多年的辛苦研究得来的。在晶体管之前,计算机依靠速度缓慢、低效率的真空电子管和机械开关来处理信息。后来,科研人员把两个晶体管放置到一个硅晶体中,这样便创作出第一个集成电路,再后来才有了微处理器。 看到这里,你一定想知道,晶体管是如何利用&0&和&1&这两种电子信号来执行指令和处理数据的呢?其实,所有电子设备都有自己的电路和开关,电子在电路中流动或断开,完全由开关来控制,如果你将开关设置为OFF,电子将停止流动,如果你再将其设置为ON,电子又会继续流动。晶体管的这种ON与OFF的切换只由电子信号控制,我们可以将晶体管称之为二进制设备。这样,晶体管的ON状态用&1&来表示,而OFF状态则用&0&来表示,就可以组成最简单的二进制数。众多晶体管产生的多个&1&与&0&的特殊次序和模式能代表不同的情况,将其定义为字母、数字、颜色和图形。举个例子,十进位中的1在二进位模式时也是&1&,2在二进位模式时是&10&,3是&11&,4是&100&,5是&101&,6是&110&等等,依此类推,这就组成了计算机工作采用的二进制语言和数据。成组的晶体管联合起来可以存储数值,也可以进行逻辑运算和数字运算。加上石英时钟的控制,晶体管组就像一部复杂的机器那样同步地执行它们的功能。 CPU的内部结构 现在我们已经大概知道CPU是负责些什么事情,但是具体由哪些部件负责处理数据和执行程序呢? 1.算术逻辑单元ALU(Arithmetic Logic Unit) ALU是运算器的核心。它是以全加器为基础,辅之以移位寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下可完成加、减、乘、除四则运算和各种逻辑运算。就像刚才提到的,这里就相当于工厂中的生产线,负责运算数据。 2.寄存器组 RS(Register Set或Registers) RS实质上是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途。通用寄存器的数目因微处理器而异。 3.控制单元(Control Unit) 正如工厂的物流分配部门,控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器0C(Operation Controller)三个部件组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。 4.总线(Bus) 就像工厂中各部位之间的联系渠道,总线实际上是一组导线,是各种公共信号线的集合,用于作为电脑中所有各组成部分传输信息共同使用的&公路&。直接和CPU相连的总线可称为局部总线。其中包括: 数据总线DB(Data Bus)、地址总线AB(Address Bus) 、控制总线CB(Control Bus)。其中,数据总线用来传输数据信息;地址总线用于传送CPU发出的地址信息;控制总线用来传送控制信号、时序信号和状态信息等。 CPU的工作流程 由晶体管组成的CPU是作为处理数据和执行程序的核心,其英文全称是:Central Processing Unit,即中央处理器。首先,CPU的内部结构可以分为控制单元,逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,我们注意到从控制单元开始,CPU就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。 数据与指令在CPU中的运行 刚才已经为大家介绍了CPU的部件及基本原理情况,现在,我们来看看数据是怎样在CPU中运行的。我们知道,数据从输入设备流经内存,等待CPU的处理,这些将要处理的信息是按字节存储的,也就是以8位二进制数或8比特为1个单元存储,这些信息可以是数据或指令。数据可以是二进制表示的字符、数字或颜色等等。而指令告诉CPU对数据执行哪些操作,比如完成加法、减法或移位运算。 我们假设在内存中的数据是最简单的原始数据。首先,指令指针(Instruction Pointer)会通知CPU,将要执行的指令放置在内存中的存储位置。因为内存中的每个存储单元都有编号(称为地址),可以根据这些地址把数据取出,通过地址总线送到控制单元中,指令译码器从指令寄存器IR中拿来指令,翻译成CPU可以执行的形式,然后决定完成该指令需要哪些必要的操作,它将告诉算术逻辑单元(ALU)什么时候计算,告诉指令读取器什么时候获取数值,告诉指令译码器什么时候翻译指令等等。 假如数据被送往算术逻辑单元,数据将会执行指令中规定的算术运算和其他各种运算。当数据处理完毕后,将回到寄存器中,通过不同的指令将数据继续运行或者通过DB总线送到数据缓存器中。 基本上,CPU就是这样去执行读出数据、处理数据和往内存写数据3项基本工作。但在通常情况下,一条指令可以包含按明确顺序执行的许多操作,CPU的工作就是执行这些指令,完成一条指令后,CPU的控制单元又将告诉指令读取器从内存中读取下一条指令来执行。这个过程不断快速地重复,快速地执行一条又一条指令,产生你在显示器上所看到的结果。我们很容易想到,在处理这么多指令和数据的同时,由于数据转移时差和CPU处理时差,肯定会出现混乱处理的情况。为了保证每个操作准时发生,CPU需要一个时钟,时钟控制着CPU所执行的每一个动作。时钟就像一个节拍器,它不停地发出脉冲,决定CPU的步调和处理时间,这就是我们所熟悉的CPU的标称速度,也称为主频。主频数值越高,表明CPU的工作速度越快。 如何提高CPU工作效率 既然CPU的主要工作是执行指令和处理数据,那么工作效率将成为CPU的最主要内容,因此,各CPU厂商也尽力使CPU处理数据的速度更快。 根据CPU的内部运算结构,一些制造厂商在CPU内增加了另一个算术逻辑单元(ALU),或者是另外再设置一个处理非常大和非常小的数据浮点运算单元(Floating Point Unit,FPU),这样就大大加快了数据运算的速度。 而在执行效率方面,一些厂商通过流水线方式或以几乎并行工作的方式执行指令的方法来提高指令的执行速度。刚才我们提到,指令的执行需要许多独立的操作,诸如取指令和译码等。最初CPU在执行下一条指令之前必须全部执行完上一条指令,而现在则由分布式的电路各自执行操作。也就是说,当这部分的电路完成了一件工作后,第二件工作立即占据了该电路,这样就大大增加了执行方面的效率。 另外,为了让指令与指令之间的连接更加准确,现在的CPU通常会采用多种预测方式来控制指令更高效率地执行。好CPU要配好内存 带宽和延迟时间谁更重要
时间: 15:16:00来源:作者:蓝点(0)
  编者注:现在许多新配的主流电脑基本上是P4等级的,如何搭配内存才能发挥出CPU的优势呢?是高频率好还是低延迟好呢?这篇文章会针对不同的应用来进行分析解释,特别对超频玩家更有十分的帮助。
  引言  自从Intel发布i865PE/i875P双通道主板和P4处理器后,内存市场便经历了前所未有的巨大变化。在双通道DDR内存出现后,P4不再受到带宽的制约(带宽限制的问题在P4与i845系列配合时尤其突出)。像i845PE一样,由于使用单通道内存控制器,单通道DDR芯片仅能提供P4所需要的一半的带宽。
  新型800MHz的FSB奔4处理器能利用总线速度使运算速度超过以往,众多的内存生产厂商也开始生产相匹配的“高速”内存,而且速度与日俱增。遗憾的是,为了使内存频率达到与FSB相同的速度,基本上所有的高速DIMM都要产生相当的延迟现象,而且延迟时间相当长,比如3-4-4-8。一个很简单的例子,拉力赛赛车跑得再快,在赛道上也赶不上F1赛车;同样,再好的F1赛车在拉力赛中也不可能获胜。这也就是说,所谓的“高速”内存在高速情况下,延迟现象考虑不了太多。但众所周知,内存的延时对于整个系统的表现来说十分重要,很简单的例子,不少3D软件运行时不需要很大的带宽,但需要机子中不同硬件之间的高速传输(显卡--CPU--内存)。
  为内存时钟困惑吗?
  一旦涉及到内存时钟,不少人总是爱谈论在接受或发送数据前,内存到底需要多长的准备时间。你可以把内存时钟看成一个在餐馆里工作的服务员,在你点了菜后,你需要耐心的等待。内存时钟越短,计算机从内存中读取数据的速度越快(就好像上菜越快一样),电脑总体的速度也就越快。至于为什么没有比2-2-2-5更短的延迟时间,这是因为JEDEC(内存标准权威组织)认为当前的动态存储技术还无法实现0或1的延迟。
  延迟的描述可以用四个用“-”分开的阿拉伯数字表示,比如2-2-2-5。第一个数字代表CAS(Column Address Strobe)延迟时间,这个数字非常重要。接下来是RAS(Row Address Strobe)-to-CAS延迟,RAS Precharge延迟和Act-to-Precharge延迟。
  上图展示了DDR333内存的延时情况,具体如下:
  该图表显示了CAS2,CAS2.5和CAS3三种延时(CL=2的情况下)。请注意图中垂直的虚线,它反映了时钟信号的上下波动。因为DDR333是双数据RAM内存,所以不难看出,每个时间单元中都由两部分组成。
  CAS延迟体现在读出一条指令到数据输出这个过程中(CAS可用时钟循环来计算)。在上面的例子中,读取命令在T0时刻,而数据输出在T3时刻,所以延迟时间为3。很显然,以2-2-2-5方式运行的内存要比以3-4-4-8方式运行快的多,这是因为对于前者,内存接受一条指令,计算出数据,然后返回结果的时间要比后者短。
  问题出现了,是选择高频率,还是低延呢?有人说了,我当然会去选择频率高延迟低的内存。然而,他们一定会失望的,因为目前市场上没有如此的产品,即使是PC4000内存的延迟时钟也是相当保守的。
  我们会陷入这样的迷惑:到底是要高频长延迟内存,还是低速短延迟的呢?有两种方案,第一个方案是高速DIMM内存(比如PC4000),可以通过向处理器提供相当大的带宽来弥补其长延迟。(值得指出的是,带宽对各个硬件传输数据的快慢影响很大)像PC3200,PC3500一样,大多数DIMM延迟很长,其频率赶不上FSB处理器。假如超频过高,其带宽将受到限制。遗憾的是,就算能为CPU提供很大的带宽,CPU也将不得不等待下一个时钟周期,根源是内存速度根本跟不上CPU。大带宽也是有好处的,如果CPU要运算大量数据,比如Photoshop,database等。
  第二个方案是基于CAS2的PC3200和PC3500,由于延迟很短,反过来弥补了带宽的不足。总之,机子内部快速的数据传送对不需要大带宽的程序很有利,游戏和3D方面的软件就是很好的例子。
  测试说明一切!
  下面的测试系统使用了250MHz的FSB处理器。Corsair TwinX-4000内存在3-4-4-8延迟设置下,可以与FSB同步工作;而测试工作频率为200MHz(5:4的内存分频)的Corsair XMS3500 CAS2内存,延迟设为2-2-2-5。同时还测定Corsair XMS3500 CAS2在333MHz,延迟为2-2-2-5的工作情况。
  测试软件:Winstone2002,SiSoft Sandra,PCMark2002
  Winstone2002
  结果如图。在Content Creation当中,低频率,短延迟对系统运行速度有利,而在Business Winstone中相反,高频率,长延时更加有利。其实如果用333MHz的内存,速度也不会慢多少。
  SiSoft Sandra 2004
  结果显然易见,内存可以利用的带宽越大,频率越高,系统速度越快。Sandara没有太多的考虑到内存延迟。
  PCMark 2002
  PCMark 2002与Sandra的结果十分相似。
  测试软件:3DMark2001, AquaMark3
  3DMark2001 SE
  测试结果非常接近,低频率,短延迟的内存发挥出了优势。
  AquaMark3
  可以看出结果相差不大,短延迟的系统更加有利。请注意:即使333MHz的内存系统也超过了500MHz内存系统。
  测试软件:Quake III Arena,UT2003
  Quake III Arena
  各项结果都十分相近,在system(第一个表格)中,1号延时长,还是5:4的内存分频,其结果最好。
  Unreal Tournament 2003
  在UT 2003中,结果相差无几。如果你爱玩游戏,你最好选择低频率,延迟短的内存。
  不得不承认带宽对于P4处理器来说非常重要,i865PE和i875P系统使得事情变得十分简单。测试过程中,使用400MHz频率内存(低延时)的系统要比单纯追求高频率内存系统的性能提高2~3%。许多发烧友喜欢使用低频率,延迟短的内存,这对于那些一味追求高频内存的生产厂商来说的确是个不好的消息。
  对于上文的测试结果,也许有人提出反对意见,认为选择的测试软件具有片面性。需要值得强调的是,对于大多数用户来说,他们主要运行游戏和简单的2D应用程序,因此速度,性能居于首位;像办公系统、工组站,更注重稳定性和超负荷(同时对软硬件提出要求)性能。
  如果你正在准备构建你自己的P4系统并且仅仅玩玩游戏而已,建议选择延迟短的DDR内存,比如Mushkin's PC3500 Level II内存,频率为217MHz,延迟为2-2-2-5,或者Corair's TwinX-3200LL内存,频率和延迟分别为200MHz和2-2-2-5。如果你是一个网络用户或超频新手,还想用一台P4系统以较少的工作量获得优质的成果,建议你选购高频率的DIMM内存,毫无疑问,这些内存没有那些短延迟内存速度快,但是,它们容易安装。
  对AMD系统来说,因为CPU总线的速度并没有P4那么夸张,所以用高速的内存所带来的增益并不明显,不妨配备短延迟的内存,效果同样出色。
  编辑点评:为什么厂商不生产高频率低延迟的内存呢?因为在竞争激烈的市场中,即使一个主要的生产厂商生产了革命性的产品(如高频率低延迟内存),但最终的命运也肯定是被市场或竞争对手淘汰,可能连投入研发的经费都赚不回来,所以就没有厂商生产如此高性能的内存。话又说回来,如果生产商不生产出先进的产品,那么人们会认为它跟不上时代。不管怎么样,希望这篇文章能帮你在组建硬件系统时起一点指导作用。
太平洋电脑网 文/朱辉Redis 响应延迟问题排查 - 技术翻译 - 开源中国社区
Redis 响应延迟问题排查
【已翻译100%】
英文原文:
推荐于 6年前 (共 32 段, 翻译完成于 03-09)
参与翻译&(9人)&: ,
本文将有助于你找出Redis 响应延迟的问题所在。
文中出现的延迟(latency)均指从客户端发出一条命令到客户端接受到该命令的反馈所用的最长响应时间。Reids通常处理(命令的)时间非常的慢,大概在次微妙范围内,但也有更长的情况出现。
&翻译得不错哦!
计算延迟时间
如果你正在经历响应延迟问题,你或许能够根据应用程序的具体情况算出它的延迟响应时间,或者你的延迟问题非常明显,宏观看来,一目了然。不管怎样吧,用redis-cli可以算出一台Redis 服务器的到底延迟了多少毫秒。踹这句:
redis-cli --latency -h `host` -p `port`
&翻译得不错哦!
网络和通信引起的延迟
当用户连接到Redis通过TCP/IP连接或Unix域连接,千兆网络的典型延迟大概200us,而Unix域socket可能低到30us。这完全基于你的网络和系统硬件。在通信本身之上,系统增加了更多的延迟(线程调度,CPU缓存,NUMA替换等等)。系统引起的延迟在虚拟机环境远远高于在物理机器环境。
&翻译得不错哦!
实际情况是即使Redis处理大多数命令在微秒之下,客户机和服务器之间的交互也必然消耗系统相关的延迟。
一个高效的客户机因而试图通过捆绑多个命令在一起的方式减少交互的次数。服务器和大多数客户机支持这种方式。聚合命令象MSET/MGET也可以用作这个目的。从Redis 2.4版本起,很多命令对于所有的数据类型也支持可变参数。
&翻译得不错哦!
这里有一些指导:
如果你负担的起,尽可能的使用物理机而不是虚拟机来做服务器
不要经常的connect/disconnect与服务器的连接(尤其是对基于web的应用),尽可能的延长与服务器连接的时间。
如果你的客户端和服务器在同一台主机上,则使用Unix域套接字
尽量使用聚合命令(MSET/MGET)或可变参数命令而不是pipelining
如果可以尽量使用pipelining而不是序列的往返命令。
针对不适合使用原始pipelining的情况,如某个命令的结果是后续命令的输入,在以后的版本中redis提供了对服务器端的lua脚本的支持,实验分支版本现在已经可以使用了。
在Linux上,你可以通过process placement(taskset)、cgroups、real-time priorities(chrt)、NUMA配置(numactl)或使用低延迟内核的方式来获取较低的延迟。请注意Redis&并不适合被绑到单个CPU核上。redis会在后台创建一些非常消耗CPU的进程,如bgsave和AOF重写,这些任务是绝对不能和主事件循环进程放在一个CPU核上的。
大多数情况下上述的优化方法是不需要的,除非你确实需要并且你对优化方法很熟悉的情况下再使用上述方法。
&翻译得不错哦!
Redis的单线程属性
Redis 使用了单线程的设计, 意味着单线程服务于所有的客户端请求,使用一种复用的技术。这种情况下redis可以在任何时候处理单个请求, 所以所有的请求是顺序处理的。这和Node.js的工作方式很像, 所有的产出通常不会有慢的感觉,因为处理单个请求的时间非常短,但是最重要的是这些产品被设计为非阻塞系统调用,比如从套接字中读取或写入数据。
我提到过Redis从2.4版本后几乎是单线程的,我们使用线程在后台运行一些效率低下的I/O操作, 主要关系到硬盘I/O,但是这不改变Redis使用单线程处理所有请求的事实。
&翻译得不错哦!
低效操作产生的延迟
单线程的一个结果是,当一个请求执行得很慢,其他的客户端调用就必须等待这个请求执行完毕。当执行GET、SET或者 LPUSH 命令的时候这不是个问题,因为这些操作可在很短的常数时间内完成。然而,对于多个元素的操作,像SORT, LREM, SUNION&这些,做两个大数据集的交叉要花掉很长的时间。
文档中提到了所有操作的算法复杂性。 在使用一个你不熟悉的命令之前系统的检查它会是一个好办法。
&翻译得不错哦!
如果你对延迟有要求,那么就不要执行涉及多个元素的慢操作,你可以使用Redis的replication功能,把这类慢操作全都放到replica上执行。
可以用Redis 的来监控慢操作。
此外,你可以用你喜欢的进程监控程序(top, htop, prstat, 等...)来快速查看Redis进程的CPU使用率。如果traffic不高而CPU占用很高,八成说明有慢操作。
&翻译得不错哦!
延迟由fork产生
Redis不论是为了在后台生成一个RDB文件,还是为了当AOF持久化方案被开启时重写Append Only文件,都会在后台fork出一个进程。fork操作(在主线程中被执行)本身会引发延迟。在大多数的类unix操作系统中,fork是一个很消耗的操作,因为它牵涉到复制很多与进程相关的对象。而这对于分页表与虚拟内存机制关联的系统尤为明显
&翻译得不错哦!
对于运行在一个linux/AMD64系统上的实例来说,内存会按照每页4KB的大小分页。为了实现虚拟地址到物理地址的转换,每一个进程将会存储一个分页表(树状形式表现),分页表将至少包含一个指向该进程地址空间的指针。所以一个空间大小为24GB的redis实例,需要的分页表大小为 &24GB/4KB*8 = 48MB。
当一个后台的save命令执行时,实例会启动新的线程去申请和拷贝48MB的内存空间。这将消耗一些时间和CPU资源,尤其是在虚拟机上申请和初始化大块内存空间时,消耗更加明显。
&翻译得不错哦!
我们的翻译工作遵照 ,如果我们的工作有侵犯到您的权益,请及时联系我们
直接拒绝。。网络延迟能造成cpu高吗_百度知道
网络延迟能造成cpu高吗
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
网络的确对CPU有影响,但几乎可以忽略不计,你可以设想一下,本来不联网,外部没有数据需要CPU处理,但是一联网,外部数据需要CPU处理了,但是网速能有多快?算法也不复杂,网卡也能承担大部分,就算10M/S,对于CPU使用率来说微乎其。所以说网络能造成CPU使用率几乎看不出来的高那么一点点,但是网络延迟大不大则根本没有关系
为何一玩游戏时网络不稳定cpu就到100%,把网关掉玩就不是100%,是笔记本,还是网卡驱动有问题?
玩星际1总该不卡把?可是一有延迟星际1屏幕就非常慢,
我从来没有见过这种情况,估计是游戏本身优化有问题,你可以试试看另外网游,在网很卡的情况下会不会这样
采纳率:73%
延迟过高会对CPU增加一点负载
网络不稳定呢
不会,网络和cpu没关系
为您推荐:
其他类似问题
您可能关注的内容
网络延迟的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 CPU与芯片的关系 的文章

 

随机推荐