首先,我的客户端压测脚本是@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
27577 <... sched_yield resumed> ) = 0
27651 sched_yield(
27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT
27649 sched_yield(
27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT
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
27650 sched_yield(
27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT
27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
27577 sched_yield(
27651 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
27650 <... sched_yield resumed> ) = 0
27649 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
27648 sched_yield(
27577 <... sched_yield resumed> ) = 0
27651 sched_yield(
27650 msgsnd(1572912, {16, "J\0\0\0?\0\2\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT
27649 sched_yield(
27648 <... sched_yield resumed> ) = 0
27577 msgsnd(1572912, {5526, "P\0\0\0\0\0\0\0\6E`\377"}, 12, IPC_NOWAIT
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
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
27650 sched_yield(
27649 msgsnd(1572912, {19, "M\0\0\0?\0\1\0\0\0\0\0\0\0\0;{\"op\":\"role.crea"...}, 75, IPC_NOWAIT
27648 <... msgsnd resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
27577 sched_yield(
}}}
大概到5k左右的请求时,主进程状态就是Rsl了
切换回1.7.4就没有问题了
我不懂这个是因为什么原因