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 ...
随机推荐
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- 深入理解DIP、IoC、DI以及IoC容器
摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...
- SASS教程sass超详细教程
SASS安装及使用(sass教程.详细教程) 采用SASS开发CSS,可以提高开发效率. SASS建立在Ruby的基础之上,所以得先安装Ruby. Ruby的安装: 安装 rubyinstaller- ...
- C# 多种方式发送邮件(附帮助类)
因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...
- 关于python的bottle框架跨域请求报错问题的处理
在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...
- iOS逆向工程之Reveal工具的安装、配置与使用
今天博客内容比较简单,不过还是蛮重要的.经常有小伙伴在QQ上私下问我,说博客中是如何使用Reveal查看AppStore中下载应用的UI层级的,那么就在今天这篇博客中作为一个主题来统一的介绍一下吧.虽 ...
- 从源码浅析MVC的MvcRouteHandler、MvcHandler和MvcHttpHandler
熟悉WebForm开发的朋友一定都知道,Page类必须实现一个接口,就是IHttpHandler.HttpHandler是一个HTTP请求的真正处理中心,在HttpHandler容器中,ASP.NET ...
- WinForm设置控件焦点focus
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...
- 用angular怎么缓存父页面数据
angular做单页面应用是一个比较好的框架,但是它有一定的入门难度,对于新手来说可能会碰到很多坑,也有许多难题,大部分仔细看文档,找社区是能解决的. 但有些问题也许资料比较少,最近遇到过一个要缓存父 ...
- POJ2774 Long Long Message [后缀数组]
Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 29277 Accepted: 11 ...