一:硬盘接口
IDE并口(已经退出历史啦)
SATA串口
SCSI(订制小型机接口,国内已经在去IOE运动下,基本不用了)
SAS(SATA+SCSI)结合了两大接口的优势做成
光纤通道 高端服务器采用
硬盘+接口:
SSD+SAS====》土豪
SSD+SATA===============》常规,对速度有特殊要求
机械磁盘+SAS===========》常规,比较核心业务使用,对速度要求常规
机械磁盘+SATA===》内部服务
多块硬盘要连接到RAID卡(阵列卡)上(就是硬盘集群的意思)
然后制作raid
raid0
至少1块盘
容量:n块盘合在一起的总容量
性能:理论上是n块盘合在一起的读写速度,实际上是要略低一些(因为涉及到不同io接口CPU切换的问题)
冗余性:不允许坏任何一块盘 简单理解 一损俱损
场合:追求读写性能,但是对数据安全性没有啥要求,例如集群服务器
特点:追求速度,不考虑数据安全
raid1
只能2块盘
容量:1块盘的容量
性能:几乎就是一块盘的读写速度
冗余性:可以坏一块盘,另外一块盘有完整的数据 简单理解数据有备份
场合:对数据安全性有要求,对速度读写速度没有特殊要求,例如服务器的系统盘
特点:追求数据安全,不考虑速度
raid5(介于raid0与raid1之间,是一种折中的方案)
至少3快盘,两两之间做奇偶校验-》异或运算,相同结果为0,不同结果为1
容量:废掉1块盘的容量,等量盘的情况下,容量低于raid0
性能:读写速度低于raid0,高于raid1
冗余性:可以坏一块盘,其余两块盘可以通过奇偶校验推导出坏盘的数据
场合:一般的场合都可以使用
raid10
至少有4块盘
raid1和raid0的整合的产物,兼顾了raid1的数据安全性与raid0的性能,但是成本大幅度提升
通常用于数据库服务器
优化的基本原则
1、针对读操作,数据能从内存取就不要从硬盘read-cache
2、针对写操作,在内存中攒一波再写入硬盘write-buffer
二:操作系统(了解)
前言:
操作系统最核心的概念就是进程
进程指的就是一个程序的运行过程,具体来说指的是操作系统控制硬件来运行程序的过程
第一代计算机:真空管和穿孔卡片
特点:没有操作系统的概念,程序员直接工作在硬件上
缺点:一个时间段只能一个人用计算机,浪费计算机资源
第二代计算机 晶体管和批处理系统
一次只把一个/道程序读入内存,运行完毕后,再执行下一个程序,没有并发,称之为串行
优点:
1、充分利用了计算机资源
缺点:
1、整个过程是需要人参与的
2、让程序员明显地感觉到等待
3、程序的运行是串行
第三代计算机:集成电路芯片和多道技术
串行:多个任务是一个运行完毕再运行下一个
并发:多个任务看起来是同时运行的
多道技术=》并发
1、空间上的复用:多道程序在运行前先必须加载到内存中
2、时间上的复用:多个任务复用cpu的时间片,通俗地讲就是cpu在多个程序之间来回切换
什么时候切换呢?
I:当一个任务遇到IO,肯定要切换-》提升效率
II:一个任务没有遇到IO但是占用CPU时间过长,也要切换=》降低效率
ps:多个进程的内存空间是互相隔离的,而且是物理隔离
分时操作系统CTTS:多用户多任务
应用多道技术来实现多个任务的并发的运行
MULTICS:
MIT,贝尔实验室和通用电气
Ken Thompson