什么是并发:系统同时处理的 request或者 事务数 我们称之为并发.


          然而并发数由什么决定,却是众说纷纭,我归纳总结由以下几个因素共同决定:

 因素一:服务器网络带宽

 因素二:服务器系统内存(注意是内存不是硬盘哦)

 因素三:web容器

 因素四:程序代码

 

1:服务器网络带宽

       假如你的服务器带宽是5M,如果你的http求头是8k,那么你的服务器最大并发是 5M/8k =640


2:操作系统内存

        假如你的操作系统内存是8G,如果你的每个请求占用内存256K,那么你的服务器最大支持并发数就是8G/256K=32758。这就是为啥购买服务器,内存越大,配置越高 支持的并发数越大的原因(当然money越多)。


3:web容器

       web容器的选择和配置也是至关重要的,比如说tomcat 的 baseio 和nio的区别就很大,tomcat配置一般启用的是线程池,maxThreads 一般配置为操作系统支持的最大并发数


4:程序代码

        程序代码放到第四才介绍,可见他的重要性,做了这么多年的程序猿,以前要是想提高并发,我总是抓破头皮的想如何提高代码质量,其实他别不那么重要(也许这样说你会感到很沮丧),更直接的且有效的方式就是提高服务器的配置即。但是,代码质量也是起着不可小觑的作用的,通常在所有的硬件条件都确定的情况下,入门级测试并发工具是 loaderrunner,我们通常挑选系统常用且耗资源的请求来测试,即可得到我们软件的并发量了。


        纠错:查询一些资料,介绍说系统并发数是65535,这个认识是不正确的。65535是2的16次方的值。操作系统的端口是用一个16位的二进制表示,因此65535代表的是操作系统的端口数,0-1023端口属于保留端口,不对外开放使用。

 小知识:

FTP 默认端口    21

HTTP默认端口   80

SMTP默认端口   25

TCP默认端口    22

Telnet默认端口       23


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