首页 > 解决方案 > Magento 2 网站每天宕机,需要重启服务器

问题描述

我在 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?

标签: servermagento2

解决方案


试试下面的东西。

Magento2 有很大的日志文件和缓存系统。var 文件夹中的文件可能会增加。但是您仍然需要检查您的网站是否属于 3000 多个产品的高尺寸图像,并且您将所有这些都存储在您的服务器本身中。

我可以给出的建议,如果您的网站有更多我已经提到的更好的产品,您必须使用 CDN 以获得更好的性能。所以整个图像将由第三方处理。接下来是您必须设置云耀斑以避免停机时间错误或客户副作用。您可以在服务器关闭时加载索引页面。显然,您必须编写脚本以在站点关闭时自动重新启动站点。

在你的服务器端检查php的内存大小,你最好给2G。

在 Mysql 端:检查它是否进行睡眠查询。如果它通过您的自定义扩展区域制作,请您的开发人员优化代码。例如:可能是为单个项目获取传递“集合”的代码。

您可以使用像 nurelic 这样的工具

如果您的开发人员区域一切正常,请尝试使用服务器端进行内存限制 mysql 杀戮等来优化站点。

同时,magento 是电子商务领域的一个大平台,因此默认情况下它有更多的区域可以覆盖。最好避免来自您的活动站点的不需要的模块,例如禁用您尚未使用的核心模块。

对于一般网站使用 16gb RAM,


推荐阅读