服务器并发影响元素

一:服务器并发数取决于那些?

1. CPU 处理性能

CPU 核数,假如 CPU有4个核,处理每个访问请求用线程去处理,那么4核每次最大能处理不超过8个线程,处理时间看单个线程处理完数据的时间,假如一个线程处理时间是40ms(毫秒),那么最高秒级并发计算那就是 1000/40*8=200 那么每秒最高处理并发是200个,如果服务器只收不处理数据的话处理时间还能大幅度下降, 并发数还鞥你大幅度提升。

2. 内存容量

假设目前服务器有4G空闲内存,每次处理一个请求占用1MB内存,那么一秒就是200MB,假设服务器宕机时间为:1024MB*4/200=20.48秒会把服务器内存资源耗尽,如果长时间占用内存资源那么内存泄漏是一定多少会出现些,如果内存及时释放和内存泄漏降到最低,服务器程序异常退出的情况会大大降低,合理使用服务器自带的内存释放服务也会大大降低服务器程序异常退出情况,当服务器程序出现异常退出情况时,内存会自动释放恢复到4G空闲状态,使用自动监测脚本服务当服务器程序异常退出时自动调起相应的服务,保证服务器对外的使用率,服务器程序异常退出和服务器宕机是两个情况,服务器程序异常退出代表服务器可能正常运行,再次调起相关的程序即可;服务器宕机代表服务器系统出现异常,关机或者不在运行,需要人为的去操控;宕机属于重大服务器问题。

3. 网络带宽

并发的第三个因素网络带宽因素,假设服务器上下行带宽一共是5MB,假设一次请求数据大小字节占200字节,如果不需要回复 则支持最大的并发数为:1024MB*5/8=640KB*1024=655360字节/200=3276.8,则服务器只接受数据请求不回复的话能支持并发数为 3276.8个,如果服务器需要返回数据,假设返回的数据也是200字节,那么并发数为3276.8/2=1638.4个并发。

4. 硬盘读写速度

硬盘读写速度也从一个方面影响了数据的处理速度。

二、并发策略

1. 服务器压力分流,现在市面上BAT都采用的是负载均衡技术,负载均衡有多个策略,最常用的是RR(轮巡)策略,RR+keepalived技术可以有效的保存用户的cookie和session,从链路层转换网络请求指向,用iptable保存用户IP表和指向的历史记录等等信息,负载均衡的存在意义是把单台服务器处理的压力分散,路由到多台服务器上,减轻单台服务器的压力,降低服务器宕机的几率和访问延迟的问题等等;

2. 假如服务器遭受到攻击可以随时变换策略,比如master和slave角色互换,IP变化,域名重定向,可以使攻击者攻击目标变成无效或者丢失,这样可以保护用户正常的访问,但是不能有效的杜绝彻底攻击,可以加上IP访问限制等方式可以暂时拒绝攻击者的攻击。

3. 多台服务器部署成集群后有效的提升服务器的处理能力和并发数量。

4. 数据库和缓存的能力,不断的对数据库进行刷写无意会大量消耗服务器的资源,使用中间件和缓存技术有效的防止对数据库进行大量的刷写操作,保护服务器资源不被大量消耗。

5. 使用WebRPC服务,模块拆分部署到不同的服务器,比如ABC 3个功能,如果3个功能在同一台服务器,那么服务器在处理各式各样的请求是会造成不同的资源消耗和处理瓶颈问题,如果把A B C 分别部署到3台不同的服务器,并且内网打通,这样会大面积降低耦合率,提升并发数,保护服务器。

猜你喜欢

转载自blog.csdn.net/www5256246/article/details/81637179
今日推荐