如果你能够消除所有的瓶颈,你就能够最大的发挥硬件性能,让系统的性能和并发数到达最佳。
采用多线程多核编程,使用事件驱动或异步消息机制,尽量减少阻塞和等待 *** 作(如I/O阻塞、同步等待或计时/超时等)。
原理:
1、多线程多核编程,消除cpu瓶颈。
2、采用IOCP或epoll,利用状态监测和通知方式,消除网络I/O阻塞瓶颈。
3、采用事件驱动或异步消息机制,可以消除不必要的等待 *** 作。
4、如果是Linux,可以采用AIO来消除磁盘I/O阻塞瓶颈。
5、在事件驱动框架或异步消息中统一处理timer事件,变同步为异步,而且可以在一个线程处理无数timer事件。
6、深入分析外部的阻塞来源,消除它。
比如数据库查询较慢,导致服务器处理较慢,并发数上不去,这时就要优化数据库性能。
7、如果与某个其他server通信量很大,导致性能下降较多。
可以考虑把这两个server放在一个主机上,采用共享内存的方式来做IPC通信,可以大大提高性能。有什么方法衡量服务器并发处理能力
1 吞吐率
吞吐率,单位时间里服务器处理的最大请求数,单位req/s
从服务器角度,实际并发用户数的可以理解为服务器当前维护的代表不同用户的文件描述符总数,也就是并发连接数。服务器一般会限制同时服务的最多用户数,比如apache的MaxClents参数。
这里再深入一下,对于服务器来说,服务器希望支持高吞吐率,对于用户来说,用户只希望等待最少的时间,显然,双方不能满足,所以双方利益的平衡点,就是我们希望的最大并发用户数。
2 压力测试
有一个原理一定要先搞清楚,假如100个用户同时向服务器分别进行10个请求,与1个用户向服务器连续进行1000次请求,对服务器的压力是一样吗?实际上是不一样的,因对每一个用户,连续发送请求实际上是指发送一个请求并接收到响应数据后再发送下一个请求。这样对于1个用户向服务器连续进行1000次请求, 任何时刻服务器的网卡接收缓冲区中只有1个请求,而对于100个用户同时向服务器分别进行10个请求,服务器的网卡接收缓冲区最多有100个等待处理的请求,显然这时的服务器压力更大。
压力测试前提考虑的条件
并发用户数: 指在某一时刻同时向服务器发送请求的用户总数(>这个应该没有办法去做测试理论上来讲,一个高配置的至强处理器能支持的最大并发连接数是一两万个但在实际使用中服务器所能支持的并发数也与你的应用有关比如你服务器上面做网站做下载放OA系统等不同的应用也会支持不同的连接数
我的服务器用的是小鸟云的,性能稳定,访问很流畅。并发播放在10000-50000左右的话,对服务器的性能要求相当高了。而且存储容量也要求大,需要比较高的性能和硬盘扩展能力才行。因为播放并发的话,每秒都在连续性的读取数据,对服务器压力很大。跟网页并发有区别。。。网页并发是点一下,停一会儿,在线50000人实际上同时 *** 作也就10000人或不到。
你可以看看国产品牌正睿的这款双路八核服务器,标配一个Xeon E5-2650八核心十六线程处理器、16G DDR3 REG ECC容错校验内存,SAS 300G 15000转高速企业级硬盘,2U热插拔机构,8个硬盘扩展盘位,最大支持16TB存储容量,并且可以在不关机的情况下增加或更换硬盘,四个千兆网卡。如果以后随着业务量的增长,觉得性能不够用了,还可以扩展到两颗处理器,达成16颗处理核心32条计算线程(任务管理器那里可以看到32个处理器格子,相当恐怖- -~),最大支持512GB DDR3 REG ECC高速容错校验内存,怎么也够用了。
产品型号:I22S2-8888HV
产品类型:双路八核机架式服务器
处 理 器:Xeon E5-2650
内 存:16G DDR3 REG ECC
硬 盘:SAS 300G
机 构:2U机架式
价 格:¥24900
银牌服务
全国三年免费上门售后服务,关键部件三年以上免费质保。
建议你先配4个2TB硬盘,做RAID5阵列,有6TB容量可用,既提升了磁盘读取性能,也保障了数据安全,即使坏掉一个硬盘,数据也不会丢失。两个硬盘同时坏掉的可能性就太低啦。
给你推荐的是国产品牌正睿的服务器产品,他们的产品性价比很高,做工很专业,兼容性,质量之类的都有保障,售后也很完善,3年免费质保,3年免费上门售后服务,在业界口碑很不错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)