热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一些简单的硬件知识

计算机硬件组成(运维关注的重要部分):CPU:中央处理器,是一个计算机的运算核心和控制核心,他的主要功能是解释计算机指令以及处理计算机软件中的数

计算机硬件组成(运维关注的重要部分):

CPU:中央处理器,是一个计算机的运算核心和控制核心,他的主要功能是解释计算机指令以及处理计算机软件中的数据。

      中央处理器主要包括:运算器   高速缓冲存储器

                         (ALU)     cache     

 

内存:内存(内存储器)可用于存储数据,由于是电子部件,内存中数据会在断电后消失,存取速度快,容量相对较小。

 

硬盘:是计算机的主要外部存储器,可分为机械硬盘和固态硬盘,可以永久的保留数据,但是速度相对较慢,容量大

 

硬件知识深度理解

内存部分(以具体案例为为前提)

1.高并发写入

     将需要写入的数据优先存在内存之中,当内存中的数据达到一定数量时,再将数据全部写入到磁盘之中

     优点:利用内存的速度优势,可以加快写入速度,提高用户体验,在高并发的情况下十分适用

     缺点:内存只能临时存储数据,如果断电,数据全部丢失

     解决方案:

              1.主板装电池,在断电后支持快速将数据写入硬盘,                                 

         以便恢复

              2.使用(不间断电源)UPS电源

              3.选用双电路机房

