性能测试小计
1.带宽占用(大体量日志传输)
2.CPU飙升
3.SQL优化
4.分布式数据不一致
log4j block影响qps: 解决方案:
http://blog.csdn.net/mr_smile2014/article/details/52401328
-------------------------------------------------------------------------------------------------------
1.性能测试目的
a.)确定系统线上最优配置
b.)发现系统瓶颈
c.)发行系统在高并发情况下的bug,如内存泄露或者接口返回异常
d.)负载均衡是否符合要求
e.)线程数设置是否满足大量用户需求,确定设置多大的线程数能满足业务。
2.性能测试结果及调优
一般指的是CPU、内存、磁盘I/O 方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置、jvm的参数配置)、中间件瓶颈(参数配置、数据库、web服务器等)、应用瓶颈(SQL 语句、数据库设计、业务逻辑、算法等)。
下面算是一个技巧,如面试官问到一个性能问题假设,我不知道性能问题出在哪儿时,可以按照这个思路回答^_^
• 查找瓶颈时按以下顺序,由易到难。
服务器硬件瓶颈---〉网络瓶颈(对局域网,可以不考虑)---〉服务器操作系统瓶颈(参数配置)---〉中间件瓶颈(参数配置,数据库,web服务器等)---〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。
• 分段排除法 很有效
性能测试调优应该注意的要点:
- 要点1: 在应用系统的设计开发过程中,应始终把性能放在考虑的范围内。
- 要点2: 确定清晰明确的性能目标是关键。
- 要点3: 必须保证调优后的程序运行正确。
- 要点4: 系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段。
- 要点5: 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中去。
- 要点6: 性能调优不能以牺牲代码的可读性和可维护性为代码。