上一节课给大家讲了内存和硬盘的比例,还有速度的差别,我们继续来补充一下演示,这个演示相对简单,直接打开一个工具,直接看一下内存和硬盘的速度是多少就可以了,我们直接利用一个工具叫做 EVEREST ,我们就简单测试一下内存和硬盘的速度是

怎么样的,打开软件,点击内存的读取,点击刷新

针对硬盘,我们工具底下有一个磁盘测试,

稍微有点问题后续修改

我们看一下随机读,随机读对硬盘的要求更高一点,因为他的寻址更频繁,那么直接开始,注意这里的 block size 是  4 kb,

这个对硬盘的读写速度要求更高,相当于读取的读取的文件都是 4K 大小的,速度所以会很慢,30多兆 ,大概先有个印象,我们先停止,我们把block size 设置成大一点的,我们设置成 1 M ,我们来看看结果又是怎样的,现在是 200 多兆,每一次读取的文件是一整块一整块的,每次读取的大一点,寻址的频率就低一点,这个速度会很快 200 多兆,这边是 5 G ,而且测试的固态硬盘,所以他会很快,如果是传统的硬盘基本上就是 60-80 m 的样子,如果是传统硬盘读取 4 KB 的话,我们固态硬盘的随机读是 30 多兆,这是很理想的状况,传统的机械硬盘读取 4KB 的话,速度可能就 1-2M ,很慢很慢,关于固态硬盘和机械硬盘的工作原理大家有必要去学习一下,有必要去了解一下,毕竟我们进行性能测试,对硬件是需要了解的,我们现在就能够直观的看到差别所在,就是内存和硬盘的读取速度,他们到底差别有多大,理解了这个,我们才能够理解为什么我们会想方设法利用好内存资源,尽量减少对硬盘的读写,减少与硬盘的交换,包括我们自己开发的系统,也一定要注意利用好内存,要把内存用到极致,而且如果我们的硬盘的读写频率太高,他对硬盘的损伤会很大,而内存不存在这个问题,因为内存随机的读写的机制无所谓很快,而且也不会对内存条有什么损伤,这种机械硬盘,特别是传统的磁道寻址的机械硬盘,写的次数太多了,或者寻址的次数太多了,他对硬盘的损伤都是很大的,包括现在的固态硬盘也是有这个问题,写的次数过多对控制器和盘片都会有一定的影响,所以我们利用好内存,利用好缓存就可以减少应用程序直接调用硬盘读写的操作,把一些东西一批辆的放在里面,然后一次性的写在硬盘上,不过好在硬盘也有自己的缓存,假设我们的应用程序每次 1M 的写,但是硬盘并不会忠诚的你让我写 1 M 我就会写 1 M ,而是他也利用自己的缓存机制,他会先把你让他写的东西缓存起来,然后到达一定程度在统一写到硬盘中,所以要考察一个硬盘的性能,除了寻址速度,除了转速,容量,很重要的一个指标就是缓存,其实包括 CPU 性能也是同样的,对一个 CPU 来说考察时钟频率、内核数量、还有一级缓存、二级缓存、三级缓存的大小,越大处理性能就越好,如果这些缓存越大意味着什么?因为 CPU 之前是直接跟内存交换数据的,现在相对于内存来说,CPU 的缓存的速度要远远的高于内存的速度,如果说我们在 CPU 和 内存之间加了缓存,相当于 CPU 不会跟内存进行交换数据了,(之前应用程序会放在内存里面,CPU  处理完的数据,CPU 暂时跟内存打交道),内存会把需要交换的数据放在缓存当中,缓存再去跟 CPU 打交道,所以 CPU 一直是高高在上的,不是那个人我话都不跟你讲,这样一级一级把数据存起来就可以提升性能,如果每一次我都这样提交,对于 CPU 来说,内存你好慢啊,每次从你内存拿东西太慢了,我很顺手的就从缓存这里拿,无论怎么拿,我一级缓存只和二级缓存交换数据,二级缓存只和内存交换数据,有了这个机制我们就能够感觉到每个硬件都是很忙的,而且都是可以从她的旁边拿到任务来做了,就是这么一个概念,如果是再把 CPU直接和硬盘进行数据交互,那这个系统就没有办法想象了,

现在一个机械硬盘的缓存大小差不多是 16 M 、32 M 是主流,因为缓存比较贵,所以不会弄的很大,也有一些机械缓存达到 64 M ,但是一个固态硬盘的缓存就会达到 512 M 、1 G ,固态硬盘的容量可能就 256 G、 512 G ,但是缓存相比较传统的机械硬盘要大的多,这也是为了提升性能,好,理解一些这个缓存的作用,对于缓存我给大家提一点,在进行系统级别的调优的时候,重点利用缓存,针对某个具体的应用系统,一定要把缓存的机制利用起来,包括数据库也是一样的,数据库的缓存我们好好去利用,可以提升不少的性能,比如说 sql server 的数据库还有 oracle 他们都是可以配置内核参数的,这些内核参数配置好了对于性能的提升是很直观的,很直接的,我们马上可以看到效果的,实际上,性能的优化处理系统层面的优化还有代码层面的优化,比如针对一个 sql 语句我们也有很多优化的标准,比如说少用一些聚合函数,一定把索引用好,等等这些都是一些更细化的性能优化的方式了,这种我们称为,代码级性能优化,比如说 sql 语句、算法本身,而算法的优化的原则也是用好内存减少计算,我们就需要知道内存工作的原理,我们能花一次运算完成的不要用10次 就是算法的减少计算,运算次数决定了 CPU 的消耗,内存利用率决定了资源占用等等,作为一个程序员,高手和菜鸟的区别不在于能不能实现功能,在于更底层的性能的优化,和运算速度的关注,菜鸟可能就是用很烂的代码把这个功能实现而已,但是这个代码可能要话很长的时间才能执行完,高手可能用很简捷的代码把这个功能实现的很高效,所以我们了解一下这些基本的原理,   这是后端性能分析的标准的一点点,这是重要的一点点,很少的一部分做讲解,大家可以慢慢的积累,把这些问题讲明白了,后面没有什么难题你解决不了的,就是说你可以找到解决问题的正确的方向,就是前期你经验比较少,时间稍微长一点,我们想通过这几节课的介绍我们有清晰的思路,这是我们基本共的锻炼,到后面我们遇到问题了,方向保证是正确的,整个对于,系统后端的性能的分析和使用我们就说到这里。

