如何提高高性能服务器并发量

如何提高高性能服务器并发量,第1张

1、减少内存分配和释放

服务器在运行过程中,需要大量的内存容量来支撑,内存的分配和释放就尤为关键。用户在使用服务器的时候,可以通过改善数据结构以及算法制度来减少中间临时变量的内存分配和数据复制时间

另外,可以选择使用共享内存模式来降低内存的分配和释放问题。共享内存在多处理器系统中,可以被不同的中央处理器访问,也可以有不同的进程共享,是一种非常快的进程通信方式。

2、使用持久链接

持久链接也被称为场链接,是通过TCP通信的一种方式。在一次TCP链接中持续发送多份数据而不断开连接。

从性能角度上来讲,建立TCP链接次数越少,越有利于性能的提升,尤其对于密集型图片或者网页等数据处理上来说有明显的加速作用。

3、改进I/O模型

I/O操作根据设备形式有不同的类型,例如我们常见的内存I/O,网络I/O,磁盘I/O。针对网络I/O和磁盘I/O, 它们的速度要慢很多,可以选择采用高带宽网络适配器可以提高网络I/O速度。

以上的I/O操作时需要CPU来调度的,这就需要CPU空出时间来等待I/O操作。如果在CPU调度上使用时间较少,也就能节约出CPU的处理时间,从这一点上来说也是提升高服务器并发处理能力的方式。

4、改进服务器并发数策略

服务器高并发策略的调整,是为了让I/O操作和CPU计算尽量重叠进行。一方面使CPU在I/O操作时等待时间内不要空闲,另一方面也是为了最大限度缩短等待时间。【感兴趣的话点击此处,了解一下】

上篇文章说到用ab做压力测试,单台服务器出现cpu瓶颈。

为了提高并发,可以从两方面扩展,纵向扩展(提升单台服务器性能),横向扩展(增加机器)。

纵向扩展,成本是比较大的,而且容易到顶,随着业务增加,还是撑不住。

所以我们要做分布式方案,这样可以随着业务扩展,租用更多机器来扛住压力。

目前软负载比较简单的方式就是用nginx了,当然你也可以硬负载,不过我没接触过,只是听过而已,据说很贵。

那我下面就介绍nginx配置方法。

我两台机器配置都没1核1G内存。

直接看nginx配置吧

就这样,reload nginx就生效了,为了测试是否成功负载,可以在两个应用返回不同信息,用浏览器访问,看是否会自动切换。

如果测试时,出现较多的异常,可以查看nginx 的error log,定位问题

如果出现1024 worker_connections are not enough

可以修改/etc/nginx/nginx.conf

下面为3000个并发,用分布式方案的结果,比单机平均处理时间降低了1秒。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/493707.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存