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先容与使用要领的详细内容,更多请关注本网内其它相关文章!