我在Magento 2.2.2中拥有一个电子商务网站,并且几乎每天都在关闭。每当它出现故障时,用户获得网站的时间就会太长,而且响应速度也很慢,并且永远不会加载。要使网站重新工作,我必须重新启动服务器,然后它才能工作。
服务器上的总空间为50GB。其中整个网站大约有18GB(11GB媒体文件,然后是供应商文件等)。这是我无法弄清原因的事情:
a。)服务器显示已使用了33GB,尽管它应该仅显示已使用18GB。我检查了所有地方,但找不到额外消耗15GB空间的东西。完整的HTML文件夹只有18GB。
b。)当我检查日志文件时:它显示以下内容:
警告:为临时表分配的内存大小大于innodb_buffer_pool_size的20%。请更新innodb_buffer_pool_size或减小批处理大小值(这将减少临时表的内存使用量)。当前批处理大小:100000;分配的内存大小:280000000字节; InnoDB缓冲池大小:1073741824字节。
我已经将innodb_buffer_pool_size设置为2GB。但是,这个问题仍然存在。
该服务器是Amazon EC2服务器,Magento处于生产模式。可以分配100GB而不是50GB来解决问题吗?
将innodb缓冲池大小增加到10GB,并且日志不再显示错误,但是服务器每天仍然关闭。由于我们服务器上的RAM只有4GB,这可能是主要原因吗?因为每个人都建议至少8GB RAM?
答案 0 :(得分:1)
尝试以下方法。
Magento2具有较大的日志文件和缓存系统。 var文件夹中的文件可能会增加。 但是仍然需要检查您的站点是否属于3000多种产品,这些产品带有用于产品的大尺寸图像,并且所有这些都存储在服务器本身中。
我可以提供的建议,如果您的站点上有更多我已经提到更好的产品,则必须使用CDN以获得更好的性能。因此,整个图像将由第三方处理。 接下来是您必须设置云状耀斑,以避免停机时间错误或客户副作用。您可以使索引页在服务器关闭时加载。显然,您必须编写脚本来在站点关闭时自动重新启动。
在服务器端检查php的内存大小,最好将其分配给2G。
在Mysql端:检查其是否进行睡眠查询。如果它是通过您的自定义扩展区域生成的,请您的开发人员优化代码。 例如:可能是传递单个项目“收集”的代码。
您可以使用nurelic之类的工具
如果在您的开发人员区域中一切都很好,请尝试通过使服务器端的内存限制达到mysql killing等来优化站点。
同时,虽然magento是电子商务领域的重要平台,但默认情况下它具有更大的覆盖范围。最好避免从活动站点中删除不需要的模块,例如禁用尚未使用的核心模块。
对于普通站点,使用16gb RAM,
答案 1 :(得分:0)
重新启动mysql以使其生效? 另外,您需要将该缓冲区设置为20971520000,即20GB左右。 Magento使用大量会话和缓存。