1个端口比如tomcat的8080,高并发访问时,端口仅1个这会不会成为瓶颈?


据我了解端口这一层是会排成两个队列,一个读的队列,一个写的队列,那高并发的时候会怎样?1个端口够吗?

瓶颈在哪里?

网络 web 网站 tcp-ip 高并发

空空D木偶 9 years, 5 months ago

你得知道端口存在的意义。 端口是用来标识进程的,和高并发没啥关系。你前面挂了一个nginx,不还是一个80端口吗?!

那么高并发和什么有关系呢?这个就有些复杂了,都是tcp调优的相关事情,什么syn队列啊 accept队列啊,进程可打开文件数啊啥的。另外还和你的业务有很大关系。

太复杂了,我都不知道该说些什么了!

要提高连接数的话,可以看看这篇 C1000K的文章

我还不想死啊 answered 9 years, 5 months ago

所以需要一个前端比方说 nginx 做负载均衡

而在tomcat的server.xml中需要修改Connector配置

maxThreads:监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到等待队列中的请求数,超过这个数的请求将不予处理.默认值为100

还需要注意的是你的内核参数 fs.file-max ,这个系统级硬限制是Linux系统在启动时根据系统硬件资源状况计算出来的最佳的最大同时打开文件数限制。所有用户级的打开文件数限制都不应超过这个数值

Linux系统用户级打开文件数的软限制和硬限制可通过/etc/security/limits.conf修改,默认是1024

闭嘴、基佬。 answered 9 years, 5 months ago

Your Answer