PHP检测服务器是否宕机

ping命令行指令检测:

/**
 * PHP命令行ping
 * @param [str] $address 域名或者IP
 * @return [arr] ['status'=>1|0,'data'=>'响应信息']
 */
function pingAddress($address) {

    if(preg_match('/WIN/', PHP_OS)){
        // Windows 服务器下
        exec("ping -n 1 $address", $output, $return_var);
    }else{
        // Linux 服务器下
        exec("ping -c 1 $address", $output, $return_var);
    }

    $output = implode(';',array_filter($output));
    if(preg_match('/Reply from/', $output)){
        preg_match('/Reply[\s]+from[\s\S]+:([\S\s]+);/U', $output,$match);
        $match = $match[1];
        $msg = trim($match);
        if(preg_match('/time/', $msg)){
            $status = 1;
        }else{
            $status = 0;
        }
    }else{
        $msg = $output;
        $status = 0;
    }

    // 解析响应描述信息
    $data = array('status'=>$status,'data'=>$msg);
    return $data;
}

Linux查看机器当前fpm的子进程数:

while :; do ps aux|grep -c php-fpm;sleep 1;done

3G书城默认FPM配置:

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /data/log/weblog/php-fpm.log
# 能打开的最大文件描述符
rlimit_files = 4096
[www]
# FPM监听端口
listen = 127.0.0.1:9000
user = nobody
group = nobody

# 设置进程管理器如何管理子进程 - 动态
pm = dynamic
# pm 设置为dynamic时表示最大可创建的子进程的数量
pm.max_children = 400
# 启动时创建的子进程的数量
pm.start_servers = 20
# 所需的最小空闲服务器进程数
pm.min_spare_servers = 10
# 所需的最大空闲服务器进程数
pm.max_spare_servers = 90
# FPM 状态页面的网址
pm.status_path = /phpfpm_status
# 为单个请求提供服务的超时,之后工作进程将处理该请求被清理
request_terminate_timeout = 30s
# 能打开的最大文件描述符
rlimit_files = 4096

 

转载于:https://www.cnblogs.com/xuweiqiang/p/10844249.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值