Linux硬件IO的优化简介
Linux硬件IO的优化简介
首先简单介绍下有哪些硬件设备如下(由于硬件种类厂家等各种因素我就不在此多做介绍有兴趣的可以自行学习):
1.CPU:中央处理器,是计算机运算控制的核心部件之一,相当于人的大脑。如下图
2.RAM:内存条与CPU沟通的桥梁,很多数据和运算在内存中做临时处理,相当于你在做快速记忆运算的状态,如下图:
3.Disk:硬盘使我们用来存放数据和资料的仓库,因为内存是临时存储断电后会释放其中的所有数据,所以要保存备份数据就要用到硬盘,且硬盘空间要比内存大。好比你的笔记本俗话说的好,好记性不如烂笔头,写下来只要笔记本不丢,数据就一直在,一目了然!如下图:
4.NIC:网卡简单理解是计算机与计算机之间通讯的工具,简单比喻(可能不专业为了好理解)每个人用的手机,QQ等通讯设备与软件,好帮助你快速联系到朋友交流。如下图:
5.mainboard:主板是以上设备所需要的工作环境,好比一个团队team,各尽其责发挥其作用完成各项复杂的操作记录等。好比我们生活的这个环境(board),需要我们去思考处理各种工作(CPU),记录生活中美好的回忆(RAM),用相机拍下最美丽的瞬间(disk),联系亲朋好友等(NIC)。图如下:
好了简单介绍完上面的设备组建后来看一个图:
这图反应了对应关系标注也详细解释的其作用处理机空间的关系,空间越大的读写速度一般都是会成反比,好比一个大仓库找到你想要的商品肯定慢,相比小仓库一目了然几平米小空间找到商品就容易快一样的道理。我们继续看另一个图:
这里简单列出了每个环节的读写速度与时间的对应关系,在强调一边这里的空间是处理数据的大小多少与速度相关而不是存储空间,切记不要弄混淆。这图简单粗暴的说明CPU强大运算能力与运算速度纳秒级响应,内存紧追随于CPU但明显处理数据就少很多了,好比学霸秒解的题目,你还要运算思考几秒到几十秒才能解出。
那么问题来了怎么去解决这中间处理关系也就是简称优化:
常用方案1如下图:
例如你网站有大量写入数据的时候,又要保证同读取的数据够快时,采用全部写入内存的形式,控制一定数据大小一次行写如硬盘,前面已经介绍了CPU处理的数据,内存的写读都是紧跟随CPU的,这样保证在读写时候的效应速度,减少硬盘的读写次数(因为都知道硬盘读写效率慢只适合用来存储数据)。这里只是浅谈思路,具体根据要求在制定。
常用方案2如下图:
这里介绍网页在只是读取例如博客只是用在浏览比较多是,就只是少量用户在评论时可以采用这种直接写入硬盘的方式,硬盘读写慢,CPU写入快可以有更多的时间和资源处理用户读取的效率,当然目前所讲的全部只是理论上浅谈,实际应用及复杂环境等诸多因素不同,用到方式肯定也不一样。现在只是用来举例在实际应用中我们该找准哪块切入点去做,更好的优化及设计等。最后非常感谢大家观看,也欢迎提出跟好的思路和意见来探讨学习!
Linux硬件IO的优化简介的更多相关文章
- Linux 文件系统IO性能优化【转】
转自:https://blog.csdn.net/doitsjz/article/details/50837569 对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等 ...
- Linux 文件系统IO性能优化
对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等系统的优化变得至关重要,这里转载一篇非常不错的关于IO优化的文章,供大家参考和学习: 一.关于页面缓存的信息,可以用 ...
- linux设备驱动归纳总结(五):3.操作硬件——IO静态映射【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-83299.html linux设备驱动归纳总结(五):3.操作硬件——IO静态映射 xxxxxxxxx ...
- Linux中的IO复用接口简介(文件监视?)
I/O复用是Linux中的I/O模型之一.所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞. 在Linux ...
- MySQL数据库在IO性能优化方面的设置选择(硬件)
提起MySQL数据库在硬件方面的优化无非是CPU.内存和IO.下面我们着重梳理一下关于磁盘I/O方面的优化. 1.磁盘冗余阵列RAID RAID(Redundant Array of Inexpens ...
- 【Linux开发】linux设备驱动归纳总结(五):2.操作硬件——IO内存
linux设备驱动归纳总结(五):2.操作硬件--IO内存 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 【Linux开发】linux设备驱动归纳总结(五):3.操作硬件——IO静态映射
linux设备驱动归纳总结(五):3.操作硬件--IO静态映射 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式
Linux就这个范儿 第15章 七种武器 linux 同步IO: sync.fsync与fdatasync Linux中的内存大页面huge page/large page David Cut ...
- 转:Linux网络IO并行化技术概览
转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...
随机推荐
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- java字符乱码
在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码. 如下例子: BufferedReader br = null; try { br ...
- JavaScript Math和Number对象
目录 1. Math 对象:数学对象,提供对数据的数学计算.如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法. 2. Number 对象 :Js中提供数字的对象.包含整数.浮 ...
- nginx+php的使用
原文来自:windows下配置nginx+php环境 按照他的步骤走,亲测可用! 但是这里他后面说的根目录可能有些人有点懵. 其实在设置的时候就设置了: 网站根目录就是www这个目录,如果没创建请自行 ...
- UWP开发之Mvvmlight实践七:如何查找设备(Mobile模拟器、实体手机、PC)中应用的Log等文件
在开发中或者后期测试乃至最后交付使用的时候,如果应用出问题了我们一般的做法就是查看Log文件.上章也提到了查看Log文件,这章重点讲解下如何查看Log文件?如何找到我们需要的Packages安装包目录 ...
- angular 源码分析 1 - angularInit()
angularjs 是个神奇的框架,由于我的好奇,想了解她的内部工作原理,只能一步一步的走进她,靠近她,和她深入的交流. angularjs 的入口是什么样子的呢?一起掀起她的盖头吧. 在这里我只讲方 ...
- C# await和async
基础阅读:http://www.cnblogs.com/jesse2013/p/async-and-await.html 答疑阅读:http://www.cnblogs.com/heyuquan/ar ...
- setCapture、releasCapture 浅析
1. setCapture 简介 setCapture可以将鼠标事件锁定在指定的元素上,当元素捕获了鼠标事件后,该事件只能作用在当前元素上. 以下情况会导致事件锁定失败: 当窗口失去焦点时,锁定的事件 ...
- slf4j中的MDC
slf4j中MDC是什么鬼 slf4j除了trace.debug.info.warn.error这几个日志接口外,还可以配合MDC将数据写入日志.换句话说MDC也是用来记录日志的,但它的使用方式与使用 ...
- 如何为你的微信小程序体积瘦身?
众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了. 在设计一个小程序之初,我们就需要重 ...