zoukankan      html  css  js  c++  java
  • Linux实战教学笔记02:计算机系统硬件核心知识

    标签(空格分隔):Linux实战教学笔记-陈思齐


    第1章 互联网企业常见服务器介绍

    1.1 互联网公司服务器品牌

    - DELL(大多数公司,常用)
    - HP
    - IBM(百度在用)

    • 浪潮
    • 联想
    • 航天联志

    常见服务器品牌

    1.1.1 Dell服务器品牌

    加上盖子

    • DELL R620

      1.1.2 IBM品牌

      1U 3550/m3 3550/m5
      2U 3650
      4U 3850
      8U 3950
      仅作了解,质量好,但价格贵,互联网公司不太常用
      IOE(IBM oracle emc)

    1.1.3 HP 品牌

    DL380G7/G8(2u)

    1.2 服务器主要零部件

    1.2.1 电源

    相当于人体的心脏,保障电源供应,要选择质量好的电源。生产中一般单个服务器核心业务最好使用双电源AB线路。如果集群(一堆机器做一件事情)的情况可以不用双电源。

    1.2.2CPU 处理器

    相当于人体的大脑,负责计算机的运算和控制,是服务器性能效率的最核心部件。 常见品牌:Intel,AMD

    • 一般的企业里的服务器,CPU颗数2-4颗,单颗CPU是4核。内存总量一般是16-256G(32G,64G)
    • 做虚拟化的宿主机(eg:安装vmware的主机),CPU颗数4-8颗,内存总量一般是48-128G,6-10个虚拟机。

    1.2.3 内存

    CPU和磁盘之间的缓冲设备,是临时存储器(存放数据),断电数据丢失。 一般程序运行的时候会被调度到内存中执行,服务器关闭或程序关闭之后,数据自动从内存中释放掉。

    • 片===硬盘===程序
    • 播放片===被运行起来的程序===进程
    • 没完没了播放片==(住院)==一直在运行的程序===守护进程

    程序:c/php/java,代码文件,静态的,放在磁盘里的数据。
    进程:正在运行着的程序,进程运行就是系统把程序放在内存里执行
    守护进程(daemon):持续保持运行着的程序。

    程序和进程的区别:

    • 电影放在磁盘里就是程序
    • 看片放到内存里就相当于进程
    • 计算机重启,内存的数据会释放掉

    从开发角度对守护进程的解释:

    运行或者执行任何服务都脱离不开计算机的底层协议TCP/IP协议,而想要操作TCP/IP协议就需要用到计算机的底层语言C语言,但是C语言用起来很麻烦,通常要实现一个很小的功能都需要写上好几十甚至上百行代码,太繁琐。于是就有人想到,将一些可以实现某个功能的C语言代码封装起来,然后起一个新的名词,那么用这个新的名词来告诉计算机自动执行封装的那么一大堆C代码,这样就方便多了。于是,慢慢的这类型的新词汇多了以后,渐渐组成了现在我们常见的编程语言,比如:java,python,C#。而我们知道如果我们利用xshell来远程服务器的时候,需要通过ssh协议并访问服务器的22端口。之所以,能够联通,是因为服务器端始终有一个叫做sshd服务的进程在监听着22端口,这个服务就是通过python等类似语言继续封装出来的程序,由于它不断的在服务器的后台运行,始终守护且监听着服务器的22端口,所以我们就叫它们为守护进程。

    1.2.4 磁盘

    磁盘就是永久存放数据的存储器,磁盘上也是有缓存的(芯片)。
    常用的磁盘(硬盘)都是3.5英寸的(ide,sas,sata),常规的机械硬盘,读取(性能不高)性能比内存差很多,所以,在企业工作中,我们才会把大量的数据缓存到内存,写入到缓冲区,这是当今互联网网站的解决网站访问速度慢的方案

    磁盘接口或类型:IDE,SCSI,SAS,SATA,SSD(电子的),IDE,SCSI退出历史舞台。
    性能与价格:SSD(固态)>SAS>SATA

    磁盘的大小
    1byte=8bit 1K=1024byte 1M=1024K
    1G=1024M 1T=1024G 1PB=1024T
    字节(byte):8个二进制位为一个字节(B)
    市面上卖硬盘的都是按1000计算,号称500G硬盘=5001000B1000KB*1000MB

    1.2.5【磁盘原理案例】

    企业案例:提升用户体验的网站解决方案 看具体需求,然后选择方案

    1,门户(大网站)极端案例
    大并发写入案例(抢红包,微博)
    高并发,大数据量,写数据会把数据写到内存,积累一定的量后,然后再定时或者定量的写到磁盘(减少磁盘IO Input/Output 磁盘读写),最终还是会把数据加载到内存中再对外提供访问。

    特点
    a,优点:写数据到内存,性能高速度块(微博,微信,SNS,秒杀)
    b,缺点:可能会丢失一部分在内存中还没有来得及存入磁盘的数据。
    解决数据不丢的方法:
    a,服务器主板上安装蓄电池,在断电瞬间把内存数据回写磁盘
    b,UPS(一组蓄电池)不间断供电(持续供电10分钟,IDC数据IPS 1小时)。UPS (Uninterruptible Power
    System/Uninterruptible Power
    Supply),即不间断电源,是将蓄电池(多为铅酸免维护蓄电池)与主机相连接,通过主机逆变器等模块电路将直流电转换成市电的系统设备。
    c,选双路电的机房,使用双电源,分别接不同路的电,服务器要放到不同的机柜,地区。

    2,中小企业案例

    对于并发不是很大,数据也不是特别大的网站,读多写少的业务,会先把数据写入到磁盘,然后再通过程序把写到磁盘的数据读入到内存里,再对外通过读内存提供访问服务。

    小结:
    门户极端案例:高并发,大数据
    先把数据写到内存,然后再定时或定量写到磁盘,最终还是会加载到内存
    特点
    a,高并发写入性能高
    b,可能会丢失一部分在内存中还没来得及存入磁盘的数据
    中小企业案例:
    并发时很大的网站会先把数据存到磁盘,然后再通过程序把数据读入到内存里,在对外提供访问服务
    温馨提示
    网站优化的核心就是想办法把数据放入内存提供服务,或者让用户写数据写到内存(这样最快)

    3,企业面试题:buffer和cache什么区别?
    看视频===>buffering把视频数据缓存到磁盘===>写数据到磁盘上或者写数据到内存中
    cache===>从磁盘或者内存读取数据
    简单解答:
    写入数据到内存里,这个数据的内存空间称为缓冲区(buffer),写入缓冲区。
    存读取数据,这个存数据的内存空间称为缓存区(cache),读取缓存区。
    由于99%的网站都是以读取为主,写入为辅,读写比例至少10:1,所以并发写入一般不是问题。

    提醒: 这里提到的内存和磁盘,是由多台机器组成的集群架构环境memcached(纯内存)/redis(内存加磁盘)

    2.1 企业级服务器应用

    1,常规正式工作场景(线上的生产环境)主选SAS(结合SATA和15000转/分,机械磁盘转数高的性能好)
    2,比较核心的业务SAS
    生产环境===>已经对外提供服务的环境
    3,不对外提供访问的服务器,例如,线下的数据备份,可选SATA(7200-10000转/分)
    SATA特点:容量大,价格便宜,但是速度比较慢。
    4,高并发访问,小数据量,可以选择SSD

    问:既然SSD最好,那是不是都选SSD?

    淘宝网企业案例:

    服务器会把sata和ssd结合起来用,热点存储,程序动态调度。

    • 开发团队发明了一套算法,把那些访问很集中的一些东西放在那个SSD盘上,因为SSD提供很好的读性能,我们就让这些80%左右的这种读从SSD上产生,剩下的图片我们把它放在传统那种SAS或者更低廉的一些SATA盘上,这样我们整个节点的性能非常好,单机可以支撑三千到四千IO,这是我们系统没有任何显示出访问慢,或者其他不好的表现。
    • 因为每台机器的成本又降得非常低,如果可以,比如说追求一个大的存储,我可以用全SSD,但是我SSD的成本相对要高很多,我可以用比较廉价的SAS或者SATA来存一些访问频度不是很高的,用SSD存访问频度高的文件,这样整体上的性能就协调的非常好,成本也非常低。整体上可以这么说,我们通过这样一年的优化,在原来硬件基础上投资50%实现了性能是原来两倍的一个架构。现在我们总体的这种TCO是原来的1/4左右。

    热点存储的思路非常好,在学习磁盘组成和原理的内容时,有关热点数据的内容,必须要仔细体会。现如今看来,对很多中小型公司还是很新颖的存储方式。顺便说下,大公司无论做什么都要考虑性价比问题,而不光是要把问题解决,因为,设备的奇数太大,做一点点就会节省非常多的成本。阿里,联想的大规模云计算其实归根结底都在解决性价比问题,否则,就无法推向市场,真正的应用到商业市场中。

    2.2 缓存

    记住一句话:缓存无处不在,电脑硬件,网站集群!

    这里做个了解即可

    ns 纳秒 1s = 10^9 ns
    us 微妙 1s = 10^6 us
    ms 毫秒 1s = 1000ms

    2.3 DELL阵列卡(RAID卡)

    基本作用
    你有很多土地。
    单独管理不方便。
    整合,然后管理。

    • 网站数据量很大的时候,单块盘装不下了,购买多块盘,又不想单个盘存放数据,就需要工具把所有的盘整合成一个大磁盘,再在这个大磁盘上在分区(虚拟磁盘)方数据
    • 另外一大功能,多块盘放在一起可以有冗余(备份)。
      RAID有很多种整合方式,RAID 0 1 5 10
      有RAID卡后,一般磁盘就会插到RAID卡上,而不是直接插到主板上了

      互联网公司服务器一般都会购买RAID卡(主板自带,独立RAID卡),RAID卡上也是有缓存的。
    • 冗余从好到坏:raid1,raid10,raid5,raid0
    • 性能从好到坏:raid0,raid10,raid5,raid1
    • 成本从低到高:raid0,raid5,raid1,raid10

    不同RAID级别的企业应用举例:
    根据数据的存储和访问的需求,去匹配对应的RAID级别。====>适用于互联网公司

    • 单台服务器,很重要,盘不多,系统盘raid1
    • 数据库/存储服务器,主库raid10,从库raid5/raid0(为了维护成本,raid10)
    • web服务器,如果没有太多数据的话,raid5,raid0(单盘)
    • 有多台,监控/应用服务器,raid0,raid5.

    2.3.1 raid0,1,5,10 简要特点描述

    • Raid 0:追求极致的数据传输速度的磁盘存储解决方案(最快)

    速度最快,但安全性最低,一块磁盘出了问题,所有的数据都会损坏且无法修复

    • Raid 1:追求极致的数据安全的磁盘存储解决方案(最安全)

    安全性最高,但磁盘利用率最低,只有50%。

    • Raid 5:追求数据安全和存储成本兼顾的磁盘存储解决方案(比Raid10成本低)

    数据读取比较快,但是写入速度一般。磁盘利用率高于Raid1

    • Raid 10:追求数据传输和数据安全兼顾的磁盘存储解决方案(比Raid5性能高)

    Raid10是Raid0和Raid1的组合体。Raid1这里就是一个冗余的备份阵列,而Raid0则负责数据的读写阵列。拥有极高的读写效率和数据安全保护。但是磁盘利用率低,价格比较贵。

    2.4光驱

    当下主要作用装系统
    企业应用:
    建议淘汰光驱,为老板省钱
    U盘安装系统,网络安装(ftp,http),无人值守批量安装系统(pxe+kickstart)

    2.5 主板

    2.5.1 机房机柜里的服务器摆放

    标签===>标记出每根线的用途

    专业布线:什么是专业的,请看图

    2.6 小结:

    企业面试题
    1,你用过的服务器型号有哪些?配置如何?
    2,程序和进程(守护进程)的区别?
    3,提升用户体验的网站解决方案
    4,buffer与cache的区别?
    5,描述Raid0 1的特点?

  • 相关阅读:
    Android拷贝工程不覆盖原工程的配置方法
    Android中BindService方式使用的理解
    getApplicationContext()、Activity.this、 getBaseContext区别
    深入理解ASP.NET MVC(4)
    深入理解ASP.NET MVC(1)
    深入理解ASP.NET MVC(2)
    深入理解ASP.NET MVC(目录)
    C# 代码优化
    NPOI 创建Excel 设置宽度 样式 颜色对比表
    2. Mysql数据库的入门知识
  • 原文地址:https://www.cnblogs.com/tianakong/p/9957022.html
Copyright © 2011-2022 走看看