1、各个层次I/O性能汇总
衡量磁盘读写速度的单位是iops(每秒的输入输出)
1s=1000ms=1000 000us(微妙)=1000 000 000ns(纳秒)
硬件 | 延时 | 带宽 |
---|---|---|
cache L1 L2 L3 | 0.5~1.5ns | 20~60GB/s |
内存 | 30~100ns | 2~12GB/s |
SSD硬盘 | 10us~1ms | 50MB/s~2GB/s |
普通硬盘 | 5~20ms | 50~200MB/s |
网卡 | 100us~1ms | 10MB/s~10GB/s |
2、I/O优化
找到cpu、内存、硬盘、网卡IO瓶颈优化
顺序存储比随机存储使用效率更高,消息队列把随机的变为顺序
磁盘优化:
1、选择固态盘,并使用raid10
2、把磁盘数据往内存里放,用户直接访问内存
网络优化:
1、网卡升级
2、带宽升级
3、网络设备升级(交换机、路由器、网线)
3、企业级案例-磁盘优化
90%的用户访问20%的热数据
ssd(80GB):
存20%热数据,根据用户访问记录,动态调整热数据
stat(500GB):
存剩余80%的数据
4、企业级案例-提升用户体验网站解决方案
4.1、门户极端案例:高并发读写
高并发“写”数据:先把数据写入内存,积累一定量后,再定时或定量写入磁盘
高并发“读”数据:把磁盘数据加载到内存中,用户直接访问内存中加载的数据
优点:性能高、速度快
缺点:突发断电时,内存中的数据来不急写入磁盘,导致数据丢失
解决数据丢失的方法:
1、在服务器主板上安装蓄电池,断电宕机前把内存数据写入磁盘
2、使用UPS电池组不间断供电(持续供电10分钟,对于IDC机房,UPS供电1小时)
3、机房接入双路市电,服务器使用双电源,分别接不用路的市电(或者两地三中心)
4、柴油发电机+油罐,机房会和附近加油站签订紧急供油协议
4.2、中小型门户案例:低并发读写
绝大多数企业的业务逻辑中“读”请求多于“写”请求
低并发“写”数据:直接把数据写入磁盘
低并发“读”数据:通过程序把磁盘的数据读入内存,用户直接访问内存中的数据