何时显示失败的鲸鱼?

时间:2011-01-29 04:50:37

标签: php

我如何或何时知道我的网络应用程序无法处理流量/活动并显示“失败的鲸鱼”类型的页面?

4 个答案:

答案 0 :(得分:8)

如果您只想在服务器处于高负载时显示错误,可以尝试sys_getloadavg()

<?php
    $load = sys_getloadavg();
    $max_load = 95;

    if($load[0] >= $max_load){
        // Show failwhale
    }else{
        // Do stuff
    }
?>

答案 1 :(得分:3)

如果您的Web服务器无法从其他重要服务器获得有效响应,无论是关键Web服务,身份验证服务器,数据库服务器等,这似乎都是类似故障鲸鱼的好时机。< / p>

答案 2 :(得分:3)

这是我过去与同事讨论的内容。您无法预测流量何时会过高。最终你的服务器将会崩溃。您可能会让服务器启动“故障鲸鱼”页面并切换到您的操作站点。然后,如果您的服务器在负载下停机,它可能会自动返回“失败”页面。

当服务器发生故障时,您的服务器无法再处理流量......这就是识别问题的难点所在。 Matt V的答案可行,但您必须添加某种心跳检查,它仍然是一个手动过程来中断“OK”响应。

答案 3 :(得分:1)

由于您需要查看各种问题,我会说从错误处理开始:

http://www.php.net/manual/en/book.errorfunc.php

查看数据库供应商的连接文档(例如连接数太多);这是MySQL:

http://php.net/manual/en/function.mysql-error.php

http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html

假设您的服务器可以响应负载(并且用户没有获得408请求超时),它应该是您的代码中可检测到的东西,而不是服务器本身周边的错误(服务器内存不足,例如)。您还可能发生其他超时,例如响应缓慢的Web服务等等。

此外,如果你弄明白的话,可以向Facebook团队下线。