LEMP Nginx + php-fpm高负载超时然后很好

时间:2012-07-02 22:59:24

标签: optimization nginx vps php high-load

我对这一切都很陌生,但我是关于优化的OCD。

我正在尝试优化运行WordPress LEMP设置的网络服务器。

我正在使用WP hypercache而不是w3总缓存,因为它与我的设置相比似乎表现得非常好

我正在使用blitz.io来测试并在域中投掷450个用户60秒,从完整的450开始。

这是我的结果: 5秒的秒杀是错误和超时 http://i.imgur.com/CdpBz.png

在尖峰期间突然出现: http://i.imgur.com/OhEyS.png

这是一个vps w / 2 cpu 2.5Ghz和2.5GB内存,因为你可以看到内存使用率很低。

nginx:worker_processes 1; worker_connections 1024;

php-fpm:dynamic,pm.max_children = 10,pm.start_servers = 2,pm.max_spare_servers = 2 ,; pm.max_requests = 500默认值= 0

我已经将nginx worker_processes增加到2而没有任何变化,我已经搞砸了我的php-fpm设置而没有任何变化。任何想法我应该看什么?

1 个答案:

答案 0 :(得分:1)

这看起来并不太糟糕。 19k请求中约有40次超时是正常的。我得到了类似的结果。

至于调整:

  • 查看http://wiki.nginx.org/HttpFastcgiModule#fastcgi_cache - 使用此功能可以避免触及php,而nginx会执行所有缓存。你也可以看看batcache(http://evansolomon.me/notes/faster-wordpress-multisite-nginx-batcache/)

  • 查看apc / memcached以获取对象缓存。这使得非缓存请求更快,后端也更具响应性。 apc还减少了php的内存占用。对于日常使用,这会带来更大的不同。如果您的许多请求不可缓存(例如很多新评论),这也会有所帮助。

  • 考虑使用php5.4它的速度更快,内存更少

  • 启用mysql查询缓存。 http://mysqltuner.com是配置服务器的不错的小脚本。

在大多数情况下,测量峰值传输并不是可扩展性的良好指标。真正的用户表现可能不同。

编辑:在静态nginx页面上尝试blitz.io。如果还有超时问题可能是blitz.io或其他问题。同时激活页面的gzip压缩。