【问题标题】:PHP script doing large amount of DNS queries - best way for handling it执行大量 DNS 查询的 PHP 脚本 - 处理它的最佳方式
【发布时间】:2016-02-29 18:18:18
【问题描述】:

我有一个每周运行一次的作业并检索一堆 700 个主机名。我需要将它们翻译成 IP 地址。我的第一个实验是调用 php 原生函数“dns_get_record”,将结果存储到数据库中。

由于要执行的 dns 查询数量,该脚本使我的服务器冻结,也许来自 DNS 支持的人认为它受到了攻击。

现在我正在考虑将这个查询传播到整个 6 小时,可能是脚本启动后的 12 小时。所以我想在 foreach 循环结束时使用 sleep(30) 。这是最好的方法吗?

您还有其他建议可以减轻我的服务器和 DNS 的负担吗?

谢谢

【问题讨论】:

  • unix.stackexchange.com/questions/20784/…将此操作移到shell脚本或其他东西中
  • 谢谢,但我想继续使用 PHP。即使 shell 脚本可以以更好的性能做到这一点,我也需要减少每秒的查询量,以便轻松而不影响我的 DNS。

标签: php mysql dns long-running-processes dns-get-record


【解决方案1】:

将上次查询的时间保存到数据库,然后使用此列表查询您的 DNS 列表?甚至需要使用 shell 脚本来运行 php 脚本,例如每 10 秒等。使用该脚本,您可以检查最后一次查询时间,如果超过 30 秒,则重新进行查询等...

【讨论】:

  • 似乎是一个不错的解决方案。将每个主机名的查询时间存储到数据库中,然后检索最后一个查询字段高于 7 天的第一个主机名并尝试解析它,更新最后一个查询时间。这是你的建议吗?
  • 是的,类似的。您可以从中制作出许多不同的场景。
  • 已实施!通过 crontab 每 5 分钟执行 2 次 DNS 查询。我在两个小时内解决了整个数据库。柔软的!谢谢
猜你喜欢
  • 2023-03-21
  • 2011-10-14
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2011-02-26
  • 2020-01-09
相关资源
最近更新 更多