多人服务器单服务器承压力的一般算法

来源:互联网 发布: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)*单用户平均每秒请求数 ) ==> 最大在线人数

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 感染了hpv病毒怎么办16 高危型hpv阳性52怎么办 腰椎盘突出腿疼怎么办 腰椎间盘突出压迫神经怎么办 疣体长到宫颈了怎么办 龟头的系带断了怎么办 龟头与系带断了怎么办 舌头下长肉芽痛怎么办 脑组织供血不足怎么办 尖锐湿锐喝酒了怎么办 快递寄错地方了怎么办 16岁掉头发严重怎么办 18岁老是掉头发怎么办 17岁头发老是掉怎么办 19岁老是掉头发怎么办 植发的了毛囊炎怎么办 长得好看不上镜怎么办 鬓角的头发总翘怎么办 戴贞洁锁硬了怎么办 欠很多钱还不了怎么办 理财平台跑路了怎么办 联通4g信号不好怎么办 老年人耳朵嗡嗡响什么原因怎么办 单侧耳朵嗡嗡响怎么办 蚊子钻到耳朵里怎么办 小飞虫进耳朵里怎么办 耳朵里飞进去虫怎么办 耳朵里进虫子了怎么办 耳朵进虫子了怎么办啊 耳朵里进了蚊子怎么办 有虫子爬进耳朵怎么办 虫子死在耳朵里怎么办 早上起床口苦口臭怎么办 耳朵被耳屎堵了怎么办 油耳朵被堵住了怎么办 棉签掏耳朵堵了怎么办 耳朵被气堵住了怎么办 掏耳朵发炎了疼怎么办 掏耳朵掏深了疼怎么办 耳朵里进了虫子怎么办? 耳朵里飞进小虫怎么办