① 如何估算程序需要的CPU资源
一、CPU使用率其实就是运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况。使用率越高,说明机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。而且CPU和内存占用是跟你的脚本挂钩的。脚本复杂,占用的就多。
二、步骤
方法一:
【1】首先你需要用压测工具(比如webbench)持续模拟请求,在压测期间每秒运行psaux|grepphp-fpm一次,把结果记录在文件中。
【2】等压测结束后,可以通过分析统计这个文件(结果第三列是cpu占用,第四列是内存占用),然后就可以绘制出php-fpm进程的cpu,内存占用了。
方法二:
如果在某一型号的设备上进行过测试,现在需要规划下一次测试任务需要的CPU资源;或者在同一型号的设备上,对比不同应用类型、同一应用不同版本之间的差异,可以采用简单估算。
1. 计算方法
CPU个数x利用率/吞吐量=CPU个数x利用率/(交易笔数/秒)=CPU个数x利用率x秒/交易笔数=每笔交易消耗的CPU持续了一秒钟。
2. 举例说明
假设某应用在一台8核服务器上运行,当每秒处理100笔交易的情况下,CPU利用率为70%。此时CPU个数x利用率=5.6。
每笔交易消耗一秒钟CPU的个数=5.6/100=0.056。
假设下次测试需要测试吞吐量为每秒200笔交易,大约要求CPU利用率在50%左右。则需要给测试服务器大约的CPU个数为:0.056x200/0.5=22.4。至于这个22.4C的服务器能不能达到每秒200笔交易的能力,是另一回事。