首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓慢查询WordPress站点(每月500名访问者和150名帖子)

缓慢查询WordPress站点(每月500名访问者和150名帖子)
EN

Stack Overflow用户
提问于 2019-05-02 18:14:51
回答 2查看 115关注 0票数 0

我正在运行一个WordPress站点,每个月有500000名访问者,15万个帖子,平均每秒钟有100个页面浏览量。我试图找出服务器上的负载是否正常,或者我是否可以在不增加服务器安装和每月成本的情况下解决性能问题。

下面是我现在正在运行的服务器设置:

  • 2前端服务器,Nginx: 2 CPU和4GB RAM
  • 1 DB服务器,MariaDB: 8 CPU和16 DB内存
  • 1台Redis服务器:2 CPU和4GB RAM

WordPress的主题是从零开始开发的,我优化了查询并最小化了插件的使用(总共有5个插件)。

我使用反向代理Cache运行Nginx,其中缓存所有页面5分钟,以便能够处理流量高峰(发送通讯时,3k访问者在30分钟内达到两个峰值)。

MariaDB和Redis服务器正在运行Debian,配置是开箱即用的。我唯一改变的是innodb_buffer_pool_size = 11G和max_connections =300in MariaDB。

当有100个实时访问者时,DB CPU以50%的速度运行,而在300-700个实时访问者的情况下,DB的运行速度为85-90%。

问题是,即使在CPU加载50%的情况下,加载查询也需要一些时间(3-6秒)。

我的暂存环境运行在完全相同的服务器上,但使用的是另一个数据库表(相同数量的帖子),查询时间为0,5-1,5秒。

因此,唯一的区别是生产数据库拥有更多的并发用户。

是什么使查询需要这么长时间来加载呢?

EN

回答 2

Stack Overflow用户

发布于 2019-05-02 19:00:56

听起来你需要节点平衡器或增强服务器。

您有500,000访问者,每秒钟有100次页面浏览量,Wordpress以笨拙而臭名昭著,并以序列化数据库中的对象而闻名(显示的每个组件都是一个查询)。因此,假设您有一个简单的网站(15个查询)和5个插件(10个查询),现在将25乘以100页,在16 GB的RAM上每秒有2500次查询。这意味着每个查询获得大约0.0064 GB的内存或6.4兆字节。

除非您的数据库中的表足够小,可以容纳4.25张软盘,否则我建议您使用更多的电源。

票数 0
EN

Stack Overflow用户

发布于 2019-05-19 15:27:56

由于模式效率低下,使用wp_postmeta的查询速度很慢。你可以解决这个问题。

请参阅postmeta

这将比“向问题扔硬件”更有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55958063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档