性能优化总结
本周主要学习性能优化,做性能优化就必须了解软件产品并从软件,硬件共同优化,以后是本周学习的要点:
一.软件性能优化的两个基本原则:1.必须经过压测的软件;2.必须了解这个软件。
性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试。
1)性能测试: 以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。
2)负载测试: 对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。
3)压力测试: 超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力
4)稳定性测试: 被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。在生产环境,请求压力是不均匀的,呈波浪特性,因此为了更好地模拟生产环境,稳定性测试也应不均匀地对系统施加压力。
二.硬件性能优化方向:1.网卡;2.操作系统;3.虚拟机。
文件与硬盘IO
1)硬盘
机械硬盘通过马达驱动磁头臂,带动磁头到指定磁盘位置访问数据,由于每次访问数据都需要移动磁头臂,所以机械硬盘在数据连续访问(顺序读写)时比随机访问(要访问的数据存储在不连续的磁盘空间)要快。
固态ssd硬盘没有机械装置,数据存储在可持久记忆的硅晶体上,可以像类似内存一样快速随机访问。
2)RAID与HDFS
RAID(廉价的磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。通过使用RAID技术实现数据在多块磁盘上的并发读写和数据备份。
RAID0
数据在从内存缓存区写入磁盘时,根据磁盘数量将数据分层N份,同时并发写入N块磁盘,写入速度是一块磁盘的N倍,但RAID0不做数据备份,一块磁盘损坏,数据完整性就被破坏。
RAID1
数据写入磁盘时将一份数据同时写入两块磁盘,这样任何一块磁盘损坏都不会导致数据丢失。
RAID10
结合RAID0和RAID1,将所有磁盘平均分成两份,数据同时在两份磁盘中写入,一半磁盘用来备份数据,另外在N/2的磁盘上利用RAID0的并发读写技术,从而提高了可靠性和高性能。
HDFS(Hadoop分布式文件系统)
系统在整个存储集群的多台服务器上进行数据的并发读写和备份,可以看作在服务器集群上实现了类似的RAID功能,因此不需要磁盘RAID.
HDFS以块(Block)为单位管理文件内容,一个文件被分割成多个Block,应用程序每写完一个块,HDFS就将其自动复制到另外两台机器上,保证每个Block有三个副本,即使两台服务器宕机,数据依然可以访问。
当对文件进行计算的时候,通过MR并发计算任务框架,启动多个计算任务(Task),同时读取文件的多个Block,并发处理。
三.软件架构性能优化方向:1.缓存;2.异步;3.集群。
缓存
从内存获取数据,减少响应时间,减少数据库访问,降低存储设备负载压力,缓存结果对象,而不是原始数据,减少CPU 计算,缓存主要优化读操作。
异步
即时响应,更好的用户体验,控制消费速度,合适的负载压力,异步主要优化写操作。
集群
一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
评论