首先我们要先了解到如何判断一个的性能上限是多少,这就为我们引入了压测工具的了解和使用,常用的压测工具当然就是Apache 开源基金会的 ab工具了。
在我们使用和了解ab工具前要先了解几个概念
概念:服务器并发处理能力一个量化参数,单位是reqs/s,在没有并发的系统中,我们会发现其实吞吐量和响应时间成严格的反比,目前的并发系统并不能单纯的用响应时间作为性能衡量的标准,而应该以吞吐量作为指标进行评估。这是因为在多用户系统中,用户数和响应时间并不成正比,一个用户的响应时间是t,n个用户的总响应时间一般是小于 n*t 的,这也是为什么用吞吐量作为量化指标。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests
概念:并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。
根据官方的一段描述
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求
一般我们会测试上述的两个性能指标,吞吐量和并发量。
并发量测试: 采用一个并发只一个请求,多并发同时进行
吞吐量测试: 采用固定并发数,每个并发多规格的请求数作为测试方式。建议测完一组同并发不同请求数的数据测完后,再变更并发数的大小,一般是从100,1000,10000这样递增的并发数测试
/path/to/bin/ab -n1000 -c100 http://test.domain
我们先看下上面的工具常用参数。
第一列就是ab工具的二进制文件路径,linux一般都是在/usr/bin/或者/usr/local/bin目录下。
第二列就是指定每个并发的请求数
第三列就是指定测试的并发数
第四列就是指定测试的域名
优化点:
一、自己编写的功能性代码,可以使用PHP自有函数替代。
二、PHP自有函数间的性能优化
isset()和array_key_exists()方法之间的性能差异
三、 PHP魔法函数性能不佳
__get() 魔术方法的使用
四、 产生额外开销的错误抑制符@
描述,PHP提供的方便“懒人”的错误抑制符
在代码前和后,增加opcode,忽略报错
工具:vld可以看opcode的执行过程
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。