1.4 服务器主要部件
1) 电源
生产中一般核心业务用双电源,双线供电(AB路:从不同地方拉电缆到机房),如果是集群情况可以不用双电源。
电表图片:此处待插入图片
2) CPU
负责运算和控制,是服务器性能效率最为重要的部件。常见品牌:Intel 、AMD
一般企业服务器:CPU颗数2-4颗,单颗CPU 4核心,内存总量一般是16G-256G(32G,64G)。
虚拟化宿主机:CPU颗数4-8颗,内存总量一般是48-128G,6-10个虚拟机。
3) 内存
CPU和磁盘之间的缓冲设备,临时存储器。一般程序运行的时候会被调度到内存中执行,服务器关闭、重启或程序关闭之后,自动从内存中释放掉。
进程:正在运行着的程序,进程运行就是系统把程序放在内存里执行。
守护进程:持续保持运行着的程序。
程序:C/PHP/Java,代码文件,静态的,放在磁盘里的数据。
企业案例:
1. 门户极端案例:大并发写入案例(抢红包、微博)
高并发,大数据量写数据:会把数据先写到内存,达到一定量,然后再定时或者定量的写入到磁盘(减少IO),最终还是会加载到内存中再对外提供访问。
特点:
a 优点:写数据到内存,性能高速度快(微博,微信,SNS,秒杀)。
淘宝应对秒杀起码要准备2-3个月,通过程序把对外秒杀的数据放到全国的机房服务器内存中,还要让北京的用户访问北京的机房,上海的用户访问上海的机房。
b 缺点:可能会丢失一部分在内存中还没有来得及写入磁盘的数据。
解决方法:
(1) 服务器主板上安装电池(应该是指阵列卡上的电池),在断电瞬间把内存中的数据写入磁盘(阵列卡必须启用回写策略)。这点还需要在了解清楚。
(2) UPS不间断供电(持续供电10分钟,IDC机房据说UPS通常可供电1小时以上)。
(3) 选双路电的机房,使用双电源、分别接不同路的电。
2. 大中小企业案例:并发不是很大、数据也不是特别大的网站,读多写少的业务,先把数据写入到磁盘,然后通过程序把数据读入到内存里,再对外通过读内存提供访问服务。
记住一句话:缓存无处不在!
3. buffer和cache有什么区别?
写入数据到内存里,这个数据的内存空间称为缓冲区(buffer)。
从内存里读取数据,这个数据的内存空间称为缓存区(cache)。
由于99%的网站都是读取为主,写入为辅,读写比例至少是10:1,所以并发写入不是问题。
提醒:这里提到的内存和磁盘,是由多台机器组成的集群架构环境:memcached(纯内存)/redis(内存加磁盘)。
4)磁盘
永久存放数据的存储器,磁盘上也是有缓存的。
常用的3.5英寸机械硬盘(IDE、SATA、SAS),读写性能比内存差很多,所以工作中,我们才会把大量的数据缓存到内存,写入缓冲区,这是当今互联网网站必备的解决方案。
磁盘接口类型:IDE、SCSI、SATA、SAS、SSD,IDE、SCSI已经退出历史舞台。
性能与价格:SSD>SAS>SATA
企业应用:(必定是选择企业级硬盘,适合7 X 24小时不间断访问)
1 常规正式工作场景选SAS硬盘(转速10000RPM或15000RPM,机械硬盘转数高的性能好)。
2 不对外提供访问的服务器,例如:线下的备份服务器,可选SATA(7200RPM或10000RPM)。SATA硬盘特点:容量大价格便宜,但速度比较慢。
3 高并发访问,少数据量,可以选择SSD。
淘宝网企业案例:服务器会把SATA和SSD结合起来用,热点存储,程序动态调度(按照数据被访问的频繁程度把数据在SSD和SATA之间移动)。
小结:企业网站来讲,都会尽量让用户从内存中读取数据,而不是硬盘。几乎所有企业运维和架构师的网站优化、服务器、软件的优化都是磁盘和内存的使用比例的优化。
5)阵列卡(RAID卡),RAID:磁盘冗余阵列
基本作用:网站数据量很大,单块盘装不下,有了多块盘,又不想多个盘存放数据,就需要工具把所有硬盘整合成一个大磁盘,再在这个大磁盘(虚拟磁盘)上分区放数据。而且多块盘一起放数据可以有冗余(备份)。
RAID有多种整合方式:RAID 0 1 5 0+1(1+0):这几种最常用,其它还有RAID 6(没什么必要用)。有了RAID卡后,一般磁盘就会接在RAID卡上,而不是接在主板上了。
代表图片:
1. DELL-H730P_Mini-2G-机架式服务器阵列卡
2. DELL-H730P_大卡-2G-塔式服务器阵列卡
RAID 0 特点:虚拟磁盘容量=单盘容量*磁盘数量(N)。磁盘数量可以是1个或N个(视阵列卡而定),容量没有损失,读写速度快,但数据没有冗余容易丢失(N块磁盘做成RAID 0,只要有一块磁盘损坏,数据全部丢失)。用在比较极端的场合(数据完全不重要)。
RAID 1 特点:只能是两块磁盘,两块磁盘容量可以不一样,虚拟磁盘容量=单盘容量(或容量较少的磁盘容量)。速度跟单个磁盘差不多,数据有冗余(两块磁盘的数据完全一样)。
RAID 5 特点:至少要3块磁盘,虚拟磁盘容量=单盘容量*(N-1),损失一个硬盘容量。读写性能一般,介于RAID 0 和RAID 1之间。允许损坏一块磁盘,数据不会丢失。
RAID 1+0、RAID 0+1:至少4快磁盘,虚拟磁盘容量=单块磁盘容量*N/2,容量也是损失一半。
冗余性从好到坏:RAID 1、RAID 1+0,RAID 0+1,RAID 5,RAID 0
性能从好到坏:RAID 0,RAID 1+0、RAID 0+1,RAID 5,RAID 1
成本从低到高:RAID 0,RAID 5,RAID 1,RAID 1+0、RAID 0+1
注意:RAID 1+0与RAID 0+1是有区别的。RAID 1+0冗余性更好。
不同RAID级别的企业应用举例:根据数据的存储和访问需求,去选择RAID
1. 互联网公司:
a 单台服务器,很重要,盘不多,系统盘用RAID 1
b 数据库服务器,主库RAID 1+0(因为主库很重要且不好扩展也不好备份),
从库RAID 5/RAID 0(不差钱的话都用RAID 1+0)
c WEB服务器,如果数据量不大的话,可以选用RAID 5或 RAID 0(单盘)
d 监控/应用服务器,RAID 0 或RAID 5