1、性能相关数据:
• 系统用户数:决定数据量,对处理速度有影响,可事先评估
• 在线用户数:决定访问压力的主要数据,反映总体处理能力的指标
• 思考时间:影响访问压力的重要因素
• 响应时间:反映系统处理个别请求速度快慢的指标
• 吞吐率:反映总体处理速度的指标
• 并发数:反映总体处理能力的指标
• 资源占用率:由访问压力决定,反映系统负荷程度的指标
2、性能指标
单一业务
• 吞吐率:系统单位时间内可处理的业务量
• 并发数:系统可同时处理的最大请求数
• 响应时间:从用户发起请求到请求完成所花费的时间
复合业务
• 在线用户数:在一定时间区间内对系统产生了访问的用户数。对于后端存在多个
接口或功能的系统,不方便用单一的吞吐率来表示系统的处理能力,因此可以间
接的用前端在线用户数来表示,其中隐含了各个功能或接口被使用的比例。
• 响应时间:从用户发起请求到请求完成所花费的时间
3、分析工具- nmon
nmon 工具可以为 Linux 性能专家提供监视和分析性能数据的功能,包括:
• CPU 使用率
• 内存使用情况
• 磁盘 I/O 速度、传输和读/写比率
• 文件系统中的可用空间
• 网络 I/O 速度、传输和读/写比率
• 消耗资源最多的进程
4、中间件配置优化 - nginx
• worker_processes 8;
nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
• worker_rlimit_nofile 102400;
这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开
文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与
ulimit -n的值保持一致。
• use epoll;
通信时采用Linux下最高效的I/O模型
• worker_connections 102400;
每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为
worker_processes*worker_connections。
• keepalive_timeout 60;
keepalive超时时间。
• HTTP压缩
• 静态内容过期
• FASTCGI缓存
• PROXY缓存
5、中间件配置优化 - tomcat
• connectionTimeout
网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
• keepAliveTimeout
长连接最大保持时间(毫秒)。此处为15秒。
• maxKeepAliveRequests
最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
• acceptCount
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将
不予处理,默认为10个。
• enableLookups
是否反查域名,取值为:true 或false。为了提高处理能力,应设置为false
• maxSpareThreads
最大空闲连接数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的socket线程The default value
is 50.
• maxThreads
最多同时处理的连接数,Tomcat 使用线程来处理接收的每个请求。这个值表示Tomcat 可创建的最大的线
程数。
• minSpareThreads
最小空闲线程数,Tomcat 初始化时创建的线程数.
• minProcessors
最小空闲连接线程数,用于提高系统处理性能,默认值为10。
• maxProcessors
最大连接线程数,即:并发处理的最大请求数,默认值为75
6、中间件配置优化 - mysql
• default-storage-engine=INNODB
• max_connections=20000
• query_cache_size=440M
• table_cache=2028
• tmp_table_size=512M
• thread_cache_size=80
• key_buffer_size=1024M
• read_buffer_size=256K
• read_rnd_buffer_size=2M
• sort_buffer_size=256K
• innodb_additional_mem_pool_size=3M
• innodb_flush_log_at_trx_commit=1
• innodb_log_buffer_size=1336K
• innodb_buffer_pool_size=130M
• innodb_log_file_size=26M
• innodb_thread_concurrency=16
7、前端响应时间优化 -启用HTTP压缩
• 以Nginx配置为例
• gzip on;
该指令用于开启或关闭gzip模块(on/off)
• gzip_min_length 1k;
设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值
是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
• gzip_buffers 4 16k;
设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原
始数据大小以16k为单位的4倍申请内存。
• gzip_http_version 1.1;
识别http的协议版本(1.0/1.1)
• gzip_comp_level 2;
gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
• gzip_types text/plain application/x-javascript text/css application/xml
匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。
• gzip_vary on;
和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避
免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
来源:https://www.cnblogs.com/mabiao008/p/12610035.html