多人服务器单服务器承压力的一般算法
来源:互联网 发布:mysql数据库实时备份 编辑:程序博客网 时间:2024/04/30 17:55
现在一般的游戏或网络公司都要求单服务器性能达到多少人,
有很多文章都没有探讨得特别清晰,
现在我从数据上给出一台服务器能支持多少人一个比较清晰的计算方法:
假设1:如果服务器底层处理1个人和处理N个人的效率是一样
(现在如果AIO和IOCP模式,一个连接和10000个连接效率差不多);
假设2:网络带宽没有限制
(如果数据协议设计合理,一般当CPU达到100%时,带宽消耗也不会很大)
假设3:服务端资源没有限制
(主要是指内存资源,对于现在机器,一般内存不是制约因素,但是连接资源一般要受到系统制约)
现在给出理想情况下的计算公式:
平均服务响应时间(单位S)*单用户每秒请求数 ==> 单用户CPU时间
处理器个数 * (1S) / 单用户CPU时间 ==> 服务器最大在线人数
以上是理想情况下的压力计算公式,考虑到其他情况,可以将这一个算法*一个修正值。
修正值主要有这几个:
如果IO和或者等待其他任务消耗时间较多,可以适当提高线程或进程数,
这里线程和进程数的理想设计为
平均每处理器总时间 / ( 平均每处理器总时间 - 平均每处理器IO时间(或平均每处理器等待时间) )
==> 理想的线程(进程)数
可以使用 线程(进程)数 / 处理器个数进行修正
另外再乘以理想估计和实际估计偏差可以取(0.8)
得到最终结果理想情况是这样
0.8 * ( 处理器个数 * 1S ) / ( 平均服务响应时间(单位S)*单用户平均每秒请求数 ) ==> 最大在线人数
加第一修正的最大线程人数
0.8 * ( 平均每处理器总时间 / ( 平均每处理器总时间 - 平均每处理器IO时间(平均每处理器等待时间) ) )
* ( 平均服务响应时间(单位S)*单用户平均每秒请求数 ) ==> 最大在线人数
假设线程或进程数设计合理
可以采用这个进行估算
0.8 * 线程(进程)数 / ( 平均服务响应时间(单位S)*单用户平均每秒请求数 ) ==> 最大在线人数
- 多人服务器单服务器承压力的一般算法
- 服务器的压力测试
- 后端服务器的压力测试
- 服务器被挂马的一般解决方法
- 多核单服务器各种配置和业务压力下的node.js性能测试
- 多核单服务器各种配置和业务压力下的node.js性能测试
- 做的一个服务器的压力测试
- WEB服务器的压力测试工具
- 压力测试查看服务器的cup
- 降低即时搜索的服务器压力
- 测试web服务器的压力测试程序
- 服务器压力测试的几个指标
- linux中创建图片服务器减轻传统服务器的压力
- 单服务器发布多网站的问题
- 服务器压力测试程序
- 服务器压力测试软件
- 服务器压力测试 webbench
- 服务器压力测试
- 检查一个端口是否已经被占用
- 一些机器人实验室网址
- 医院管理系统的新机遇
- 美国开国经典之作--独立宣言
- 自己用面向对象写了一个图片上传类,发上来大家瞧瞧?
- 多人服务器单服务器承压力的一般算法
- OpenLaszlo with Maps
- 2009年国庆再回桂林(有图片)
- linux socket
- 文件选择框的常用方法
- j2EE面试题
- 十大网站管理员的服务器工具软件
- jgjdj
- Java string and memory leaks