1.系统性能瓶颈分析前端
影响系统性能的因素:程序员
2.不一样的系统性能压力点不一样sql
门户网站、文件服务、政企办公:网络带宽瓶颈、缓存多(偏静)数据库
流媒体应用、科学计算:进程多、消耗内存多、磁盘IO频繁(偏动)apache
企业生产应用:DB压力大、存储压力大、内存压力大、CPU压力大(动&静)数组
3.系统架构层次分析:缓存
各层次性能的关注点:tomcat
系统资源:服务器、客户机cpu、内存、硬盘等配置安全
操做系统:操做系统资源分配服务器
链接数等等
程序:内存、线程的锁、或其余功能性的问题
数据库:参数的配置
4.中间件Tomcat配置调优
Tomcat链接数配置实例:
A项目的server.xml的配置文件
sudo find / -name *tomcat*
相关配置参数解释:
遇到的问题:链接数配置不够,并发数超出最大链接数
查看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
最容易调优的地方
Java代码方面优化
1.减小new对象;用移位符号替代乘除号。
2.多使用局部变量,减小使用静态变量。
3.避免使用finalize,该方法会给GC增添很大负担;
4.若是是单线程,尽可能使用非多线程安全的,由于线程安全来自于同步机制,同步机制会下降性能。
5.尽可能使用基本类型而不是包装类型,尽可能使用一维数组而不是二维数组。
6.尽可能使用final修饰符,final表示不可修改,访问效率高。
7.单线程状况下,字符串尽可能使用StringBuilder,比StringBuffer要快。
六、Mysql的监控和调优
系统SQL分析调优
优化方面:
主从复制
静动分开(好比百度就是这样的)
加数据库缓存
设计优化(数据库、表结构、标的设计上须要优化)
索引或视图减小查询内容
优化SQL结构(经过explan优化sql的结构)
Mysql配置优化
慢查询
分析出慢的缘由
SQL自己
索引
前端调优-有效and难
一般前端的一些措施: