问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

硬盘和CPU缓存对计算机整体性能的影响

发布网友 发布时间:2022-04-13 21:15

我来回答

6个回答

懂视网 时间:2022-04-14 01:36

数据的存储方式对应用程序的整体性能有着极大的影响。对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上

摘要

数据的存储方式对应用程序的整体性能有着极大的影响。对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式,我们如何选择?本文给大家提供了一份不同存储模式下的性能测试数据,方便大家在今后的程序开发过程中可以利用这份数据选择合适的数据存储模式。

TAG

存储性能,innodb性能,存储介质

目录

目录… 1

简介… 1

存储性能分析… 2

测试程序说明:… 2

存储测试数据:… 2

Mysql innodb性能测试… 4

Mysql(InnoDB)刷盘策略… 6

c/s模式通信性能… 6

直接文件存储… 7

文件IO方式… 7

完全随机写还是跳跃,5倍的性能差距… 8

多线程随机读、处理速度、响应时间… 9

系统缓存… 10

系统缓存相关的几个内核参数… 10

dirty页的write back. 10

总结… 11

简介

数据的存储方式对应用程序的整体性能有着极大的影响。对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式, 我们如何选择?

本文会对不同存储方式做详细的性能测试,以提供给大家一份不同存储方式下的性能测试数据为主,同时会简单介绍各种存储方式之间的性能差异。

存储性能分析

影响储存速度有各个方面的原因,包括存储介质、读写盘方式以及硬件环境对读写盘时的影响。这里主要分享存储速度的一些调研结果。

硬件环境如下:

CPU: INTER Nehalem E5620 2.4GHZx2

内存: PC-8500 4GB*8

硬盘: 300G 10k*2, RAID:1

Flash: SSD 160GB_MLC X25-M G2×6

网卡: 千兆

数据量:117G

测试程序说明:

