Laravel—部署后CPU使用率高



我在部署Laravel应用程序时遇到了一个严重的问题。这是一个新闻网站,没什么复杂的。整个主页作为纯HTML缓存在Redis中,查询结果也存储在Redis中,所以MySQL的使用真的很小。应用程序功能齐全,所以我们决定晚上在生产环境中测试它。部署后,我们注意到所有12核的CPU使用率都跃升至90-100%,因此应用程序运行非常缓慢或根本无法运行。大约有400个用户,每秒17-20个请求。

我们尝试改变服务器设置(PHP-FPM等),但没有成功。我们使用Apache Benchmark进行了一些测试,结果表明,在10个并发用户的情况下,CPU使用率约为80-100%。接下来,我们用干净的Laravel(没有我们的应用程序)重复测试,结果相似。

使用:

  • Laravel 9.0
  • 服务器:12核,128 GB RAM
  • Plesk Obsidian 18.0.48, CentOS 7.9.2009
  • Apache + Nginx反向代理

我们注意到Nginx缓存可以减少Wordpress或Drupal等应用程序的CPU使用。但我想Laravel不会使用它。Laravel是否需要配置为与Nginx反向代理和缓存以某种特殊的方式工作?

我真的不知道该怎么办。有人遇到过类似的问题吗?

Laravel在Nginx上运行得很好。我用Nginx在Google Cloud上的一个容器中运行我的应用程序,没有任何性能问题。

如果你想使用一个服务器代理,这个为我做了工作:

server {
listen 80;
your_news_app.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8000;
}

}

最新更新