计算机三层结构
软件开发流程
运维职责
1.软件724365运行 ==>监控
2.数据备份
3.优化
计算机组成
控制器 运算器 存储器 输入输出设备
cpu
控制和运算
存储器
存储器之内存
1.内存条相当于人脑的记忆功能,只能临时存放数据
2.内存里存放的都是电信号,断电数据则丢失,相当于人脑失去记忆
3.cpu是从内存中取出指令来运行的,运行指令产生的数据也会放入内存中,所以内存又称之为主存,因为程序运行过程中产生的数据都是先存放于内存中
存储器指硬盘
1.硬盘相当于人的本子,可以永久保存数据
2.磁盘里存放的是磁信号,固态硬盘里存放的电子,断电数据都不会丢失,相当于人把事物记录到本子上肯定不会忘记了
3.程序运行过程中产生的数据一定是先存放于内存中的,若想永久保存,必须由内存刷如硬盘
硬盘支架
硬盘接口
1、IDE 早期并口
2、SATA 串口
3、SCSI 通用并口
4、SAS 串行连接的SCSI
区别
他们的主要区别在于价格、性能、用途以及支持的设备数量上
1、SATA 拥有较低的成本并满足个人用户的需要,
2、SCSI 和 SAS 则提供了更好的性能和更多设备支持,适合在商用环境中使用
3、并且,SAS 是目前唯一同时与 SATA 兼容的协议,可以在同一控制器上运行的两种硬盘类型。
PCI_E
1.M2接口,遵循的就是PCI-e协议,所以你也可以将m2接口称之了pci-e通道之类的接下来就是为源(也就是我们的固态磁盘)按照PCI-e协议定制一种接口,于是诞生了NVMe专为SSD硬盘准备的,NVMe是一种存储协议,专门为利用固态驱动器(SSD)的NAND闪存的性能而设计的。NVMe是在PCI-E的基础上进行设计和实现,
接口组合
硬盘及接口性能
1、硬盘:SSD(固态)>机械硬盘
2、硬盘接口:SAS> SATA
硬盘与接口的组合玩法
0、SSD硬盘+NVMe====》如果是SSD,还是建议用NVMe
1、SSD硬盘+SAS接口=》过去费钱的组合,性能不如0,但高于下述组合
2、SSD硬盘+SATA接口=》对速度要求比较高场景下的常规组合
3、机械硬盘+SAS接口=》对速度没有特殊要求场景下的常规组合
4、机械硬盘+SATA接口=》穷人套餐,对速度要求较低,通常用于企业内部应用
热数据和冷数据
据统计,高并发场景下,用户大量访问的仅仅只是那一小戳数据,比例大致为
25%的数据=》用户经常访问=》热数据
75%的数据=》用户不经常访问-》冷数据
针对这25%的核心数据,如果资金充裕,我们通常放在SSD+SAS盘上,一般常规的做法都是放在:15000转/分机械磁盘+SAS口上,比较经济实惠
其实我们暴露给外部用户的核心的业务都推荐使用:转速是15000转/分的机械磁盘+SAS口
一般内网应用或者数据备份才选择:7200或10000转/分的机械磁盘+SATA口
RAID
RAID技术的本质就是对硬盘做集群,将多块合并成为一块虚拟的大盘,可以带来好处
1、容量的增大
2、读写速度提升
3、防止单点故障
raid0
经过条带化处理,将数据分割成很多份,然后同时并行写入多个硬盘,以提高数据传输的速度。但如果其中一个硬盘发生故障,那么所有的数据都将无法恢复。
raid1
将两个或更多的磁盘镜像成一个单一的数据源,提供完全的冗余。如果其中一个硬盘故障,数据依然可以从其他硬盘上获取。
raid5
至少需要三个硬盘,其中一个硬盘会被用来存放用于数据恢复的校验信息。如果其中一个硬盘故障,数据可以从剩余的硬盘恢复。
raid10
将RAID 0和RAID 1结合起来,既实现数据冗余,也提高了数据传输速度。需要最少四个磁盘,其中任意一个硬盘故障,数据可以从其他硬盘恢复。
制作硬件RAID
raid技术有软件raid与硬件raid之分,考虑到性能,我们通常用硬件raid,这就需要使用raid卡了
有RAID卡后,一般磁盘就会插到RAID卡上,而不是直接插到主板上了
存储容量单位
1DB=1024NB; // DB(DoggaByte)
1NB=1024BB, // NB(NonaByte)
1BB=1024YB; // BB(BrontoByte)
1YB=1024ZB; // 尧字节 (YB,YottaByte)
1ZB=1024EB; // 泽字节(ZB,ZettaByte)
1EB=1024PB; // 艾字节(EB,ExaByte)
1PB=1024TB; // 拍字节(PB,PetaByte)
1TB=1024GB; // 太字节(TB,TeraByte)
1GB=1024MB; // 吉字节(GB,Gigabyte)
1MB=1024KB; // 兆字节(MB,MegaByte)
1KB=1024B // 千字节(KB,KiloByte)
1B=8bit // 字节(B,Byte)
小b:代表一个二进制位
大B:代表一个字节,8个二进制位才构成一个字节,即8b等于1B
市面上卖硬盘的都是按1000计算,号称500G硬盘=5001000B1000KB*1000MB
主板
1、北桥:连接高速设备,cpu、内存等,影响系统性能
2、南桥:连接低速设备,如磁盘、usb接口、音频设备、以及其他pci设备,南桥会产生大量的数据流
PCI插槽
也就是外设组件互连插槽,主要是用来连接各种外部设备和扩展卡的。
下面是一些常见的可以连接到PCI插槽的设备类型:
显卡:用于处理和输出图像到显示器的设备。
声卡:用于处理音频数据的设备。
网络卡:使得电脑可以连接到有线或无线网络的设备。
USB卡:提供额外的USB接口的设备。
硬盘控制器:使得电脑可以连接到IDE或SCSI硬盘的设备。
总的来说,电脑上的PCI插槽提供了一个连接和安装各种不同功能设备的接口,从而拓展电脑的功能和性能。
CMOS:
是一个存储设备,用于存放BIOS配置的内容、系统事件等
CMOS电池:
断电后给主板的CMOS供电
ROM:
“只读内存”存放计算机厂商写死计算机上主板上的一段核心程序=》BIOS
主板芯片组
主板芯片组是主板上最重要的部件,主板的功能主要取决于芯片组。芯片组负责管理CPU和内存、各种总线扩展以及外设的支持
BIOS芯片组
BIOS (basic input output system)芯片(CMOS芯片):负责主板通电后各部件自检,设置,保存,一切正常后才能启动操作系统。记录了电脑最基本的信息,是软件与硬件打交道的最基础的桥梁,没有它电脑就不能工作。
机箱
主板电源
1.服务器双电源模块
2.UPS
3.柴油发电机加油罐
风扇组
服务器分类
1.按尺寸
1U 2U
2.按外形
机架式 刀片式 塔式
3.按品牌
IBM dell
去IOE
小型机(服务器) 过时感念
机房机柜服务器摆放
远程管理卡
服务器采购清单
计算机体系三层结构与优化
三大核心硬件
cpu 内存 硬盘
程序的运行和三大硬件的关系
1、程序最先存放与硬盘中,程序的运行会先把程序相关内容从硬盘读入内存-》称之为程序的加载或启动
2、然cpu从内存中读取指令来运行-》称之为程序的运行过程
所以,
若想加快程序的启动速度,应该换一块好硬盘+接口
若想能同时运行的程序数比较多,应该加内存
三层结构
应用程序
操作系统
计算机硬件(cpu、内存、硬盘)
优化思路
计算密集型软件和io密集型软件
计算密集型
优化cpu
io密集型
优化思路:核心就是围绕IO的优化,尽可能少地减少硬盘IO及网络IO,例如
1、针对读数据操作,能从内存读就不要从硬盘读,能从本地硬盘读就不要从网络读,永远就近访问
2、针对写数据操作,先在内存中攒一大波数据,然后再一次性刷入硬盘
四个层次优化
1、硬件优化
2、操作系统内核优化
3、应用程序优化
4、网络优化
buffer与cache
大家都说linux系统效率高,到底高在哪里呢?其中一个方面就是buffer与cache的设计
linux系统觉得我们日常内存都不会用满,所以它自作主张,会从free内存中借走一部分内存
这些借走的内存一部分用作buffer、一部分用作cache
buffer称之为缓冲区:linux系统会将要写入硬的数据先缓冲到buffer,然后一次性刷入硬盘,以此减少io次数
cache称之为高速缓存:linux系统会将硬盘读入内存的数据缓存到cache里,下次读的时候直接从cache取即可
cache空间可以随便清理,而buffer空间在清理之前最好先执行刷新命令