有一个mod_perl写服务器端程序。 我只使用一个进程共享apache worker mpm内存和~60个线程。 我使用锁来临时保护对共享内存的访问,1.7s中只有0.1s被locking。
问题是我得到相同的速度10个连续请求相比,10个并发请求。
我的压力脚本激发了n个重要的URL处理请求,每个请求之间有0.1秒的延迟。 括号中的数字是请求号码。
perl stressTestServer.pl n=1 DONE ( 0 ) > 1.778257 sek perl stressTestServer.pl n=5 DONE ( 3 ) > 8.71926 sek DONE ( 0 ) > 8.85207 sek DONE ( 1 ) > 8.976061 sek DONE ( 4 ) > 9.119936 sek DONE ( 2 ) > 9.218552 sek perl stressTestServer.pl n=10 DONE ( 9 ) > 8.840539 sek DONE ( 7 ) > 9.130133 sek DONE ( 8 ) > 9.271598 sek DONE ( 6 ) > 9.873936 sek DONE ( 5 ) > 10.02668 sek DONE ( 4 ) > 18.169001 sek DONE ( 3 ) > 18.432776 sek DONE ( 2 ) > 18.617186 sek DONE ( 1 ) > 18.775277 sek DONE ( 0 ) > 18.821972 sek
这个设置是否正常? 这是在双核上testing的。 移动到四核,我可以期待什么性能差异与此设置? 我很难相信更多的内核将在这里帮助..感觉像序列化执行可能比并发线程更有效率。
txinput!