测试共分两套程序:

  • A. 存储测试
  • a) 存储测试程序均使用pread/pwrite进行存储测试,块链遍历速度采用frs开发的块链库进行。

    b) 为了减少随机读写时系统缓存带来的影响

    i. 将数据量增大至117G

    ii. 每次数据只被测试一次

    iii. 程序入口处清内存

    c) 测顺序读写时,一次读写所有数据。

    d) 测随机读写时,每次读4KB,读381MB。

  • B. 网络性能测试
  • a) 采用ub + ubrpc实现压力工具的服务器端和客户端。

    b) UBSVR_NODELAY

    c) 常用的Idl规范

    d) 对两个不同大小的包请求进行测试

    存储测试数据:

    磁盘

    顺序读:145.59MB/s

    随机读:0.91MB/s (每次读4KB,读381MB)

    顺序写:83.1MB/s

    随机写:0.34MB/s (每次写4KB, 写381MB)

    Flash

    顺序读:61.5MB/s

    随机读:14.9MB/s (每次读4KB,读381MB)

    顺序写:59.8MB/s

    随机写:1.93MB/s (每次写4KB, 写381MB)

    内存

    顺序写:1655MB/s

    随机写:1496MB/s

    Eg: 块链遍历速度1000万元素, 565582 us

    磁盘与flash卡的顺序读写性能对比(单位MB):

    磁盘与flash卡的顺序读写性能对比(单位MB):

    磁盘与flash卡的随机读写性能对比(单位MB):

    磁盘与flash卡的顺序读写性能对比(单位MB):

    对比磁盘和flash卡的随机读写性能,我们可以看到:对于写操作而言,其在磁盘和flash卡上的性能差异较小,且事实上其性能差异会随着随机写时每次写入的数据量以及flash卡块大小等其它因素而产生波动;同时,在带写优化的flash上,当将数据写入flash卡时,数据会先写到一块buffer中,当满足一定条件(如buffer满)后,会将buffer的数据刷入flash,此时会阻塞写,因此会带来性能抖动。所以,,当应用程序的多数操作是写入操作时,若没有flash卡也可以勉强将数据放到磁盘上。

    但是相反,从测试结果看,在磁盘和flash卡上的随机读性能有着8倍甚至更多的差距,所以当程序读磁盘操作相当多时,把数据放到flash卡上是一个比较好的选择。比如,对于一个随机查询较多数据库应用程序,我们可以考虑把数据库的存储文件放到flash卡上。

    另一方面,我们可以直观地看到,无论顺序读还是顺序写,在磁盘上的速度都远远高于在flash卡上的速度。所以如果程序所需的数据是从磁盘一次载入,载入后对数据的修改都是内存操作,不直接写盘,当需要写盘时,也是一次将内存中的数据dump到磁盘上时。我们都应该将数据放到磁盘,而不是flash卡上。

    linux

    热心网友 时间:2022-04-13 22:44

    CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器!它的容量比内存小的多但是交换速度却比内存要快得多。

    缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。因此,缓存对CPU的性能影响很大。

    cpu缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,找到就立即读取并送给CPU处理;没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。

    硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。

    热心网友 时间:2022-04-14 00:02

    首先了解一下硬盘的缓存主要起三种作用:

      一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的。

     二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地。

    三是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。缓存就像是一台计算机的内存一样,在硬盘读写数据时,负责数据的存储、寄放等功能。这样一来,不仅可以大大减少数据读写的时间以提高硬盘的使用效率。同时利用缓存还可以让硬盘减少频繁的读写,让硬盘更加安静,更加省电。更大的硬盘缓存,你将读取游戏时更快,拷贝文件时候更快,在系统启动中更为领先。

    缓存英文名为Cache,它也是内存的一种,其数据交换速度快且运算频率高。 硬盘的缓存是硬盘与外部总线交换数据的场所。硬盘的读数据的过程是将磁信号转化为电信号后,通过缓存一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,可见,缓存的作用是相当重要的。根据写入方式的不同,有写通式和回写式两种。写通式在读硬盘数据时,系统先检查请求指令,看看所要的数据是否在缓存中,如果在的话就由缓存送出响应的数据,这个过程称为命中。这样系统就不必访问硬盘中的数据,由于SDRAM的速度比磁介质快很多,因此也就加快了数据传输的速度。回写式就是在写入硬盘数据时也在缓存中找,如果找到就由缓存就数据写入盘中,现在的多数硬盘都是采用的回写式硬盘,这样就大大提高了性能。

    硬盘在控制器上的一块内存芯片,其类型一般以SDRAM为主,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。在接*术已经发展到一个相对成熟的阶段的时候,缓存的大小与速度是直接关系到硬盘的传输速度的重要因素。目前主流硬盘的缓存主要有2KB和8MB等几种,最大的台式机缓存容量已经提升到16M。

    热心网友 时间:2022-04-14 01:37

    当然影响了,木桶说的

    热心网友 时间:2022-04-14 03:28

    很大

    热心网友 时间:2022-04-14 05:36

    查看你的计算机组成原理书吧...
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    2010 CPA 大马哈鱼子维生素含量 “翔气饶云悲”的出处是哪里 “西顾明月窍”的出处是哪里 “左载王子乔”的出处是哪里 “杯酒慷以慨”的出处是哪里 “纷纷射杀五单于”的出处是哪里 ...的文章 2.根据上题,你最感兴趣的内容是什么? 刚降雪后的街道会显得格外寂静,周围环境中的噪音都跑到哪里去了_百度知... ...的街道,马路,降雪后,显得格外寂静,周围环境中的噪声都上哪去了... 用网易MUMU装的阴阳师文件在哪个文件夹 司机全责且司机在事故中死亡,那么保险公司还赔司机家属损失吗? 佛手瓜鸭肉的家常做法,佛手瓜鸭肉怎么做 交换机 路由器和集线器的异同 集线器、交换机、路由器有什么区别和共同点? 《集线器和交换机的异同》 集线器,路由器和交换机各自的相同点和不同点 中华民国37年10元人民币最新价格 苏秘37度在韩国卖多少钱 中华民国37年20元人民币最新价格 步步高vivo Y37售价多少钱 vivo Y37价格/最新报价揭秘 viv0y37手机价格 中华民国三十七年一仟元纸币现在市场价 vivoy37a手机市场价是多少? 民国37年纸币1000元价格 请问中华民国37年人民币五元值什么价 37寸液晶电视和等离子电视的价格 vvivoy37出厂时的价格 37墙一平米造价多少钱,37墙一平米造价多少钱知识 卡罗拉21款1.2精英空调怎样制热? 家庭版口水鸡,简单到不行,你会了吗? 家庭版的口水鸡是怎样做的? 家庭版口水鸡做法 口水鸡怎么制作? 家庭版口水鸡怎么做? 家庭版的口水鸡是怎样做的呢? 家庭版上的口水鸡做法步骤是什么? 求一个可以手机在线联网玩五子棋的游戏,告诉我名字就好 小游戏有好玩的五子棋游戏吗? 自学自由泳是否 必须使用浮板? 那有在线玩五子棋~~要牛比的~~ 硅胶美女娃娃实物怎么样? 家庭版的口水鸡应该怎么做呢? 安装flash cs3的时候提示应用程序初始化(0xc0000005)失败是怎么回事 什么样的硅胶实体娃娃最逼真? 你是我患得患失的梦歌曲歌词 穿越山河的箭什么意思 毕竟这穿越山河的箭刺的都是用情致疾的人女友发这个的意思! 你是我患得患失的梦,毕竟这穿越山河的箭,插的都是用情至极的人。意思。 女朋友刚发的一句话毕竟这穿越山河的剑,刺的都是用情至深的人