2高读取

     将硬盘中热点数据写入内存之中,方便用户读取,提高访问友好度。

     将需要存储的外部数据直接存入硬盘之中,再读取到内存之中,以备访问之用。

      

     优点:热点数据在内存之中,用户读取速度快,增加了用户体验,同时也减小了服务                                

           器的IO压力。

 

     Tips:将数据写入内存,这部分被使用的内存称之为 缓冲区(Buffer

         从内存中读取预存的数据,这部分被使用的内存称之为 缓存区(cache

3.目前大部分网站的IO比例   Input : Output = 1 : 10,即大部分网站均是以用户读取其内容             

                            为主,写入数据的比例不大,在架构及优化时,应以高读取

                            的方案进行,具体案例具体分析。

4.多台机器集群内存缓存架构(以软件形式): memcache (纯内存)  redis(内存与磁盘结合)

                                

 

 

 

硬盘部分

  

1.分类 机械硬盘 ,固态硬盘

2.接口类型IDE , SCSI

          SAS 价格较贵转速相对较高,同等价位容量较小。

          SATA :价格最低,同等价位容量最大,速度慢。

          SSD(固态硬盘):价格最贵,同等价位容量最小,速度最快。

3.按照工作环境的硬盘选择

     1常规工作环境: SAS   速度,容量与价格兼顾的良好选择

     2线下备份或内部工作环境: SATA  容量大,且对硬盘速度要求不高。

     3  高并发,且数据量少: SDD  速度快,但价格贵,适用于极端生产环境。

4.RATD

   磁盘阵列(Redundant Arrays of IndependentDisks, 有‘独立磁盘构成的具有荣誉能力的阵列’之意。

   磁盘阵列是由很多价格便宜的磁盘,组成一个容量为所有磁盘之和的大磁盘,利用个别磁盘提供数据所产生加成效果提升整个磁盘的系统效能。

   1)实现形式 RAID  :通过 RAID 实现,价格较贵,效率高,安全

                    RAID  :通过软件模拟实现,价格低廉,对降低系统效率,并且      

                              在软件出现问题时,会影响数据安全

   2RAID 分类

   

       RAID 0    条带化(Data Stripping 将多个磁盘整合为一个磁盘。

                  

       在整合后单个磁盘的读取数据方式并没有发生变化,但是整个磁盘阵列的数据读取方式变得十分有趣。首先,每个磁盘都被以合理的大小分割为很多个block,且每个磁盘的分割情况必须一样。在数据写入的时候将数据依次写入三个磁盘,即三个数据块 [block1]

[block2] [block3] ,第一块磁盘写入[1],第二块磁盘写入[2],第三块写入[3],依次类推,直至数据写完。

       在从磁盘阵列读取数据时,同时读取磁盘阵列中的第一个block,那么用了读取一个block的时间,读取了Nblock (N  为磁盘阵列中的磁盘数量) 这样数据的读取速度就加快了N陪。

       

        由于RAID 0 只是多个硬盘进行了整合,没有做冗余处理,那么其中一块硬盘出错,整个阵列就会出现问题。所以RAID 0 的可靠性为一块磁盘的1/N ,可靠性大大降低

      

         速度:单个磁盘的N

         容量:单个磁盘的N

         可靠性:单个磁盘的1/N

         适用场景:只是在对那些对数据安全性要求不高的场景使用

    

     

 

 

 

       RAID 1      镜像   把一个磁盘的数据镜像到另一个磁盘上,作为冗余

          

        RAID 1中,数据进行写入一块磁盘时,也会同时写入另一块作为镜像的磁盘中。当正在被使用的磁盘发生问题,系统会抛弃他,转而去它的镜像磁盘读取数据,这是将坏掉的磁盘更换即可。这样数据的安全性大大增加,但是成本也随之增加,磁盘利用率为50%,下降一半。

         在更换磁盘后,系统会对原有数据进行同步,需要一定时间,在同步期间会影响系统的IO效率。 

         速度 不变

         容量 所有磁盘的50%

         可靠性: 大大增加

         使用场景: 数据重要,数据量不大

 

       RAID 5      分布式奇偶校验的独立磁盘结构

          RAID 5 在结构上与RAID 0 类似,将磁盘条带化,有很高的读取速度。在写入数据时,会在每块磁盘上都写入奇偶校验信息,因此会造成写损失。在从磁盘阵列读取信息的时候会进行校验数据是否出错。当一块磁盘出错的时候,更换新磁盘后,可以通过其他磁盘的数据和奇偶校验信息,经过计算恢复其数据。

          速度:N块磁盘之和

          容量: 略小于N块磁盘

          可靠度: 在一块磁盘出错时,可修复:有奇偶校验码,可纠错

       

      RAID 10 (先1 0   先镜像,再条带化

         RAID 10既是RAID 1 RAID 0 的结合产物。先对每一块磁盘进行镜像处理(RAID 1),然后将每个形成的RAID 1 做条带化(RAID 0)。这样总体来看整个磁盘阵列是 RAID 0的形式,而且每一块磁盘都有做镜像处理。那么即拥有了RAID 0 高速的读取速度,又拥有了RAID 1 的高数据安全性。RAID 10的不足之处也显而易见,磁盘利用率低,导致价格较高。

          速度:N块硬盘之和

          容量:50%

          可靠度: RAID 0的支持,可高度高

 

5.企业中PC服务器主要品牌

  DELL(大部分企业),HP,IBM(IOE 估计不会再有人用了)

 

  DELL  PC服务器型号

         2010-2013:1u  R410  R610

                   2u  R710

         2014-2015:1u  R420  R430  R620 R630

                   2u  R720  

 


 


对于这部分内容 我会在之后的过程中关注,《大型网站技术架构分析》《淘宝这10年》这2本书将会作为我的参考书籍。

 

学习思想总结

  在大学我的专业是软件工程专业,as you know,是个理科专业,但是我觉得将其成为工科更为合适,动手做的学科。学习C语言,把变量,指针,函数,数组的概念你都记得滚瓜烂熟,理解的不能再透彻,还是没用 。只是理解了书面知识,你上手编程还是啥都不会。

所以   才是最有意义的,在练的时候遇到问题要 ,思考问题出现在哪里,结合书本知识。之后,分享 讨论。这样才能加深你只是的广度和宽度,是对你最有利的。

   而在学习的过程中要克服的就是懒惰。懒惰并不是一种病,而是你对理想的懈怠,对未来的不负责任。既然选择了就要坚持下去,别无他路。

   我的兴趣就在Linux这部分,对于服务器的后台系统架构有浓厚的兴趣,所以我有理由相信我可以做到。对自己抱有信心是非常重要的。

   写到这,还要感谢一下我的 操作系统 老师,蔡青松博士。这写东西都是我在他身上认识到的,Linux也是通过它了解到的。正如他所说:“现在的学生都是狗屎,啥都不会”这句话其实是对我们最好的激励,既然不会,就学会!

   看起来这段话并不像学习思想总结,好像不是很正式的样子,当时我觉得表达出自己的思想就要说出自己想的东西。如果真的弄得条条框框,什么 努力,坚持,信心之类,就没意思了。


UNIXLINUX的发展历程

    Unix是用90%C语言和10%汇编语言混合编写的,因此对于硬件平台的移植时还是需要更改代码,因此各个公司都推出了针对自家机型的Unix系统;

    到了AT&TSystem V第七版时,终于推出了针对X86Unix,因此终于能够在个人计算机上安装Unix,但是有一条规定:“不能向学生公开源码”,因此Tanebaum教授就不看Unix源码,编写了兼容Unix的针对X86Minix操作系统;

四.因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNUbash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIXPortableOperating System Interface,他规范了应用程序与内核的接口规范);

    一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;


       



推荐阅读
author-avatar
啊哈哈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有