【问题标题】:PHP Uptime Percentage Check - Help NeededPHP 正常运行时间百分比检查 - 需要帮助
【发布时间】:2014-12-11 16:42:49
【问题描述】:

我正计划开发一个脚本来检查我的服务器的正常运行时间百分比。正常运行时间百分比是指大约 99.7% 或类似的东西。正如每个虚拟主机都说他们提供 99.9% 的正常运行时间,我想编写一个脚本来实际检查正常运行时间百分比实际是多少。

我确实知道如何以秒或 hr-min-sec 为单位获得正常运行时间。为此,我使用下面的脚本。

$uptime = shell_exec("cut -d. -f1 /proc/uptime");

但是,我没有得到的是如何计算正常运行时间百分比,如 99% 正常运行时间或类似的东西。我正在寻找一些想法和帮助。

如果你们分享一些意见和帮助,而不是对这个问题投反对票,我会非常高兴。

P.S.:我已经检查过这个问题:Measuring server uptime 但这并不能回答我的问题。

【问题讨论】:

  • 嗯。计算从开始检查开始的秒数。然后做一个比较,比如 tot_seconds_calculated : 100 = uptime_seconds : x 。然后进行数学计算
  • 命令 uptime 返回自机器启动以来的时间量,而不是站点可用的时间量。
  • 啊!我知道我应该运行什么命令?那就是我需要你们的帮助。谁能写一个简单的 sn-p 来展示你希望我如何实现。
  • 我不知道一种可靠的方法来做到这一点。即使您的网络服务器 100% 的时间都在运行,该网站仍可能由于众多问题而定期不可用。
  • 我唯一能想到的就是编写一个脚本,从您的站点请求一个页面,并简单地记录服务器是否响应。您必须非常频繁地从不同位置的多台服务器运行脚本才能可靠地确定正常运行时间。

标签: php unix server


【解决方案1】:

常见的方法是从外部监控服务器,因为服务器将很难判断自己的可见性。这就像试图在没有镜子的情况下以第三人称观察自己。

如果您不关心服务器互联网连接的停机时间,您可以在本地监控您打开的端口,并获取端口打开和关闭时间的百分比。这大约是您获得的自我绩效评级。

【讨论】:

  • 我明白了。所以这是不可能的。
  • 如果你能真正代理一个请求并返回到你自己的服务器,你就可以完成它。我对网络不感兴趣,所以我不知道网卡在收到来自自身的外部请求时如何响应。
  • 我不知道该怎么做。
  • 它提供了很难知道你想要什么。这些是我们为您提供的抽象解决方案,希望您能从中得出自己的解决方案。
  • 我明白了。我也有自己的想法,但这既不可行也不明智的解决方案。我想在一个 php 文件上设置一个玉米作业(每分钟),它将尝试访问一个页面,如果标题为 200,则将一些标志插入数据库。然后以某种方式从 db 计算。坏主意我知道! :(
【解决方案2】:

Memcache::getStats — 获取服务器的统计信息

这是一个页面,其中包含一个现成的脚本,用于返回所有可用的统计信息以及用于获取某些值的代码 sn-ps。您需要的一切都在这里:

http://php.net/manual/en/memcache.getstats.php

您正在寻找的特定值在以下位置返回:

uptime   (Number of seconds this server has been running)

正如 ceejayoz 所指出的,必须安装 Memcache。它不是原生 PHP。您可以使用您的服务器 O/S 名称谷歌安装 php memcache。

【讨论】:

  • memcache 安装在哪里?
  • Re:您的编辑,即使安装了 Memcache,Memcache 服务器也可能是完全不同的机器,因此它的统计信息对此毫无用处。建议安装 Memcache 只是为了获取服务器的正常运行时间统计信息也是很疯狂的,尤其是,因为它与服务器的内置 uptime 命令具有相同的缺点 - 它只是告诉您自上次重启以来多久服务。
  • 它在适当的情况下工作。我明白你的意思了。我们在这里使用它作为我们日常 I.T. 的一部分。统计报告,没有问题。但是,是的,其他人的里程可能会有所不同。
猜你喜欢
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多