首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole 1.7.5压测到一定量之后服务器端主进程状态变为Rsl,请求无法再响应
首先,我的客户端压测脚本是@Range 的bench.php 修改的,基本上保证了原汁原味,没有大的改动 压测命令: {{{ ./bench.php -c 1000 -n 10000 -s tcp://ip.14:9001 -f short_tcp }}} 服务器端使用strace命令追踪程序,输出 {{{ 27649 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27648 msgsnd(1572912, {18, "L\0\0\0?\0\0\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27577 <... sched_yield resumed> ) = 0 27651 sched_yield( <unfinished ...> 27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27649 sched_yield( <unfinished ...> 27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT <unfinished ...> 27651 <... sched_yield resumed> ) = 0 27650 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27649 <... sched_yield resumed> ) = 0 27577 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27651 msgsnd(1572912, {17, "K\0\0\0?\0\3\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27650 sched_yield( <unfinished ...> 27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27577 sched_yield( <unfinished ...> 27651 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27650 <... sched_yield resumed> ) = 0 27649 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27648 sched_yield( <unfinished ...> 27577 <... sched_yield resumed> ) = 0 27651 sched_yield( <unfinished ...> 27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27649 sched_yield( <unfinished ...> 27648 <... sched_yield resumed> ) = 0 27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT <unfinished ...> 27651 <... sched_yield resumed> ) = 0 27650 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27649 <... sched_yield resumed> ) = 0 27648 msgsnd(1572912, {18, "L\0\0\0?\0\0\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27577 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27651 msgsnd(1572912, {17, "K\0\0\0?\0\3\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27650 sched_yield( <unfinished ...> 27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27577 sched_yield( <unfinished ...> }}} 大概到5k左右的请求时,主进程状态就是Rsl了 切换回1.7.4就没有问题了 我不懂这个是因为什么原因
发布于10年前 · 1 次浏览 · 来自
提问
泰
泰迪熊~
首先,我的客户端压测脚本是@Range 的bench.php 修改的,基本上保证了原汁原味,没有大的改动 压测命令: {{{ ./bench.php -c 1000 -n 10000 -s tcp://ip.14:9001 -f short_tcp }}} 服务器端使用strace命令追踪程序,输出 {{{ 27649 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27648 msgsnd(1572912, {18, "L\0\0\0?\0\0\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27577 <... sched_yield resumed> ) = 0 27651 sched_yield( <unfinished ...> 27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27649 sched_yield( <unfinished ...> 27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT <unfinished ...> 27651 <... sched_yield resumed> ) = 0 27650 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27649 <... sched_yield resumed> ) = 0 27577 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27651 msgsnd(1572912, {17, "K\0\0\0?\0\3\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27650 sched_yield( <unfinished ...> 27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27577 sched_yield( <unfinished ...> 27651 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27650 <... sched_yield resumed> ) = 0 27649 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27648 sched_yield( <unfinished ...> 27577 <... sched_yield resumed> ) = 0 27651 sched_yield( <unfinished ...> 27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27649 sched_yield( <unfinished ...> 27648 <... sched_yield resumed> ) = 0 27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT <unfinished ...> 27651 <... sched_yield resumed> ) = 0 27650 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27649 <... sched_yield resumed> ) = 0 27648 msgsnd(1572912, {18, "L\0\0\0?\0\0\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27577 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27651 msgsnd(1572912, {17, "K\0\0\0?\0\3\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27650 sched_yield( <unfinished ...> 27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT <unfinished ...> 27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable) 27577 sched_yield( <unfinished ...> }}} 大概到5k左右的请求时,主进程状态就是Rsl了 切换回1.7.4就没有问题了 我不懂这个是因为什么原因
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2016-01-10
T
TMan - Jeans
是1.7.5的BUG。请关闭消息队列重试一下。
赞
0
回复
2016-01-22
〆
〆灬嗨!星期五的羊
弱弱的问下,客户端压测脚本@Range 的bench.php 是什么吗
赞
0
回复
2016-01-23
d
duzh
用于做性能压测。请使用1.7.6,已经解决了此问题。
赞
0
回复