Performance 即使只有一个用户在EC2实例和RDS上,Magento的性能也很慢

Performance 即使只有一个用户在EC2实例和RDS上,Magento的性能也很慢,performance,magento,caching,amazon-ec2,rds,Performance,Magento,Caching,Amazon Ec2,Rds,我目前有一个magento网站,位于专用服务器上。 对TTFB不太满意(主页大约2.5秒)。 我每天只有3000名访客,15000页/天。 我有30000种产品,一家商店,一种语言,一种货币 我想我可以尝试一下amazon上的EC2/RDS,所以我在一个新的EC2实例(web服务器)+1 RDS for mysql上复制了我的网站以进行测试。 我从一个小的开始(t2.small),和RDS一样。 我设置了nginx+php5 fpm,并导入了我的magento(文件+DB) 我很惊讶,TTFB大

我目前有一个magento网站,位于专用服务器上。 对TTFB不太满意(主页大约2.5秒)。 我每天只有3000名访客,15000页/天。 我有30000种产品,一家商店,一种语言,一种货币

我想我可以尝试一下amazon上的EC2/RDS,所以我在一个新的EC2实例(web服务器)+1 RDS for mysql上复制了我的网站以进行测试。 我从一个小的开始(t2.small),和RDS一样。 我设置了nginx+php5 fpm,并导入了我的magento(文件+DB)

我很惊讶,TTFB大约5秒!! 对于1个用户(我自己!)。仅访问主页,我从未去过其他地方。 当我访问仅显示新闻稿表格(+页眉和页脚)的CMS页面时,我也有同样糟糕的TTFB,根本没有显示任何产品

我迁移到一个更好的RDS(db.r3.large,2CPU,15GB,110GB SSD),它是5s。 还是很多

我也升级了EC2实例(c3.2xlarge,8CPU 15GB) 现在它是3.5s,比我现在的专用服务器还要多,只有一个用户

我知道有一些选项,比如改进magento代码,但我的观点更多的是关于为什么只有一个用户连接的EC2实例的性能低于我当前的prod服务器(只有8CPU 8GB,所以只有它的一半大小,而且它拥有一切,甚至是DB,而我的EC2配置有两个服务器!)

我的nginx vhost配置与我的prod服务器相同(但nginx.conf可能不同)

redis也是如此。 顺便说一句,在EC2上,我注意到有或没有Redis(相同的TTFB)的差异为0,我假设当有很多用户和缓存了很多文件时,Redis会产生差异。(我确信Redis正在工作,因为我可以看到添加的键,启用后var/cache文件夹仍然为空) 我没有尝试优化mysql配置,我假设AWS/RDS在默认情况下有足够好的配置

在监控之外,我可以读取(过去1小时):

  • RDS: ReadIOPS峰值:1.5-WriteIOPS峰值为1.15-CPU:最大值为 0.80%
  • EC2:CPU最大值:1.5%
所有的东西都在睡觉,或者我想知道我是否错过了一些重要的东西,也许我不能仅仅因为EC2是共享的(而不是保留的),就期待一个更好的TTFB?AWS因此在某些地方增加了延迟

编辑1:

我刚刚将RDS升级到db.r3.2xlarge(8CPU,64GB),现在显示主页需要3.1s(通讯CMS页面需要2.8s)。比我的服务器还多

编辑2:

我刚刚将RDS SSD升级为配置IOPS,而不是一般用途。现在是3.0秒。所以没有增强

你能确认服务器的大小对我的网站来说真的很大(只有一个用户访问主页!!)

编辑3:

现在我有了0.8s:-)由于惊人的AOE_配置文件,我发现瓶颈是Cmsmart_Megamenu。我有100多个分类,它做了一些奇怪的事情。每个类别127个查询!!所以超过10000个查询(每一页)!127个查询/cat几乎完全相同,就像这个查询重复了127次:

admin\u菜单上选择
main\u table
*作为
main\u table
WHERE(category\u id='356')

事实上,这并没有改变这个话题,现在更重要的是寻求帮助。我不是想解决这个问题(这可能是另一个话题)。我仍然想知道为什么EC2的性能较差,实际上我会在EC2服务器上保留这个模块,直到我理解为什么它的性能比我目前动力不足的prod服务器差(两者都有这个DB CPU消耗模块)

这可能是因为在我的prod服务器上总是有几个访问者连接在一起,所以mysql缓存的性能更好吗?在EC2上,当所有活动连接都关闭时,缓存将被删除,因此它必须访问数据库

这就是我要寻找的提示类型:-)


Thansk

我和admin_menutop表有同样的问题(我也在使用Cmsmart_Megamenu),NewRelic告诉我每个类别也有数百个查询


您说这是瓶颈,但没有提到解决方法:)。你能和我分享一下吗?

我和admin\u menutop表有同样的问题(我也在使用Cmsmart\u Megamenu),NewRelic告诉我每个类别也有数百个查询


您说这是瓶颈,但没有提到解决方法:)。你能和我分享一下吗?

你有安装php优化器吗?您可能还想安装new relic以确定问题所在。这不是您提出的问题(因此在评论中),但Magento有一个非常独特的性能配置文件。对于像您描述的这样的网站,您最好选择一位Magento VPS托管专家(Nexcess、MageMojo等)。当他们为您处理站点托管时,您可以仔细检查他们是如何部署Magento的,并在您空闲时了解您的Amazon配置有什么问题。我投票将此问题作为离题题来结束,因为Stack Overflow是一个问答站点。你的问题不是关于编程。也许你应该把它放在上面?@datasage:是的,我有Zend opcache(+Redis+memcache)。全部启用。我想如果你有一个没有活动的网站,那是没有帮助的。@Alan:这就是我目前的情况。我的prod服务器是由magento专家提供的。不过,我现在还是想管理好自己,参加AWS,这样我就有了更多的灵活性。我已经设置了相同的配置(通过从prod服务器读取所有文件),这就是为什么我想知道为什么性能最差。我不想断定EC2的性能很差,所以我想我错过了一些东西。你们安装了php优化器吗?您可能还想安装new relic以确定问题所在。这不是您提出的问题(因此在评论中),但Magento有一个非常独特的性能配置文件。对于像您描述的这样的网站,您最好选择一位Magento VPS托管专家(Nexcess、MageMojo等)。