当前位置: 首页 > article >正文

并发粗略测算

流量角度测算并发:

网络带宽: 单位时间内能传输的数据量。单位是bps(即bit/s,位/秒)。

码流/码率:视频文件在单位时间内使用的数据流量。单位是kbps(即kbit/s,千位/秒)。

b 代表 bit(比特),B 代表 byte(字节),1B=8b。

视频大小 = 时间×码率/8
在线人数 = 带宽/码流
文件大小 = 时间×带宽/8

例如:1,10M带宽能支撑的同时在线人数(一个视频文件的大小为6M,播放时长为3分钟):

10* 1024 * 1024 / (6 * 1024 * 1024 * 8 / (3 * 60)) =37.5(人)

例如:2,100M带宽能支撑的同时下载人数(文件的大小为100M,每个人1分钟内下载完成):

(100/8) / (100/60) = 7.5(人)

并发人数 = ( 带宽  *  平均单页等待时间  )/ 平均单页大小

UTF-8使用1~4字节为每个字符编码:

1、一个US-ASCIl字符只需1字节编码(Unicode范围由U+0000~U+007F)。

2、带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码(Unicode范围由U+0080~U+07FF)。

3、其他语言的字符(包括中日韩文字、东南亚文字、中东文字等)包含了大部分常用字,使用3字节编码。

4、其他极少使用的语言字符使用4字节编码

例如:3,20M带宽能支撑多少人同时访问(平均单页100KB,平均单页等待时间5s)

20 * 1024 / 8 * (100 / 5 ) = 128(人)

服务器角度测算并发:

Windows Tomcat允许每个进程maxThreads(最大线程数)2000

Linux Tomcat允许每个进程maxThreads(最大线程数)1000

一个线程默认需要1M堆栈(最少128K)

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               redirectPort="8443" 

                maxThreads="500"
                minSpareThreads="100"
                maxSpareThreads="200"
                acceptCount="200"
                maxIdleTime="30000"
                enableLookups="false"
               />

Tomcat的并发请求处理数量=maxThreads + acceptCount
protocol:启用APR连接模式,提高异步IO处理性能。
maxThreads:最大能接受的请求数,默认为200
minSpareThreads:最少备用线程数,默认初始化,默认为25
maxSpareThreads:最多备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
acceptCount:等待处理的请求队列,默认为100,超过队列长度,服务器则拒绝客户端请求,直接返回403
maxIdleTime:如果一个线程在30秒以内没有活跃,则终止运行并从线程池中移除。除非线程池数量小于或等于minSpareThreads数量。默认值是1分钟
enableLookups:如果为true,调用request.getRemoteHost会执行DNS反查,反向解析IP对应的域名或主机,效率较低,建议设为false。


http://www.kler.cn/a/3520.html

相关文章:

  • CentOS 7乱码问题如何解决?
  • Java实现微店商品详情接口调用的完整指南
  • 代码随想录——串
  • Ubuntu如何安装redis服务?
  • C语言——文件操作
  • 2025-1-21 Newstar CTF web week1 wp
  • 6.3 归并排序Mergesort
  • 【深度强化学习】(3) Policy Gradients 模型解析,附Pytorch完整代码
  • 51单片机8*8 LED点阵实现原理讲解
  • echarts地图不同地区设置不同的颜色
  • 手机验证发送及其验证(基于springboot+redis)保姆级
  • Docker【基本使用】
  • 你还不会递归?告别困惑,我来教你
  • 多线程(三):Thread 类的基本属性
  • USB键盘实现——字符串描述符(四)
  • JNI原理及常用方法概述
  • 【软件测试】基础知识第一篇
  • 使用chatGPT实现数字自增动画
  • 数字信号处理_QA_2023_超长
  • [渗透教程]-004-嗅探工具-Nmap
  • STM32开发基础知识入门
  • MongoDB 6.0 入门(二)
  • javaEE初阶 — 博客系统的页面设计
  • 4年功能测试,我一进阶python接口自动化测试,跳槽拿了20k......
  • 第二章 作业(6789B)【编译原理】
  • python迭代器详解