tomcat网络处理线程模型( 四 )

  • ③ 测试效果windows 和linux 机制不一样
一台双核4g的虚拟机 , 里面已经安装好了jdk8 。上边代码的jar上传到虚拟机上 。
java -jar web-demo-1.1.0.jar --­­server.tomcat.maxThreads=10 --server.tomcat.maxConnections=2 --server.tomcat.acceptCount=3
tomcat网络处理线程模型

文章插图
 
jmeter加载上边写的测试脚本 , 修改服务器IP

tomcat网络处理线程模型

文章插图
 
linux环境下 , 最大连接数是2 , acceptCount=3 , 来了10个线程进行操作 , 每次操作2个 , 最后应该处理5个 , 因为2+3 =5 , 但是linux有等待机制 。所以全部都处理完了 。

tomcat网络处理线程模型

文章插图
 
试试windows的环境下 , 启动命令跟linux一样 。最大连接数是2 , acceptCount=3 , 来了10个线程进行操作 , 每次操作2个 , windows确实就处理了5个 , 剩余的直接抛弃掉了 。

tomcat网络处理线程模型

文章插图
 
  • ④ 1000个线程访问linux的程序
最大线程设置成4个 。
java -jar web-demo-1.1.0.jar --server.tomcat.maxThreads=4
cpu利用率60.9% 有异常数据0.27% , 响应的平均时间21s 。

tomcat网络处理线程模型

文章插图
 

tomcat网络处理线程模型

文章插图
 
最大线程设置成200个 。
java -jar web-demo-1.1.0.jar --server.tomcat.maxThreads=200
cpu利用率很高 , 但是异常数据很高 。吞吐量变高99.9/sec 。

tomcat网络处理线程模型

文章插图
 

tomcat网络处理线程模型

文章插图
 
就是不停的更换这个maxThreads 查看jmeter的结果 , 因为我是虚机很难很好的测试出结果
PS:请求多 , CPU占用率高了 , 如果能接受很慢的响应 , 就加大 。否则就集群分流认清现实 , 优化代码才是王道 , 配置只能是锦上添花!tomcat基本不是单独使用的 , 基本要跟Nginx配合的 , ngxin负责限流+日志记录 。

【tomcat网络处理线程模型】


推荐阅读