GatewayWorker的部署及测试

 

===================================环境要求======================================


curl -Ss https://www.workerman.net/check | php

PHP Version >= 5.4.0 [OK]
Extension pcntl check [OK]
Extension posix check [OK]

正确:
yum install php-process
错误:
yum install php74-php-process

===================================手册======================================
【部署手册】


【workerman手册】
http://doc3.workerman.net/

【GatewayWorker手册】
http://doc2.workerman.net/

=======================================调试==================================
【调试】

线上地址
http://coolaf.com/tool/chattest


ws://xxx:8181/?id=1

发送
{"type":3,"data":{"token":"xxx","id":1,"fromUserName":"Suneo Honekawa","fromUserImg":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=323958783063001&height=500&width=500&ext=1642213652&hash=AeQD5mATg8V6PvcH584","content":"It's ok ","fromTime":1639625370123,"fromUserId":2}}
服务器返回
{"type":3,"data":{"token":"xxx","id":1,"fromUserName":"Suneo Honekawa","fromUserImg":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=323958783063001&height=500&width=500&ext=1642213652&hash=AeQD5mATg8V6PvcH584","content":"It's ok ","fromTime":1639625370123,"fromUserId":2}}


【启动/重启/状态】
php /pathtostart.php start
php /pathto/start.php restart
php /pathto/start.php status
【daemon守护进程启动】

php /pathto/start.php start -d
php /pathto/start.php restart -d


【日志】


======================================压力测试===================================


【压力测试】

【导语】
workerman压力测试(测试工具benchmark)
大约支撑3000并发(3000客户端同时发消息)
瓶颈在memcache连接池数量(配置可修改)


【步骤】
cd /data/temp/workerman-bench
./applications/Benchmark/benchmark -n1 -h10000 -c2800 -p8181 127.0.0.1
命令含义是2800并发线程,连接127.0.0.1:8181端口,然后每个线程并发连续发送10000个hello\n ,服务端收到hello\n后返回一个hello\n
基本无压力
./applications/Benchmark/benchmark -n1 -h10000 -c3000 -p8181 127.0.0.1
命令含义是3000并发线程,连接127.0.0.1:8181端口,然后每个线程并发连续发送10000个hello\n ,服务端收到hello\n后返回一个hello\n
出现memcache连接拥挤,报错如下
Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110)


【结果】
目前瓶颈主要在于memcache连接池的建立,不过也已经足够支持2800-3000的并发

【其他】
重新调整Memcached的启动参数,增加-c参数来提高连接数量。默认为1024,可以逐步增加以找到最佳数值。我设置为2048。
memcached -d -m 1024 -c 4096 -l 127.0.0.1 -p 11211 -u root

/usr/bin/memcached -d -m 1024 -c 4096 -u memcached -p 11211

参考 https://cloud.tencent.com/developer/article/1644184

======================================问题===================================


1. Please install posix extension. See http://doc3.workerman.net/appendices/install-extension.html
yum install php-process

2. 发生错误: undefined,websocket连接已断开!!!
检查端口开放


firewall-cmd --zone=public --add-port=1239/tcp --permanent &&
firewall-cmd --zone=public --add-port=8282/tcp --permanent &&
firewall-cmd --zone=public --add-port=3000/tcp --permanent &&
firewall-cmd --zone=public --add-port=3001/tcp --permanent &&
firewall-cmd --zone=public --add-port=3002/tcp --permanent &&
firewall-cmd --zone=public --add-port=3003/tcp --permanent


systemctl restart firewalld

3. 收发图片的问题


walkor 2015-02-07
目前没有这个接口,需要自己开发
最简单的办法是通过传统的网页upload给nginx或者apache服务器,然后返回个url,workerman转发这个url,展示时放到网页img标签里面,实现图片发送展示

https://www.workerman.net/q/231

posted @ 2022-10-11 14:13  风不会停息7  阅读(31)  评论(0)    收藏  举报