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[sS]+:([Ss]+);/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