GA黄金甲

Swoole常用工具Demonster先容与使用要领

swoole常用工具demonster先容与使用要领

Swoole是一款常用的高性能网络框架 ,它的异步多历程模子和强盛的网络编程功效 ,使得它在Web效劳、游戏效劳等领域有着普遍的应用。然而 ,开发职员在使用Swoole历程中常;嵊龅揭恍﹩碌奈侍 ,例如:怎样排查Swoole历程故障、怎样剖析Swoole历程内存占用情形等等。这些问题关于Swoole的高效运行来说很是主要。因此 ,本文将向各人先容一款Swoole常用工具——Demonster。

一、什么是Demonster?

Demonster是一款开源的Swoole常用工具 ,它能够资助开发职员排查Swoole历程故障、剖析Swoole历程内存占用情形、并监控Swoole历程的状态等等。Demonster提供了一系列下令行工具和UI界面 ,闪开发职员可以利便地操作、审查和剖析Swoole历程的种种信息。

二、Demonster的装置

Demonster的装置很是简朴 ,只需要使用Composer即可。办法如下:

1.在项目根目录下建设composer.json文件 ,添加以下内容:

{
    "require": {
        "yueliangdali/demonster": "dev-master"
    }
}

登录后复制

2.在下令行中运行composer update下令下载并装置须要的库和依赖。

3.在nginx或apache等Web效劳器上设置一个虚拟主机 ,并将根目录指向Demonster项目的public目录。例如 ,在nginx效劳器上的设置:

server {
    listen 80;
    server_name demo.demonster.com;
    root /var/www/demonster/public;

    location / {
        index index.php;
        if (!-e $request_filename){
            rewrite ^/(.*)$ /index.php?$1 last;
            break;
        }
    }

    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/demonster/public$fastcgi_script_name;
        include        fastcgi_params;
    }
}

登录后复制

4.在Swoole项目中引入Demonster的命名空间和启动类即可最先使用。例如 ,在一个WebSocket效劳器中:

<?php
require_once __DIR__ . '/vendor/autoload.php';//加载Composer自动天生的autoload.php文件
use yueliangdalidemonsterDemonster;
use SwooleWebSocketServer;

$server = new Server("127.0.0.1", 9501);
$server->set([
    'worker_num' => 2,
    'task_worker_num' => 2,
    'daemonize' => false,
]);

Demonster::start();//启动Demonster

$server->on('open', function (Server $server, $request) {
    echo "server: handshake success with fd{$request->fd}
";
    $server->task('hello, task');//触发一个task使命
});

$server->on('message', function (Server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}
";
    $server->push($frame->fd, "this is server");
});

$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed
";
});

$server->on('task', function ($server, $task_id, $worker_id, $data) {
    echo "New AsyncTask[id=$task_id]" . PHP_EOL;
    $server->finish("$data -> OK");
});

$server->on('finish', function ($server, $task_id, $data) {
    echo "AsyncTask[$task_id] Finish: $data" . PHP_EOL;
});

$server->start();

登录后复制

三、Demonster的功效

1.展示效劳器的状态

Demonster提供下令demonster status ,可以显示效劳器的状态 ,包括:Swoole效劳器的死循环是否正在执行、已启动的Worker历程和Task历程数目、TCP和UDP毗连数等等。例如:

$ demonster status

                    _____              ____       
                   / ____|            / __       
                  | (___   ___  ___ _| |  | |_ __ 
                   ___  / _ / _  '__| |  | | '__|
                   ____) |  __/  __/ |  | |__| | |   
                  |_____/ ___|___|_|   ____/|_|   
                    
                      Swoole Server Status

Swoole version:4.4.17
 php version:7.2.24
  PHP memory:1.37MB
 
-----------------------------------------  
start at:2021-07-05 12:50:12
swoole version:4.4.17 (reactor_num:2, worker_num:2, task_worker_num:2)
listen:tcp://0.0.0.0:9501

---Processes---
 master  pid:  23291   status: start     memory: 1MB
   ├─worker  pid:  23295   status: start     memory: 2MB
   ├─worker  pid:  23296   status: start     memory: 2MB
   ├─task    pid:  23297   status: start     memory: 2MB
   ├─task    pid:  23298   status: start     memory: 2MB
   └─manager pid:  23294   status: start     memory: 2MB
 
---Connect Info---
TCP LiveConnections: 8
                 Not ESTABConnections: 0
            SWNotsTCP TimeWaitConnections: 0
              UDPLiveConnections: 0
                    Lastreloadtime: 2021-07-06 10:35:38
                           reload: DYNAMIC

登录后复制

2.剖析效劳器内存使用情形

Demonster提供下令demonster memory ,可以显示Swoole效劳器的内存情形 ,包括:历程数目、PID、内存占用情形等等。该下令还可以转达一个-c参数 ,用于对所有历程的内存占用情形举行统计和排序。例如:

$ demonster memory

                   _____              ____       
                  / ____|            / __       
                 | (___   ___  ___ _| |  | |_ __ 
                  ___  / _ / _  '__| |  | | '__|
                  ____) |  __/  __/ |  | |__| | |   
                 |_____/ ___|___|_|   ____/|_|   
                
            Swoole Server Memory Usage

Swoole version:4.4.17
 php version:7.2.24
  PHP memory:1.37MB
 
-------------------------------
Swoole worker process mask memory usage
PID       POW   Used(M)    RealUsed(M) Diff(M)
23295     22      3.860      1.426      2.434
23296     22      3.860      1.427      2.433

-------------------------------
Swoole task process mask memory usage
PID      POW   Used(M)    RealUsed(M) Diff(M)
23297    22      3.860      1.926      1.934
23298    22      3.860      1.925      1.935

-------------------------------
Swoole manager process mask memory usage
PID          Used(M)   %  RealUsed(M) % Diff(M)
23294      1.038M    0.06%      1.124M 0.07% 85.76KB

-------------------------------
Total Memory Usage
           Used(M) RealUsed(M)
Total       33MB      13.77MB
Avg(each)   3.7MB     1.53MB

登录后复制

3.Demonster UI界面

除了下令行工具外 ,Demonster还提供了一个UI界面 ,利便开发职员在Web端对Swoole效劳器举行监控和治理。

UI界面的会看法址为:http://yourhost.com/demonster/index.php(需要凭证现实的Web效劳器设置举行修改)。翻开后可以看到一个简朴的页面 ,其中显示了Swoole效劳器的状态和历程信息 ,同时提供了历程监控和CPU、内存情形剖析等功效。

四、小结

Demonster是一款很是适用的Swoole常用工具 ,它提供了富厚的功效和简朴易用的操作界面 ,利便了开发职员在Swoole开发历程中的排错和监控事情。同时 ,Demonster是一个开源、高可靠的工具 ,值得开发职员在Swoole开发中加以实验和使用。

以上就是Swoole常用工具Demonster先容与使用要领的详细内容 ,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理 ,版权争议与本站无关 ,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度 ,请读者仅做参考。本文接待转载 ,转载请说明来由。若您以为本文侵占了您的版权信息 ,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息 ,请您连忙联系GA黄金甲实时修正或删除。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五 ,9:30-18:30 ,节沐日休息

QR code
【网站地图】【sitemap】