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的优化简介的更多相关文章

  1. Linux 文件系统IO性能优化【转】

    转自:https://blog.csdn.net/doitsjz/article/details/50837569 对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等 ...

  2. Linux 文件系统IO性能优化

    对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等系统的优化变得至关重要,这里转载一篇非常不错的关于IO优化的文章,供大家参考和学习: 一.关于页面缓存的信息,可以用 ...

  3. linux设备驱动归纳总结(五):3.操作硬件——IO静态映射【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-83299.html linux设备驱动归纳总结(五):3.操作硬件——IO静态映射 xxxxxxxxx ...

  4. Linux中的IO复用接口简介(文件监视?)

    I/O复用是Linux中的I/O模型之一.所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞. 在Linux ...

  5. MySQL数据库在IO性能优化方面的设置选择(硬件)

    提起MySQL数据库在硬件方面的优化无非是CPU.内存和IO.下面我们着重梳理一下关于磁盘I/O方面的优化. 1.磁盘冗余阵列RAID RAID(Redundant Array of Inexpens ...

  6. 【Linux开发】linux设备驱动归纳总结(五):2.操作硬件——IO内存

    linux设备驱动归纳总结(五):2.操作硬件--IO内存 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  7. 【Linux开发】linux设备驱动归纳总结(五):3.操作硬件——IO静态映射

    linux设备驱动归纳总结(五):3.操作硬件--IO静态映射 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  8. 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 ...

  9. 转:Linux网络IO并行化技术概览

    转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...

随机推荐

  1. C# 在腾讯的发展

    本文首发我的微信公众号"dotnet跨平台", 内容得到大家热烈的欢迎,全文重新发布在博客,欢迎转载,请注明出处. .NET 主要的开发语言是 C# , .NET 平台泛指遵循EC ...

  2. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  3. 在Sublime Text 3上安装代码格式化插件CodeFormatter

    1.了解CodeFormatter插件 在Sublime Text 3中编写代码,为了能让我们的代码格式变得漂亮整洁,需要一个能自动格式代码的插件.这里发现CodeFormatter插件不错,它能支持 ...

  4. java设计模式之--单例模式

    前言:最近看完<java多线程编程核心技术>一书后,对第六章的单例模式和多线程这章颇有兴趣,我知道我看完书还是记不住多少的,写篇博客记录自己所学的只是还是很有必要的,学习贵在坚持. 单例模 ...

  5. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  6. 如何使用dos命令打开当前用户、当前日期、当前时间以及当前用户加当前时间?

    1.dos命令安装mysqld --stall.启动net start mysql.进入MySQL数据库mysql -uroot -p后,输入select user();当前用户 select cur ...

  7. HTML5 标签 details 展开 搜索

    details有一个新增加的子标签--summary,当鼠标点击summary标签中的内容文字时,details标签中的其他所有元素将会展开或收缩. 默认状态为 收缩状态 设置为展开状态为 <d ...

  8. 从is(":checked")说起

    *此文所用jQuery版本应大于1.6.1   如何判断一个单选(复选)框是否选中. 对于刚接触jQuery的人,第一反应必然是. <input id="checkbox1" ...

  9. Unity AssetBundle爬坑手记

    这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!   AssetBundle是Unity推荐的 ...

  10. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用

    概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...