软件系统质量特性
安全性
同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。
健壮、可靠
软件系统在一定的时间内无故障运行的能力、容错能力、恢复能力 。
可用性、易用性、性能
性能是指软件及时提供相应服务的能力。 具体而言, 性能包括速度、 吞吐量和持续高速性三方面的要求 。
可扩展、可维护、可移植
正在运行的软件系统以适应新需求、变化了的需求的难易程度
性能的定义及表现
定义
多快给用户想要的结果
考察两个方面:
1.流畅度
2.更少的资源占用
一些证据
页面加载超过3秒,就会发生不好的事情!
反面教材:google.com 正义的速度:baidu.com
计算结果越快出来越好!
消耗大量资源的AI alphaGo VS 省电强劲的大脑 柯洁
本次专题的主要内容
性能是平衡之道
在有限的资源下,提供最佳的访问能力及处理速度。木桶原理之:发现最差瓶颈,提升整体效率。呑吐量和响应速度兼顾。
调优是量体裁衣
根据不同的场景,针对性的提高适用性。如:前台的响应速度,后台的统计结果。前者用户耐心有限,后者需要丰富数据分析。
目标
对性能有正确的认识
量体裁衣,合理优化
全局思维
整体优化,消除瓶颈
基础的性能观察及调整
日常监控,配置调整
高级话题延伸
并发优化
概念
DNS时间、建立连接时间
输入网址名称(网址)后,浏览器通过查询DNS服务器所需要的时间TCP,请求方(浏览器等)与接受方(服务器)经过一系列协商所需要的时间。
服务器处理时间
接收方(服务器)处理请求所需时间
数据传输时间
从请求方(浏览器等)到接收方(服务器)以及从接收方(服务器)到请求方的时间
白屏及首屏时间
输入网址后至浏览器出现至少1px图片为止用户浏览器首屏内所有的元素呈现所花费时间
用户可操作时间
网站某些功能可以使用的时间
页面总下载时间
网站中所有资源加载完成并且可用时间
不同范围的全局性能思考
应用场景
计算密集型,集中式资源使用
IO密集型,分散型资源利用
硬件环境
单机,CPU、内存、磁盘、网络
多机,存储架构、网络架构、应用架构
软件环境
同构系统,多进程、多线程、多层逻辑
异构系统,认证鉴权、数据交互、服务层级
一些术语
QPS 每秒查询次数
TPS 每秒传输的事物处理个数
呑吐量 单位时间内成功地传送数据的数量
响应时间 用户指令到用户接收结果的时间
IO密集型
性能瓶颈
网络IO,阻塞式IO是最大的问题
磁盘IO,SSD
CPU
内存
磁盘
网络:带宽问题,CDN问题
VPS集群
Linode,日本机房,155ms
DigitOcean
阿里云,国内,香港,50ms
腾讯云,国内,香港,50ms
运维监控(我们不是运维)
处理模式
调优顺序-从底向上找出瓶颈
提高硬件能力
提高系统处理能力
安装高性能的软件
保障安全性
服务器配置优化
服务器环境安装
Nginx:提高Tomcat静态文件处理能力、负载均衡、反向代理
Centos环境,安装服务端软件,统一采用yum方式
Yum install nginx
Yum install java-1.8.0-openjdk.x86_64
Yum install tomat
Yum install mariadb
Yum install vnstat。。。
你不是运维,不要强求
服务器环境配置
Nginx的主配置目录:/etc/nginx/
Nginx的server配置目录:/etc/nginx/conf.d/
Nginx配置:
进程数 工作线程数 连接超时 上传文件限制 缓存 日志路径
启动服务 停止服务 配置语法测试 平滑加载
服务器处理方法
服务器环境优化
网络优化 安全性配置 用户组权限 目录规划
服务器常规监控
Top命令 Free命令 Df命令
工具: Xshell Filezilla