gpt4 book ai didi

php - 为什么我在运行脚本来屏幕抓取网页时得到 "zend_mm_heap corrupted"?

转载 作者:搜寻专家 更新时间:2023-10-31 21:34:42 27 4
gpt4 key购买 nike

当运行脚本来筛选 抓取 网页时,我遇到“zend_mm_heap 已损坏”。请让我知道如何解决此问题。

最佳答案

我假设您正在使用带有 mod_php 的 Apache 来回答这个问题。

当 apache 生成太多实例耗尽所有 RAM,然后尝试使用磁盘交换,然后响应会一直减慢直到它最终崩溃,并且它会 SEGFAULT 时,我遇到了这个错误。重新启动 apache 服务将使一切恢复正常,直到几分钟或几小时后它再次沸腾。

这是一篇对我的情况有所帮助的文章: https://servercheck.in/blog/3-small-tweaks-make-apache-fly

基本上,查看每个 apache 进程使用了​​多少(可能是您服务器上的 httpd 或 nginx):

ps aux | grep 'apache' | awk '{print $6/1024 " MB";}'

找出每个进程的平均 MB 使用量,在我的实例中,每个进程约为 40MB。

接下来找出您的 Apache 可用的 RAM 量。我的服务器大约有 3.8GB 的​​ RAM 可供 Apache 使用。所以我将 3800 MB 除以 40 MB,得到 95。所以我将我的 MaxClients 设置为 95。到目前为止,自从我实现了这些更改以来,我还没有看到 apache 在我的服务器上失控。当它是 150 时,它每 8 小时左右崩溃一次,当它是 250 时,它每半小时下降一次。

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 95
MaxRequestsPerChild 100
</IfModule>

正如其他人所建议的,我曾尝试将输出缓冲从 4K 调高到 128K,但错误并没有太大改善。如果您没有任何更长的运行进程,也可以尝试调低您的“超时”参数。在我的网络中,处理和交付的时间应该不会超过几秒钟。高(恕我直言)默认值 300 减少到 15 秒,这也有助于任何停滞的实例。

在此之前,我会看到负载接近 130 左右,系统应该没有响应,但其他一切都很好。您的问题可能只是您的 Apache mod_php 设置对您的服务器来说过于激进。

希望这对您有所帮助!

关于php - 为什么我在运行脚本来屏幕抓取网页时得到 "zend_mm_heap corrupted"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22762143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com