所以我在云服务器上有nginx和php。在以下设置中使用apache基准测试:
ab -n 300 -c 5 http://example.com/
所以云服务器(来自rackspace)是256 So的。在运行时,我运行了htop,这样我就可以看到服务器资源。
所有四个处理器(在rackspace上只有四个处理器的一部分吗?)我不确定在apache基准测试运行的整个时间里,我可以访问多少),达到100% (或者98%或更高)。
目前我每秒收到15个请求。我的第一个想法是调整服务器的大小(我将其更改为512 My的服务器,因此它的大小应该是所有服务器的两倍)。尽管如此,每秒的请求是完全相同的,处理器的使用率一直在/接近100%。
然后,我尝试将php更改为一个静态的20个进程(而不是10个进程)。这产生了与以前相同的结果。
瓶颈是什么?
我在这个特定页面上的一般应用程序(用php编写)只需连接到数据库并获得产品列表。然后它就把它们列在一张桌子上。不是很多复杂的查询(尽管有相当多的查询)
所以也许这和数据库有关?
发布于 2010-09-17 17:26:44
最好的方法是安装代码分析器,比如XDebug。安装XDebug,然后启用分析器。它将生成一个报告,您可以快速检查该报表,并准确地找出您的代码中哪些部分占用了最多的处理时间和内存使用。然后,您可以在代码中找出这些区域以进行优化。
发布于 2010-09-17 16:42:13
你能提供更多关于PHP代码实际在做什么的信息吗?
发布于 2010-09-26 15:51:12
您可以运行"top“并查看哪些进程(nginx、php或mysql)实际占用CPU。这将表明瓶颈。为了更容易地解释结果,请将php-fpm进程的数量临时设置为4。例如,如果您得到4个php-fpm进程,每个进程消耗了90%的CPU、5%的nginx和20%的mysql,那么PHP脚本中的一些繁重的数学就是瓶颈。如果php进程大多处于空闲状态,而mysql占用了大量的CPU,那么数据库就是瓶颈,请考虑添加一两个索引。
https://serverfault.com/questions/182283
复制相似问题