我如何或何时知道我的网络应用程序无法处理流量/活动并显示“失败的鲸鱼”类型的页面?
答案 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团队下线。