性能测试简单调优

1.系统性能瓶颈分析前端

影响系统性能的因素:程序员

  • CPU:计算
  • MEM:缓存
  • 磁盘:持久化存储
  • 网络:数据传输

2.不一样的系统性能压力点不一样sql

门户网站、文件服务、政企办公:网络带宽瓶颈、缓存多(偏静)数据库

流媒体应用、科学计算:进程多、消耗内存多、磁盘IO频繁(偏动)apache

企业生产应用:DB压力大、存储压力大、内存压力大、CPU压力大(动&静)数组

 

3.系统架构层次分析:缓存

各层次性能的关注点:tomcat

  • 操做系统资源分配

     系统资源:服务器、客户机cpu、内存、硬盘等配置安全

     操做系统:操做系统资源分配服务器

  • 应用服务中间件配置

    链接数等等

  • 程序和数据库

    程序:内存、线程的锁、或其余功能性的问题

    数据库:参数的配置

 

4.中间件Tomcat配置调优

Tomcat链接数配置实例:

A项目的server.xml的配置文件

sudo find / -name *tomcat*

 

 

相关配置参数解释:

  • maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat能够建立的最大的线程数。默认值为200.能够根据机器的实际性能和内存大小调整,通常能够在400-500,这个数值决定最多同时处理的链接
  • minSpareThreads="25"     表示即便没有用户也要开25个空线程等待。
  • maxSpareThreads="75"    表示若是最多能够空75个线程,例如某时刻有80用户访问,以后没有用户访问了,则tomcat不会保留80个空线程,而是关闭5个空线程
  • acceptCount  指定全部能够使用处理请求的线程数都被使用时,能够放处处理队列中的请求数,超过这个数,请求将不予处理。默认值10
  • connectionTimeout    网络链接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置存在隐患。一般可设置为30000毫秒

遇到的问题:链接数配置不够,并发数超出最大链接数

  • Loadrunner报错:Error -27791 Server "173.31.1.20" has shut down the connection prematurely

查看tomcat的日志(tomcat的安装目录下logs文件夹)文件catalina.-11-25.log,其中有如下错误信息:

  1.-11-25 18:26:03 org.apache.tomcat.until.threads.ThreadPool logFull

  2.严重:All threads(150) are currently busy, watting. Increase maxThreads(150) or check the servlet status.

 

五、jvm参数配置优化和代码优化

jvm参数配置

  a. 设置环境变量: 变量名:CATALINA_OPTS 变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m

  b.打开Tomcat根目录下的bin文件夹,编辑catalina.sh,将其中的%CATALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m

 

最容易调优的地方

  • 代码
  • 最为成熟的部分主要开销是CPU
  • 经过配置和应用平台调整能够实现

Java代码方面优化

  1.减小new对象;用移位符号替代乘除号。

  2.多使用局部变量,减小使用静态变量。

  3.避免使用finalize,该方法会给GC增添很大负担;

  4.若是是单线程,尽可能使用非多线程安全的,由于线程安全来自于同步机制,同步机制会下降性能。

  5.尽可能使用基本类型而不是包装类型,尽可能使用一维数组而不是二维数组。

  6.尽可能使用final修饰符,final表示不可修改,访问效率高。

  7.单线程状况下,字符串尽可能使用StringBuilder,比StringBuffer要快。

  • 其实就是开发人员在写代码时到处都在考虑行问题;
  • 这是一个成为高级程序员的必修之路,不在只考虑功能实现,还要考虑实现的效果如何

六、Mysql的监控和调优

系统SQL分析调优

优化方面:

  主从复制

  静动分开(好比百度就是这样的)

  加数据库缓存

  设计优化(数据库、表结构、标的设计上须要优化)

  索引或视图减小查询内容

  优化SQL结构(经过explan优化sql的结构)

Mysql配置优化

  • 数据库链接数占满,事物失败
  • 容器线程数占满(如tomcat)
  • 链接池配置
  • 设置慢查询

慢查询

  分析出慢的缘由

  SQL自己

  索引

前端调优-有效and难

一般前端的一些措施:

  • 减小HTTP请求数据量及个数
  • 使用CDN数据加速
  • 合理使用Expires增长缓存效果
  • 使用动态或静态压缩技术
  • 在顶部加载CSS,JS放在页面底部,使用外部
  • 使用AJAX请求可缓存
  • 减小DNS查询

相关文章
相关标签/搜索