# 线程池和非线程池性能差别 #

## 测试环境和环境部署 ##
路由器X86网关端：
CPU：Intel(R) Atom(TM) CPU D525 @ 1.80GHz
关闭防火墙的防止洪水攻击，vi /etc/config/firewall option syn_flood	 设置为0 重启防火墙，保证并发有效。
PC端：
CPU：Intel(R) i5 6500 虚拟机分配4g内存 2个处理器。
安装http_load工具，使用有线连接，模拟带二级路由器，排查wifi干扰因素。

## 线程数10，列队深度140 500并发情况如下 ##
131044 fetches, 500 max parallel, 3.22098e+07 bytes, in 100 seconds
245.794 mean bytes/connection
1310.44 fetches/sec, 322098 bytes/sec
msecs/connect: 309.054 mean, 15449.9 max, 0.489 min
msecs/first-response: 66.3067 mean, 13359.1 max, 1.154 min
110 bad byte counts
HTTP response codes:
  code 307 -- 130934
  
## 线程数10，列队深度140 100并发情况如下 ##
130323 fetches, 100 max parallel, 3.20595e+07 bytes, in 100 seconds
246 mean bytes/connection
1303.23 fetches/sec, 320594 bytes/sec
msecs/connect: 48.7826 mean, 3049.53 max, 0.418 min
msecs/first-response: 27.1129 mean, 861.733 max, 5.098 min
HTTP response codes:
  code 307 -- 130323

## 非线程池技术，500并发情况如下 ##
76474 fetches, 500 max parallel, 4.47741e+07 bytes, in 100 seconds
585.481 mean bytes/connection
764.739 fetches/sec, 447740 bytes/sec
msecs/connect: 424.454 mean, 31547.9 max, 0.416 min
msecs/first-response: 208.603 mean, 13304.7 max, 3.825 min
44345 bad byte counts
HTTP response codes:
  code 200 -- 76474


## 非线程池技术，100并发情况如下 ##
76954 fetches, 100 max parallel, 4.50544e+07 bytes, in 100 seconds
585.471 mean bytes/connection
769.54 fetches/sec, 450543 bytes/sec
msecs/connect: 2.89764 mean, 219.994 max, 0.357 min
msecs/first-response: 125.079 mean, 384.746 max, 9.661 min
36057 bad byte counts
HTTP response codes:
  code 200 -- 76953
  
## 总结 ##
500并发情况总结：
成功率99.9%，13w数据只有110个错误，链接平均响应309.054，http平均响应66.3067 ，并且也吞吐率比旧版wifidog大一倍
100并发低并发情况总结：
成功率99.9%，13w数据0个错误，链接平均响应48.7826，http平均响应27.1129 ，并且也吞吐率比旧版wifidog大一倍
优化总结，新版wifidog使用307跳转并且使用线程池，数据列队处理，减少创建线程开销，多线程处理数据。




