1.测试目的:
测试出opcache中,opcache.revalidate_freq这个参数最适合的大小
说明:如果opcache.revalidate_freq参数越大,服务器单位时间能接收的请求越多,但是加载代码的频率越低,会造成代码加载不及时的问题,本次测试要找出相对最适合值
2.测试方法
(1)加载文件
1 <?php 2 for($i=0;$i<1000;$i++){ 3 require 'a1.php'; 4 }
其中,a1.php为空文件
(2)执行命令
ab -c 100 -n 10000 -X 10.1.48.61:80 http://merchant.fenqile.com/a.php
3.测试数据
时间/s | 第一次QPS | 第二次QPS | 第三次QPS | 第四次QPS | 第五次QPS | 第六次QPS | 第七次QPS | 第八次QPS | 第九次QPS | 第十次QPS | 平均QPS | 相比涨幅(%) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
无cache | 251.09 | 275.02 | 264.1 | 251.56 | 315.88 | 319.58 | 244.22 | 245.67 | 241.6 | 252.99 | 266.171 | - |
2 | 3340.49 | 3123.33 | 3522 | 3283.12 | 3288.55 | 2988.41 | 3198.33 | 3432.29 | 2982.24 | 3333.91 | 3249.267 | 1120.744183 |
5 | 3561.02 | 3623.98 | 3252.94 | 3242.5 | 3268.44 | 3655.6 | 3379.73 | 3418.09 | 3862.37 | 3612.47 | 3487.714 | 7.33848588 |
10 | 3689.13 | 3223.77 | 3590.28 | 4582.31 | 3662.97 | 2951.84 | 3652.12 | 3690.98 | 3483.92 | 3586.67 | 3611.399 | 3.546305689 |
15 | 3800.59 | 3474.47 | 3568.07 | 3573.22 | 3617.65 | 3620.58 | 3391.89 | 3735.69 | 4241.76 | 3457.95 | 3648.187 | 1.018663404 |
20 | 4328.92 | 3499.61 | 3437.75 | 3747.84 | 3319.07 | 3797.55 | 3349.25 | 4682.37 | 3485.39 | 3469.82 | 3711.757 | 1.742509361 |
25 | 3820.99 | 3600.84 | 4506.87 | 3417.04 | 3309.1 | 3212.22 | 3595.61 | 4747.57 | 3483.93 | 3271.25 | 3696.542 | -0.409913688 |
30 | 3986.23 | 3500.7 | 4561.91 | 4650.12 | 3509.07 | 3566.24 | 3570.83 | 3281.27 | 3285.42 | 3218.76 | 3713.055 | 0.446714795 |
60 | 4456.15 | 3691.21 | 3243.29 | 3281.61 | 3587.71 | 3804.15 | 3316.35 | 4071.93 | 3809.79 | 4156.25 | 3741.844 | 0.775345369 |
3.测试结论
根据上面的表格
(1)在加载文件多的情况下,使用opcache的方式,可以使性能优化10倍
(2)可以看到,2s-5s相对涨幅是最大的,超过10s以后,涨幅相当缓慢,故可以得出结论:opcache中opcache.revalidate_freq参数,设置的值为2-5为宜