##一 Linux服务器硬件实战
###1.1 计算机的组成和分类 计算机主要由CPU,内存,硬盘,IO设备(网卡)等组件组成的,它们各司其职,完成计算机的计算,存储和传输数据的任务,常见的计算机类型包括笔记本(办公用的),PC(游戏娱乐必备),服务器(后台计算,存储)等等。 ###1.2 认识服务器和硬件的使用场景 DELL,HP和IBM是互联网公司中使用最常用的服务器品牌,其中DELL常见的服务器型号按照不同的用途分为R730/R830/R930,更详细的产品信息请参见各自的官网说明。
服务器中重要的组件包含电源(如果是单台服务器通常都是双电源),主板(类似于人体的骨架),CPU,内存和硬盘等等。
运维人员需要重点关注服务器的CPU、内存、硬盘三大组件!
CPU主要是负责数据的运算(加法器)和其他计算机组件的控制。常用的CPU品牌是英特尔和AMD。根据用途不同服务器的CPU通常是2-8颗,单颗CPU是4-12核。
内存是编址的存储设备,主要是负责小容量数据的暂时存储(程序运行时会将数据加载到内存计算),断电后数据会丢失。服务器的内存通常是16-256G(32G-64G),如果是做虚拟化的宿主机,CPU颗数是4-8颗,内存总量一般是48-128G,用来虚拟6-10个虚拟机。
磁盘主要是负责永久性存储大容量(TB)数据(PB通过RAID来实现)。 服务器的磁盘接口类型通常分为SATA(转速7200-10000转/分),SAS(转速15000转/分),SSD三种。其中SATA的特点是容量大,价格便宜但是速度比较慢,通常的使用场景是不对外访问的服务器使用(例如数据备份)。而常规正式的工作场景选用SAS硬盘,高并发,小数据量(1TB)时选用SSD。
1.2 计算机硬件的IO各层次性能汇总
组件名称 | 延时、带宽 |
---|---|
CPU | |
Cache L1,L2,L3 | 0.5-15ns、20-60GB/S |
内存 | 30-100ns、2-12GB/S |
SSD硬盘 | 10us-1ms、50MB-2GB/S |
普通硬盘 | 5-20ms、50-200MB/S |
网卡-网卡 | 100us-1ms、10MB-10GB/S |
从该表格中可以看出CPU延时(最低)和带宽(最高),而普通硬盘是性能最差的,根据木桶效应,在性能优化时应该优先优化磁盘。
##二 Linux系统概述 ###2.1 认识操作系统 操作系统是介于计算机硬件和应用软件之间的系统软件,它的主要作用是管理和控制各种硬件、软件资源。目前PC(Intel x86系列)计算机上比较常见的操作系统有Windows10,Linux,MacOS,而大型或者超大型服务器上运行的绝大多数都是Linux(CentOS、RedHat)或者Unix(AIX,Solaris,HP-UX)系统。
<h2>Linux系统架构图</h2>
程序员编写程序通常是调用系统提供API或者是系统调用实现的, 而应用程序在运行时将运行的某些指令交给shell,然后shell会将执行的命令提交给内核执行后返回。
普通用户和计算机打交道通常是通过GUI或者CUI接口实现的,图形化界面,语音手势的操作是更加人性化的人机交互方式。
###2.2 Linux系统概述 Linux是一套开放源代码,可以自由修改和传播的类Unix操作系统(Unix是Linux的前身,具备许多优秀特性),其在设计之初就是基于Intel x86系列的CPU架构计算机的。它是一个基于POSIX的多任务、多用户并且支持多线程和多CPU的操作系统,支持众多数据库(Oracle,MySQL),有完善的图形化界面,包括GNOME,KDE等。
###2.2.1 Linux系统组成 Linux系统由Linux Kernel+GNU组件+图形化桌面环境+应用软件四部分组成。
其中Linux Kernel是1991年由Linus Torvalds在Andrew S.anenbaum开发的Minix基础上开发的,内核的主要作用是负责系统内存,软件程序,硬件设备,网络,安全和文件系统的管理,最新的内核版本为4.10,其官网地址为https://www.kernel.org/。
而GNU组件是1984年由Richard Stallman发起的自由软件基金会项目的产物,其中被Linux系统采用的GNU组件包括Emacs编辑器,gcc编译器,bash shell以及gawk等。
Linux的主流图形化桌面环境包含KDE和GNOME两种,目前主流的Linux发行版RedHat,CentOS默认桌面都是GNOME。
采用GNOME桌面的CentOS7
采用Unity桌面的Ubuntu16.04
不过作为一名运维工程师,更多的是通过字符界面完成任务。
目前绝大多数大公司开发的主流软件都会发布Windows,Linux,Mac三大主流PC品台的版本,而如果主要以办公和娱乐为主建议选择Windows,以开发和设计为主选择Mac平台,以大数据计算,系统服务平台搭建选择Linux平台。
###2.2.2 Linux系统的发行版 因为Linux系统本身就不是一个完整的操作系统,因此出现一些组织(例如RedHat)将Linux内核,GUN组件以及图形化界面和应用程序拼接到一块组成一个完整的系统。
目前主流的Linux系统发行版包括slackware、 debain和redhat ,其中基于slackware的流行发行版包括 suse和open suse,基于debian的流行发行版有Ubuntu和Mint,RedHat主要有社区版CentOS,企业版RHEL和桌面版Fedora。
###2.2.3 Linux系统的应用场景 经过20多年的发展,如今Linux系统在服务器(RedHat,CentOS),嵌入式(Android)以及桌面(Ubuntu:基于debian二次发行)得到了广泛应用,尤其是在服务端,基本上90%以上的互联网公司的服务器系统都是基于Linux(CentOS/RedHat)来构建的。
###2.2.4 Linux系统的哲学思想
1 一切皆文件:把几乎所有的资源,包括硬件设备都组织为文件格式
2 由众多单一目的的小程序组成:目的是一个程序只实现一个功能
3 尽量避免跟用户交互 :目的是是为了实现脚本编程以自动完成某些功能
4 使用纯文本保存配置信息:目的是使用文本编辑器既可完成系统配置工作
好不容易认识,扫描下方的二维码并关注"艺无止境",我们一起携手成长为优秀的工程师!