jetty做嵌入式开发时,由于实际的工程中出现jetty在高并发的情况下,传输数据太多会导致性能下降的问题,所以我写了一个测试程序来模拟该情况。
模拟程序如下:
jetty服务端和客户端使用http交互,服务器都是万兆网卡,由于是内网,网络较好,带宽跑到1GB/s,功能为服务端读取1个1MB的文件到内存中,提供给客户端下载该文件,客户端发起http来下载,客户端使用的jetty-client的实现来下载该文件,客户端启动了400个线程,每个线程下载完文件之后休眠500ms再去下载,所以一个线程每秒能下载完毕2个文件,400个线程*2*1MB=800MB,这时带宽占用大概800MB,很明显还未跑满带宽,在此基础上再添加客户端线程数,反而导致整体性能降低,当把1MB的文件换为500KB文件时,能增加部分线程数,但是带宽占用也是很少的,还不到50%,系统响应慢。
怀疑是jetty在高并发的情况下,如果持续输出太多数据,导致性能下降。
这问题太纠结了。。。求高手解答