精华内容
下载资源
问答
  • 带宽与并发数

    千次阅读 多人点赞 2019-01-05 15:17:39
    先说推出的结果 并发数= 带宽(Mb)*67.2/数包大小(KB) //注意这里的带宽 Mb ,发送出的数据大小单位是KB 下面为推到过程: 首先要分清一下单位 一个字节的等于八个位,位就是我们常说的二进制...

    白嫖不好,写作不易,各位的点赞和评论就是我的动力。

    目的:做并发测试的时候,我们要根据自己的带宽大小,看看网络能承受我们每秒到底能发送出多少个数据包,本篇博文是,介绍

    带宽与我们每秒最多发送的,数据包的数量关系。

    先说推出的结果   并发数 = 带宽*67.2/数包大小   // 注意公式的带宽单位 Mb (是小写b),发送出的数据大小单位是KB (是大写B)

    注意:等号左边叫并发数有点不太合适,准确来说是指,每秒钟发出的数据包数量!

    下面为推到过程:

    首先要分清一下单位

    一个字节的等于八个位,位就是我们常说的二进制,例如:

     1000 0100   这就是八个位(bit),也叫八个比特(bit) 又称一个字节   换算如下:

    1 Byte = 8 bit      //大B 与小b 的单位关系

    带宽的单位: bps   一般以b/s 表示。

     现在分析人们常说的 一兆带宽    即: 1Mb/s    分析这个单位,很明显这里的b  是指bit  (比特) 所以人们常说的带宽并不是字节,而是比特,  现在对一兆的带宽换算成字节来观察:

     首先要知道   比特:1Mb=1024Kb=1024*1024bit   注意这行写的是 比特 ,是位 ,是bit

                          字节:1KB=1024Byte                         注意这里写的是 字节,是Byte

    1Mb/s = (1024*1024) / 8 = 131072 Byte/s (字节) =  131072/1024 = 128KB/s

    可得  人们常说的带宽 其实在我们每秒下载的字节大小128KB/s  , 即  1Mb/s =128KB/s   这个公式要记住哦后面会用的

    再得  10兆带宽就是  1280KB/s  基本上每秒下载一兆大小的字节,这就是我以前总疑问为什么我家的带宽是是10兆,但是下载数据的时候为啥,就每秒一兆大小的字节速度,10兆带宽指兆比特以比特为单位,下载的为一兆的速度是字节为单位。现在如果你明白了,就证明前面看懂了。

     按照上面的公式 :一兆带宽是理论 上是   1Mb/s= 128KB/s   但是这是理论上的速度,

    实际要扣除12%的信息头标识等各种控制讯号   所以 

     1Mb/s = 112KB/s:

    2Mb/s = 225KB/s

    8Mb/s = 901KB/s

    10Mb/s= 1126KB/s

    我们的带宽分为上下行的,一般运营商都是希望客户能多下载数据,所以基本上我们用来下载的下行带宽是足够的,但是我们在测并发的时候往往是向外发送数据,所以我们的上行带宽要保证,下面以上行带宽举例:

    上行带宽 

    以  50兆的带宽举例    发送每个数据包大小为30KB 进行举例  

    首先我们要明白, 50兆的带宽即 50Mbps    带宽使用率并不是 完全占满才效果更好,而是像我们的电脑cpu 如果使用率越高,电脑越来卡,同样带宽也是,带宽占用越多就会越拥挤或者说越堵塞,经验来说,大约70%的使用率是稳定的网络

     50Mbps * 0.7  = 35Mbps  (70%的使用是稳定的网络)  
    所以  我们使用35兆的 带宽为稳定且高效的使用率,同时也说明35兆带宽的是我们最大并发的一个最适合的值,


      所以根据上面的公式换算下   35Mbps = 128 *35 KB/s   =  4480KB/s    这是之所以没用112*35  是因为,那些标识控制讯息,是传输必要的,要不然网络中怎么辨识和接收这些数据呢。

          在这里我的数据传输就是通过 base64编码的,由于base64的传输特性将原数据扩大三分之一  所以现在 30KB 大小的数据变为  40KB数据包(这里base64介绍的很好https://blog.csdn.net/vividboy/article/details/1237740),所以

     并发数为:     4480/40  =  112   即50兆的带宽数 在使用70%的资源情况下 ,发送的数据包大小为30KB,且传输的时候使用base64 进行转换后,最大秒并发数为112个   (大家千万理解我说的并发数,是针对我们自己上行带宽向外发送数据包的时候一秒钟我们的带宽,最多能发出多少数据包


    所以推一个小公式:(并不是很严谨,但我觉得这一组数据足够可以推算这个公式,感兴趣的朋友可以多算几组数据用来推算)
     带宽50Mbps 可以认为是 传30KB大小 秒并发为 112个

      并发数  肯定与带宽成正比 ,在带宽一定大小的前提下,  因为我们带宽越大也就说明我们每秒能发送的数据包越多。

    并发数  肯定与数据包大小成反比,在带宽一定大小的前提下,因为我们数据包越大,我们能发送出去的数据包个数就越小。

    设系数常量为X

    并发数 = 系数*带宽(Mb)/数包大小(KB)
    112 =  50 * X / 30
    x = 67.2
    所以
    并发数 = 带宽(Mb)*67.2/数包大小(KB) 

    大家千万注意我们推的公式单位是什么  带宽单位是Mb  比特为单位,KB 字节为单位。而且我们是在占用带宽70%的前提下!

    如果看官觉得有点用,点赞一下 鼓励一下我吧!
    欢迎添加公众号与您分享更多记录

    展开全文
  • 帆软并发数

    千次阅读 2019-02-22 14:10:00
    并发用户:同时向服务器发送请求的用户(一般是在线人数的10-25%左右) 推荐配置时: 90%用户的访问时间低于1.5s 最低配置时: 70%用户的访问时间低于2s JVM内存: 分配给FineReport容器Tomcat...
      注册用户数  在线用户数  并发用户数 推荐配置 最低配置
      1000-2500  200-500  50CPU:四核八线程,4GHZ
    JVM内存:12GB
    CPU:双核四线程,3GHZ
    JVM内存:5GB
     2400-6000 480-1200 120两块CPU: E5(单块8核16线程2GHZ)
    JVM内存:12GB 物理内存:16GB 
    CPU:四核八线程,4GHZ
    JVM内存:12GB
     4000-10000800-2000  200 暂无 两块CPU: E5(单块8核16线程2GHZ)JVM内存:12GB 物理内存:16GB 
    说明:
    注册用户数:系统注册了的用户
    在线用户数: 用户同时在一定时间段的在线数量(一般注册人数的5%-20%之间,取20%)
    并发用户数:同时向服务器发送请求的用户数(一般是在线人数的10-25%左右)
    推荐配置时: 90%用户的访问时间低于1.5s
    最低配置时: 70%用户的访问时间低于2s
    JVM内存: 分配给FineReport容器Tomcat的内存(可设置为物理内存的80%左右)。

    转载于:https://my.oschina.net/mellen/blog/3013537

    展开全文
  • 服务器并发数规律研究

    千次阅读 2013-01-02 15:41:50
    在web服务器性能测试中,并发数是一个很多人比较关心的话题之一,web服务器软件中也有很多并发数设置的地方。但是怎样的并发数设置才是合理的呢,这就涉及到并发数调优了。本文在前人研究的并发数规律的基础上进行了...

            在web服务器性能测试中,并发数是一个很多人比较关心的话题之一,web服务器软件中也有很多并发数设置的地方。但是怎样的并发数设置才是合理的呢,这就涉及到并发数调优了。本文在前人研究的并发数规律的基础上进行了jmeter的压测实践,验证了此规律。

            为了充分利用CPU资源,一般人可能认为适合的线程数量等于CPU数量+1或CPU数量-1,但是,淘宝蒋江伟在QCon2011的演讲PPT(点此查看)中指出,线程数量=((CPU时间+CPU等待时间) / CPU时间) * CPU数量。这个公式只是针对CPU而言,准确来讲,是当机器的瓶颈资源是CPU的时候而言。更一般的,瓶颈资源的线程并行数=瓶颈资源的总份数/单次请求占用瓶颈资源的份数。

    对此用下面几个简单servlet测试下:

    (jmeter请求端与tomat服务端在同一机器上;测试机器CPU为intel双核;servlet容器:tomat5.5,jvm xmin=xmax=256m;)

    1. 模拟进行IO操作,但是瓶颈资源为CPU,因为用sleep来模拟模拟IO,所以IO不存在性能瓶颈。

    @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
                ServletException,IOException {
            long t = System.nanoTime();
            long a = 0;
            long times = Long.valueOf(req.getParameter("times"));
            for (int i = 0; i < times; i++) {
                a = a + 1;
            }
            long timeCost = (System.nanoTime() - t) / 1000000;
    
    
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                logger.warning(e.getMessage());
            }
            resp.setContentType("text/html");
            PrintWriter out = resp.getWriter();
            out.println("success.times:" + times + ",cpuTimeCost(ms):" + timeCost);
            out.flush();
            out.close(); // 这里本来不需要close,但是压测请求过多后,会出现因为没及时关闭流,而导致java.net.SocketException:Connect reset
        }
    
    在上述servlet的doGet方法中,仅仅让线程sleep100毫秒,模拟IO操作。其中servlet传参times=1000000。jmeter测试结果如下:
    线程循环次数线程数平均响应时间(毫秒)tpscpu
    2000211417.415%~20%
    2000511343.7>50%
    2000101079260%左右
    200015107137.5<80%
    200020109176.190% 左右
    200025112212.3<100%
    200030118237.4100%
    200035130238.4100%

    从统计数据来看,在10并发前,平均响应时间还没达到最高,cpu负载不高;(但不知为什么响应时间没达到最理想)在10~20并发时,平均响应时间小于110ms,cpu负载比较饱满,到目前为止tps都在稳步提升;在30并发以后,平均响应时间开始变长,tps已经没有上升空间

    对照之前给出的公式,最快的在107ms左右,而模拟IO占100ms,所以cpu运算时间为7ms,按公式,线程数=(100 + 7) / 7 * 2= 30.5。 而统计数据中,正是在30并发后,基本达到瓶颈。满足期望规律。

    2. 模拟进行CPU密集请求。瓶颈资源仍为CPU。

        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
                ServletException, IOException {
            long t = System.nanoTime();
            long a = 0;
            long times = Long.valueOf(req.getParameter("times"));
            for (int i = 0; i < times; i++) {
                a = a + 1;
            }
            long timeCost = (System.nanoTime() - t) / 1000000;
            resp.setContentType("text/html");
            PrintWriter out = resp.getWriter();
            out.println("success.times:" + times + ",cpuTimeCost(ms):" + timeCost);
            out.flush();
            out.close(); // 这里本来不需要close,但是压测请求过多后,会出现因为没及时关闭流,而导致java.net.SocketException:Connect reset
        }
    在上述servlet的doGet方法中,没有sleep模拟IO。其中servlet传参times=1000000。jmeter测试结果如下:
    线程循环次数线程数平均响应时间(毫秒)tpscpu
    10018411.6100%
    10028422.4100%
    100312922.5100%

    从统计结果看到,在2个并发情况就把机器资源占满了。在3个并发时候tps已经没有上升空间了。

    按公式,线程数=84/84 * 2 = 2,在2个线程时候就达到资源最高利用了。

            上面2个例子都是以cpu为瓶颈的场景,如果数据库是瓶颈,那么就要响应地调整了公式中的项了,但原理都是一样的,这里就不再举例验证了。所以,在系统的并发数调优时,不能只从cpu的数量来加1或减一,而要从瓶颈资源到角度去做相应的判断。当然,实际并发调优还受诸多因素影响,如http服务器,web容器的参数,jvm设置等等,本文只是从瓶颈资源的角度看待并发数。后续会继续探讨。

    展开全文
  • 带宽、并发数计算

    千次阅读 2020-03-30 14:45:22
    先说推出的结果并发数= 带宽(Mb)*67.2/数包大小(KB)//注意这里的带宽 Mb ,发送出的数据大小单位是KB 下面为推到过程: 首先要分清一下单位 一个字节的等于八个位,位就是我们常说的二进制,例如: 1000 0100这...

    带宽与我们每秒最多发送的数据包的关系

    先说推出的结果   并发数 = 带宽(Mb)*67.2/数包大小(KB)   //注意这里的带宽 Mb ,发送出的数据大小单位是KB

    下面为推到过程:

    首先要分清一下单位

    一个字节的等于八个位,位就是我们常说的二进制,例如:

     1000 0100   这就是八个位(bit),也叫八个比特(bit) 又称一个字节   换算如下:

    1 Byte = 8 bit

    带宽的单位: bps   一般以b/s

     现在分析人们常说的 一兆带宽    即: 1Mb/s    分析这个单位,很明显这里的b  是指bit  (比特) 所以人们常说的带宽并不是字节,而是比特,  现在对一兆的带宽换算成字节来观察:

     首先要知道   比特:1Mb=1024Kb=1024*1024bit   注意这行写的是 比特 ,是位 ,是bit

                          字节:1KB=1024Byte                         注意这里写的是 字节,是Byte

    1Mb/s = (1024*1024) / 8 = 131072 Byte/s (字节) =  131072/1024 = 128KB/s

    可得  人们常说的带宽 其实在我们每秒下载的字节大小为128KB/s   

    再得  10兆带宽就是  1280KB/s  基本上每秒下载一兆大小的字节,这就是我以前总疑问为什么我家的贷款是是10兆,但是下载数据的时候为啥,就每秒一兆大小的字节速度,10兆带宽指兆比特以比特为单位,下载的为一兆的速度是字节为单位。现在如果你明白了,就证明前面看懂了。

     按照上面的公式 :一兆带宽是理论 上是   1Mb/s= 128KB/s   但是这是理论上的速度,

    实际要扣除12%的信息头标识等各种控制讯号   所以 

     1Mb/s = 112KB/s:

    2Mb/s = 225KB/s

    8Mb/s = 901KB/s

    10Mb/s= 1126KB/s

    我们的带宽分为上下行的,一般运营商都是希望客户能多下载数据,所以基本上我们用来下载的下行带宽是足够的,但是我们在测并发的时候往往是向外发送数据,所以我们的上行带宽要保证,下面以上行带宽举例:

    上行带宽 

    以  50兆的带宽举例    发送每个数据包大小为30KB 进行举例  

    首先我们要明白, 50兆的带宽即 50Mbps    带宽使用率并不是 完全占满才效果更好,而是像我们的电脑cpu 如果使用率越高,电脑越来卡,同样带宽也是,带宽占用越多就会越拥挤或者说越堵塞,经验来说,大约70%的使用率是稳定的网络

     50Mbps * 0.7  = 35Mbps  (70%的使用是稳定的网络)  
    所以  我们使用35兆的 带宽为稳定且高效的使用率,同时也说明35兆带宽的是我们最大并发的一个最适合的值,


      所以根据上面的公式换算下   35Mbps = 128 *35 KB/s   =  4480KB/s    这是之所以没用112*35  是因为,那些标识控制讯息,是传输必要的,要不然网络中怎么辨识和接收这些数据呢。

          在这里我的数据传输就是通过 base64编码的,由于base64的传输特性将原数据扩大三分之一  所以现在 30KB 大小的数据变为  40KB数据包(这里base64介绍的很好https://blog.csdn.net/vividboy/article/details/1237740),所以

     并发数为:     4480/40  =  112   即50兆的带宽数 在使用70%的资源情况下 ,发送的数据包大小为30KB,且传输的时候使用base64 进行转换后,最大秒并发数为112个   (大家千万理解我说的并发数,是针对我们自己上行带宽向外发送数据包的时候一秒钟我们的带宽,最多能发出多少数据包)


    所以推一个小公式:(并不是很严谨,但我觉得这一组数据足够可以推算这个公式,感兴趣的朋友可以多算几组数据用来推算)
     带宽50Mbps 可以认为是 传30KB大小 秒并发为 112个
    成正比为分子 
      并发数  肯定与带宽成正比 ,在带宽一定大小的前提下,  因为我们带宽越大也就说明我们每秒能发送的数据包越多。

    并发数  肯定与数据包大小成反比,在带宽一定大小的前提下,因为我们数据包越大,我们能发送出去的数据包个数就越小。

    设系数常量为X

    并发数 = 系数*带宽(Mb)/数包大小(KB)
    112 =  50 * X / 30
    x = 67.2
    所以
    并发数 = 带宽(Mb)*67.2/数包大小(KB) 

    大家千万注意我们退的公式单位是什么  带宽单位是Mb  比特为单位,KB 字节为单位。

    原文链接:https://blog.csdn.net/weixin_41955327/article/details/84350847

    展开全文
  • apache并发数调整

    万次阅读 2009-04-13 13:37:00
    初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在...
  • apache并发数的问题

    千次阅读 2014-03-13 14:59:34
    初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在...
  • Tomcat参数调优:连接数和并发数连接数实战并发处理线程数 调整实战 配置项 含义 默认 建议 注意 备注 ConnectionTimeout 连接超时 20s 减少 与程序处理能力有关,处理能力越快设置短一点没关系 到底多久提示...
  • Tomcat的性能与最大并发数

    万次阅读 2017-01-24 16:27:26
    Tomcat 默认配置的最大请求是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。 当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。 具体能承载多少并发,需要看硬件的配置,CPU...
  • Nginx(七) 测试使CPU占用更多能否提升并发数

    万次阅读 多人点赞 2019-01-07 11:00:00
    当我们使用一核心时,反而是并发数最高,且核心的资源都被占了。 所以,我想测试,当占所有的核心,能否提升并发数。 主:配置了1核心一个线程,分配给第四个核心 从1:配置了1核心一个线程,分...
  • netty新建连接并发数很小的case

    千次阅读 2016-12-04 07:09:23
    netty新建连接并发数很小的case
  • 当我们使用一核心时,反而是并发数最高,且核心的资源都被占了。 所以,我想测试,当占所有的核心,能否提升并发数。 主:配置了1核心一个线程,分配给第四个核心 从1:配置了1核心一个线...
  • loadrunner中并发数与迭代的区别

    千次阅读 2015-04-17 12:31:14
    问题: ... 然后运行Controller,设置用户为100?那么这里的迭代次数该怎么设啊,设成1和设成10有什么区别...我老是搞不清测试并发用户,“迭代”和“并发用户”(就是controller里设的虚拟用户)的区别。
  • 服务器1M带宽并发数计算 云服务器吧本文关于服务器1M带宽的测试,忽略了云服务器的计算和处理时间,仅考虑网页从服务器下载到用户本地的速度。 服务器1M带宽的下载速度是128KB/S(参考:云服务器1M带宽下载速度)...
  • 初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一
  • 准确的来说,Threads_running是代表当前并发数 这是是查询 数据库 当前设置的最大连接数 2.mysql> show variables like '%max_connections%'; +-----------------+-------+ | Variable_name | Value | ...
  • tomcat 最大并发数 并发量 tomcat 最大并发连接数 acceptCount不能说只要大于acceptCount的连接就一定被拒绝!
  • 由于一个项目的访问量越来越大,...由于网站一再打不开,按照排除原因来看,数据库连接、进程池了、iis并发数太高,我能想到的就只有这三种情况,于是就一个一个排除,当项目网站打不开时,同服务器其他网站都正常,
  • 今天在对数据库进行测试的时候发现,当并发数过大的时候,所有的请求都进行了排队,排队时间很长。找了半天原因发现: 当网站提交请求给数据库进行连接的时候,数据库会返回一个验证即反向解析验证,而改验证会造成...
  • Tomcat 默认配置的最大请求是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。  当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。  具体能承载多少并发,需要看硬件的配置...
  • wx.request 的最大请求为5个,超过的部分就请求不到了 昨天遇到个问题,首页的请求一共有9个,但是在有appid开发时竟然一直都没出错,直到我切到没appid的版本的时候才发现了这个问题。 暂时的解决方案时...
  • 提高服务器并发连接

    千次阅读 2013-12-22 13:15:14
    如果你能够消除所有的瓶颈,你就能够最大的发挥硬件性能,让系统的性能和并发数到达最佳。 采用多线程多核编程,使用事件驱动或异步消息机制,尽量减少阻塞和等待操作(如I/O阻塞、同步等待或计时/超时等)。 原理...
  • zuul的并发请求优化

    千次阅读 2019-04-12 09:47:35
    Zuul的并发性能优化 服务:zuul网关服务,erreka-client服务(10个实例) 一. 笔记本压测和linux服务器压测的性能差距 刚开始用zuul代理erreka-client的接口/test/java-user,此接口是裸接口,用ab压测,tps才是...
  • 一、 限制访问频率、并发连接、下载速度用到的模块和指令概述 ngx_http_limit_req_module :用来限制单位时间内的请求,即速率限制,采用的漏桶算法 “leaky ... 水桶后水溢出(丢弃)。 这个算法的核心是:缓存请
  • springboot内置tomcat调优并发线程

    千次阅读 2020-12-03 11:47:57
    本文解析springboot内置tomcat调优并发线程的一些参数,并结合源码进行分析 参数 线程池核心线程 server.tomcat.min-spare-threads:该参数为tomcat处理业务的核心线程大小,默认值为10 线程池最大线程 ...
  • nginx限制并发连接和连接请求

    千次阅读 2020-06-09 22:40:13
    令牌桶放时,多余的令牌被丢弃; 请求要消耗等比例的令牌才能被处理; 令牌不够时,请求被缓存。 --------------------------------------------------------------------------------------------------------...
  • tomcat并发与线程

    千次阅读 2017-09-20 17:49:07
    本文前半部分结论存在严重错误,请看最后2015-1-20更新部分。   最近一直在解决线上一个问题,表现是: ...Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线
  • 用JMeter进行高并发测试的时候,发现: org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: ...
  • 并发编程面试题(2020最新版)

    万次阅读 多人点赞 2020-03-14 17:28:01
    文章目录基础知识并发编程的优缺点为什么要使用并发编程(并发编程的优点)并发编程有什么缺点并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?并行和并发有什么区别?什么是多线程,多线程的优劣?...
  • linux下tcp服务器并发连接限制

    千次阅读 2017-02-22 10:03:59
     在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,998
精华内容 43,999
关键字:

并发数已经满