您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman服務治理優化系列之連接數管理-根据连接数重启
发布时间:2022-01-14 23:14:16编辑:雪饮阅读()
workerman雖然很强大,但也還是需要有一些值得我們注意的地方,在服務器資源開銷方面這裏比如連接數對服務器資源的占用。
參考命令如:
[root@localhost workerman]# netstat -anpt | grep -i workerman
tcp 0 0 0.0.0.0:8283 0.0.0.0:* LISTEN 77787/WorkerMan: ma
tcp 0 0 192.168.31.53:8283 192.168.31.61:49886 ESTABLISHED 78709/WorkerMan: wo
tcp 0 0 192.168.31.53:8283 192.168.31.61:49841 ESTABLISHED 78709/WorkerMan: wo
tcp 0 0 192.168.31.53:8283 192.168.31.61:49730 ESTABLISHED 78709/WorkerMan: wo
或者如下命令:
[root@localhost workerman]# /www/server/php/73/bin/php -c /www/server/php/73/etc/php.ini index.php status
Workerman[index.php] status
----------------------------------------------GLOBAL STATUS----------------------------------------------------
Workerman version:4.0.26 PHP version:7.3.31
start time:2022-01-14 14:15:36 run 0 days 0 hours
load average: 0, 0.03, 0.05 event-loop:\Workerman\Events\Select
1 workers 1 processes
worker_name exit_status exit_count
none 0 2
----------------------------------------------PROCESS STATUS---------------------------------------------------
pid memory listening worker_name connections send_fail timers total_request qps status
78709 4M websocket://0.0.0.0:8283 none 3 0 0 5 0 [idle]
----------------------------------------------PROCESS STATUS---------------------------------------------------
Summary 4M - - 3 0 0 5 0 [Summary]
這裏假定我們以workerman所提供的這種狀態信息查詢結果為准,則是以該結果中的connections字段來調試優化,也就是連接數量了。
那麽假定我的優化策略是,連接數達到一定數量后則workerman中咱們所創建的進程就重啓下,則具體實現如:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8283');
// 客户端练上来时,即完成TCP三次握手后的回调
$worker->onConnect = function(TcpConnection $connection) {
$connection->onWebSocketConnect = function(TcpConnection $connection){
// 业务处理略
if(count(TcpConnection::$connections) > 5) {
// 连接数达到5后退出当前进程,主进程会自动重启一个新的进程
Worker::stopAll();
}
$connection->send(count(TcpConnection::$connections));
};
};
Worker::runAll();
測試時候可以使用瀏覽器多標簽結合,單標簽重複刷,我這裏有觀察過,貌似連接數是不會新增的,而不同的標簽一直開,則連接數貌似是一直增加的。每新開一個標簽訪問一次則連接數就增加一次。
关键字词:workerman,優化,服務,治理,連接數,重啓
相关文章
- workerman服務治理系列之workerman服务(脚本)自启动(开机
- workerman16进制与2进制字符串的转换(局限有点狭隘,應該
- http反向代理環境下获取真实ip(基於workerman)
- https在反向代理環境下获取真实ip(基於workerman實現)
- 基於workerman實現ws获取真實客戶端ip(反向代理環境下)
- workerman系列之nginx配置反向代理于workerman時候實
- workerman系列之tp5(thinkphp5)日志结合workerman使用
- workerman常见问题-php的几种回调写法-类的静态方法作
- workerman常见问题-php的几种回调写法-类方法作为回调
- workerman常见问题-php的几种回调写法-普通函数回调