Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP检查网络连接或DB服务器上的负载?_Php_Mysql_Networking_Connection - Fatal编程技术网

如何从PHP检查网络连接或DB服务器上的负载?

如何从PHP检查网络连接或DB服务器上的负载?,php,mysql,networking,connection,Php,Mysql,Networking,Connection,我有两台服务器,X是web服务器(PHP),Y是数据库服务器(MYSQL), 如何监控X和Y之间的网络是否过载。 而且,有时候Y的反应非常慢!!!如何检查web服务器端(PHP端)的负载,以查看DB服务器是否过载,或者这两个服务器之间的连接是否不能满足此负载 感谢您的帮助最快的方法是,通过SSH登录计算机,并使用CLI工具,如htop或top检查当前负载,但是,如果您有多台执行不同任务的服务器,那么安装某种类型的监控来收集有关负载和使用情况的指标和获取信息是有意义的,有很多复杂的工具,如Gang

我有两台服务器,X是web服务器(PHP),Y是数据库服务器(MYSQL), 如何监控X和Y之间的网络是否过载。 而且,有时候Y的反应非常慢!!!如何检查web服务器端(PHP端)的负载,以查看DB服务器是否过载,或者这两个服务器之间的连接是否不能满足此负载


感谢您的帮助

最快的方法是,通过
SSH
登录计算机,并使用
CLI
工具,如
htop
top
检查当前负载,但是,如果您有多台执行不同任务的服务器,那么安装某种类型的监控来收集有关负载和使用情况的指标和获取信息是有意义的,有很多复杂的工具,如Ganglia、Munin或Nagios所述,一个选项是在MySQLi中指定一个timeout子句并使用。。。这样,如果它提前超时,你可以假设它已关闭。。。下面是一个超时为1秒的示例:

$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 1);
if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    // Connection timed out (most likely), so assume load too high
}
另一种选择是使用类似于监视所讨论的服务器的工具。然后,在尝试连接之前,快速编写一段代码检查Nagios的状态(这就像读取日志文件一样简单)

如果你真的很担心
/.
效应,你可以保留一份纯HTML格式的站点副本,然后在站点速度足够慢时切换到它(写一个cron作业来检查服务器负载,如果负载太高,切换到它,如果降得够慢,切换回)


但是,我不得不问,你为什么要这么做?为什么不让PHP优雅地失败呢?修复负载问题比编写所有这些代码(这将增加负载本身)来检测负载要好。修复速度慢且效率低的部分,您就不必担心所有这些…

为什么要使用PHP?为什么不使用一个真正的监控解决方案(比如)?只是想知道最快的解决方案