性能分析 :
1.average response time : 平均响应时间
2.90% responsse time : 90% 用户响应时间 ,
如果响应时间的运行很平滑 ,那么取 average response time 和 90% response time 是一样的 ,但是如果曲线比较波折那么就取 90% response time 比较好 !
windows 一般在 2000 个并发
liunx 一般在 1000个并发 !
tomcat 的性能调试 :
tomcat 是不能独立运行的,它会依赖虚拟机 ,所以jvm 要调整一下 :
xms <size> : 初始化堆的大小 , xmx 是jvm的堆的最大值 , 因为这些只在小并发的情况下没有什么作用 ,所以只有在大并发的情况下才有作用 ,所以一般把 xms 和 xmx 设成一般大 ,一般是设成物理内存的 80%,lr监控jvm要
调用
API java.lang.management 接口 ,开发监控平台 , 因为如堆的设很大 ,那么它的垃圾时间就会很长 ,一般垃圾时间要在 2-3 s 为最好 ! tomcat 也有 xms 和 xmx ,最小内存 64 mb 和 最大内存 512 mb
tomcat 有msprocess 和 maxprocess ,这个不通的系统 ,不同的脚本要不测试调优 !
关于性能方面主要做了如下的项目 :
1. 石头网的性能测试 ,主要采用的是录制脚本的形式 ,采用的是tomcat+mysql+apache 首先进行性能调优 :
1) tomcat主要进行了 jvm虚拟机的调试 ,调试初始化内存 和最大可用内存 ,一般是初始化内存和最大可用内存一般在物理内存的 80% , (通过中间件比如tomcat 和weblogic里面的启动脚本来更改 ) 因为初始化内存在小的并发情况下没有什么作用,只有在大并发情况下有作用 所以一本初始化内存=最大可用内存
2)tomcat 方面调试了最大的线程池数量 ,这个要根据机器的配置等进行调整 ,我在这个项目中设置450个 !
3)apacha的性能调优 ,调试 一个连接最大的请求数 ,MaxKeepAliveRequests 10000
每个子进程完成的最大的请求数 :MaxRequestsPerChild 10000
4)mysql 最大连接数 max-connections 250 个 一般用户的最大连接数是设置的 85% 左右为合理
然后对系统进行了压力测试 , 主要的目的是现有的配置的情况下 我们最大的并发数是多少 ! 为以后的设备的扩展做准备 , 是采用的loadrunner 录制登录模式 ,
主要加的计数器有 ,
1) average response time : 平均响应时间
2) 90% response time : 90%用户的响应时间
当响应时间比较平滑的时候 ,那么用平均响应时间 ,如果响应时间不平滑 那么用 90% 响应时间
3)average throuhput (bytes /seconds) 系统的吞吐量 !
4) hits per seconds 反应了客户每秒向服务器发出的请求量
一般请求量越大那么 系统的吞吐量越大 !
5) process time cup的用量 ,一般在 80% 最高 ,如果超过这个就不合理
6) available mbytes ,可用的物理内存
7) % disk time 所选磁盘为读或者写入请求服务 所用的时间百分比
8)bytes total /sec : 发送和接受字节的速率 ,这个主要是考察网络的 !
采用了 ip欺骗的技术 ,一台应用服务器 ,一台数据库服务器 , 10m独享带宽
这个每秒最大的并发数是 450 个 !
linux 的 一般看top 值 , 用ps 调出各个进程 所占用的资源量 , 一般看 cup的用量 如果持续在 85 %的那么就是有问题 , % user time 如果这个一直很高 ,就说明 里面有复杂的算法程序需要优化 !