性能测试20--Analysis -- 内存与硬盘相关推荐

  1. 利用虚拟硬盘(把内存当作硬盘)来提高数据库的效率(目前只针对SQL Server 2000)可以提高很多...

    上一篇:让你的笔记本更快一点--我的笔记本的性能测试和虚拟硬盘(把内存当成硬盘)的使用感觉 虚拟硬盘:就是把内存当作硬盘来用,比如有2G的内存,那么可以拿出来1G的内存当作硬盘来用. 自从知道了&qu ...

  2. 缓存、内存、硬盘、虚拟硬盘

    CPU缓存的容量比内存小的多但是交换速度却比内存要快得多.缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据 ...

  3. 【2021笔记本选购指南】让你了解笔记本少走弯路(内存、硬盘、屏幕等参数解读)

    1.笔记本电脑参数解析 影响电脑流畅性的四个关键参数 关乎个人电脑流畅性的部件,主要也就是 CPU.GPU.内存.硬盘 1.1 CPU 对于笔记本电脑来说,CPU 按用途可以分为两类,无论是 AMD ...

  4. php 获取服务器进程数,PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率...

    数据库配置文件: conn.php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 ...

  5. 计算机硬盘和内存特点,电脑内存和硬盘的区别

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑内存和硬盘的区别: 1.性质不同.内存是计算机的工作场所:硬盘用来存放暂时不用的信息. 2.制作材料不同.内存是半导体材料制作 ...

  6. 调整jmeter5内存_松勤软件性能测试-修改JMeter内存以适应更高的并发测试

    原标题:松勤软件性能测试-修改JMeter内存以适应更高的并发测试 Jmeter做并发测试时,报错 java.lang.OutOfMemoryError:gc overhead limit excee ...

  7. 计算机中磁盘与硬盘的区别,电脑内存和硬盘的区别

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑内存和硬盘的区别: 1.性质不同.内存是计算机的工作场所:硬盘用来存放暂时不用的信息. 2.制作材料不同.内存是半导体材料制作 ...

  8. 运用Ramdisk创建内存虚拟硬盘

    最近看到很多坛友都在问关于RamDisk这款软件以及大内存如何使用的问题.首先来讲拥有大内存是好事情,但是众所周知32位的vista系统可以识别到4GB的内存,却因为内存寻址问题只能用到3.2GB-3 ...

  9. 计算机的内存和硬盘哪个内存大,笔记本内存越大越好吗 内存和硬盘区别介绍【详解】...

    大部分朋友在选择笔记本总会考虑相关硬件配置,但大家似乎对内存的选择有很大的错误认知,觉得电脑内存越大越好,这样可以让系统运行速度变得越来越快.而且大家也很容易把运行内存和硬盘弄混淆了,笔记本内存越大越 ...

  10. Java如何获取系统cpu、内存、硬盘信息

    1 概述 前段时间摸索在Java中怎么获取系统信息包括cpu.内存.硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插 ...

最新文章

  1. QTP的那些事---页面弹出框的处理,页面等待加载的处理
  2. Windows XP下如何设置电脑定时关机
  3. OpenCV之feature2d 模块. 2D特征框架(2)特征描述 使用FLANN进行特征点匹配 使用二维特征点(Features2D)和单映射(Homography)寻找已知物体 平面物体检测
  4. kubectl get node运行时出现:Unable to connect to the server: x509: certificate signed by unknown authority
  5. Java陷阱(一)——ArrayList.asList
  6. linux ls 时间显示时间格式,ls -l显示的日期格式如何设定?
  7. Java接口自动化之TestNG单元测试框架(一)
  8. 消息队列的使用场景和使用技巧
  9. 在controller类的每个方法执行前调用某个方法_springboot:异步调用@Async
  10. 苹果Mac可视化磁盘清理工具:Disk Expert
  11. 《大道至简》第一章,伪代码。
  12. c++ Primer plus 之c++学习
  13. Git储藏和引用日志
  14. 计算机 统计学考研,统计学考研科目有哪些
  15. 域名抢注代码_如何停止域名抢注攻击
  16. linux下安装ffmpeg过程
  17. 爱思服务器能不能更新苹果手机系统,iPhone 无法更新系统怎么办?
  18. 在win20008上运行U890破解提示sorry,this application cannot run under a virtual machine
  19. 1.PMAC卡-简介和预备知识
  20. DPlayer微信浏览器不自动隐藏工具条

热门文章

  1. 域名购买以及云解析DNS
  2. 机器学习之层次聚类(hierarchical clustering)
  3. 2019年高中数学圆锥曲线解题技巧方法总结及高考试题
  4. 数据清洗之微博内容清洗
  5. 英尺英寸和厘米的换算_英寸、英尺与厘米如何换算
  6. PS RGB通道抠图方法
  7. 连接服务器切换无线,怎么用路由器连接别人的wifi?
  8. 【黑马程序员】集合二
  9. Word文档文字尾部加下划线(基于Office 2016)
  10. Android 最常用的设计模式五 安卓源码分析——建造者模式