php - 使用php监控apache的负载

标签 php apache apache2

更新:感谢所有给出的答案,但它们都是关于系统负载,而不是 apache。

我的目标是了解,在我的 php 脚本(模板脚本)中,当 apache 负载较高并且最好在 lighttpd 上 fork 一些流量时,这只是为了长轮询并减轻 apache 的负载.

大家好,之后this question我已经开始在我的服务器上使用 lighttpd 进行长轮询服务,以免对 apache 和数据库造成此类请求。

然后,我开始将 lighttpd 也用于静态内容(图像、css、js 等)。

所以,实际上,我有由 apache 提供的 example.com,以及由lighttpd 提供的 polling.example.com,两者都使用 memcache 来减少数据库命中。

在 apache 中,我设置了代理模块来代理所有对 example.com/polling/* 的请求,网址为 polling.example.com/*

现在,我想知道是否有一种方法可以在 php 中检索 apache 服务器负载,以便在 apache 负载较高时重定向 lighttpd 上的其他 ajax 请求。

我的意思是,类似:

<?php
$apache_server_load = /*hot to retrieve this value?*/;
if($apache_server_load >= $my_defined_max_load){
    $ajax_domain = '/polling';
}else{
    $ajax_domain = '';
}
?>
<script>
    [...]
    $.ajax({
        url: '<?php echo $ajax_domain; ?>/mypage.php',
        [...]
    });
    [...]
</script>

编辑我在 Debian 上运行

p.s:我也想听听这个解决方案是否是一个不错的方法,但这将是另一个问题..如果您愿意,请随时发表评论。

最佳答案

看看mod_status 。设置完成后,您将需要请求并解析

http://example.com/server-status?auto

您可能希望将结果缓存至少几秒钟,而不是对每个传入的请求重新执行相同的请求。

关于php - 使用php监控apache的负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821008/

相关文章:

javascript - JSON 对象到 JavaScript 数组的转换

php - 无法让 mysql 查询使用双引号或单引号

apache - 如何使用带有 centos7/httpd 基本镜像的 Docker 将 EnvironmentFile 指令添加到 systemctl

php - 如何为每个目录设置 Php 的 auto_prepend_file 指令?

Mysql服务器占用CPU 500%

apache - htaccess 将所有请求重定向到index.php(子文件夹除外)

php - Symfony2 - 如何从另一个 Controller 渲染 View

php - 使用 PHP 转换 delphi TColor

java - FTP 客户端 listFiles() 在某些机器上工作

python - Python 中的函数属性