服务器的高并发能力体现了服务器在单位时间内强大的数据处理能力。一般来说,并发,在操作系统中,是指在一段时间内,有几个程序处于从启动到完成的时期,这些程序都运行在同一个处理器上,但任何时刻都只有一个程序在该处理器上运行。那么我们如何度量高并发性,我们如何提高服务器的并发性呢?
一、如何通过高并发度量指标度量服务器的高并发问题?
1.观察服务器的响应时间:系统响应一个请求的时间,即一个http请求返回的时间;
2.服务器吞吐量:单位时间内处理的请求数;
3.QPS(TPS):每秒可以处理的请求或事务的数量;
4.服务器并发用户数:同一时间能正常使用系统功能的用户数,即能同时使用系统且系统仍能正常运行的用户数;
二、如何提高服务器的并发处理能力?
提高服务器的并发处理能力:
1.提高应用服务器的处理水平:
要提高应用服务器的处理水平,就要知道你的应用服务器的瓶颈在哪里。一般有两种:
数据库压力:数据库是支撑产品业务的核心模块,系统高并发的主要压力也来自于数据库。有以下几种处理方式:数据库本身:建立有效索引、读写分离、双主互备份、子数据库和子表(通过分片-jdbc实现等。)等策略,提高数据库的处理能力,减轻压力!结合内存数据库,如redid、memcached等。、缓存一些数据字典、枚举变量、频繁使用数据等。根据业务需要,减少数据库访问次数,提高数据库处理能力。
使用nginx加载多个应用服务器,使用redid/memcached作为业务缓存,数据库集群,形成了一个经典的web高并发集群架构。
代码中的业务逻辑:可以参考阿里巴巴java开发手册中的开发规范。一般来说,创建更少的线程、创建更少的对象、锁定更少的锁、防止死锁、创建更少的线程以及注意内存回收等策略可以提高代码的性能。开发中可以采用前端分离的架构模式,通过动静分离和松耦合来提高前端和后端的处理能力。
2.服务器高并发策略的调整
这里说的服务器高并发策略调整,是指I/O操作和CPU计算要尽量重叠。这种做法主要是为了让CPU在I/O操作时不空闲,同时也可以大大减少等待时间。
3.选择持久链接。
有些朋友可能不知道什么是持久链接。下面简单介绍一下。持久链接是持久的。
连接,一种通过TCP进行通信的方式,主要是指你不用和每个请求进行通信。
对象建立新的TCP连接,这可以减少TCP设置时间和相应的系统损失。简单的理解就是,在一个TCP链路中,可以连续发送多个数据而不断开连接。
从性能的角度来看,如果建立的TCP链路数量较少,性能会有所提高。所以为了提高服务器的并发处理能力,建议选择持久链接。
4.优化系统调用。
系统调用涉及到从用户态到内核态的进程切换,导致一定的内存交换,这也是一定程度的上下文切换,所以系统调用的开销通常被认为是昂贵的。减少不必要的系统调用也是服务器性能优化的一个方面。这种方式的缺点是,当进程需要操作硬件外设时,必须切换到内核模式,这时就需要有更大的功率来操作整个计算机。
5.改善硬件环境
还有一点要提的是硬件环境。服务器的硬件配置往往是提高应用程序性能的最直接、最简单的方法,这种方法称为向上扩展。
也就是说,要在合理的范围内,根据自己的实际业务,尽量拆分。拆分后,相似的服务可以通过横向扩展实现整体的高性能和高并发。同时,将比较脆弱的资源放在链路末端,尽可能缩短访问链路,减少每次访问的资源消耗。服务之间的restful模型直接使用http调用,或redis,kafka类消息中间件通信。单一服务直接使用nginx作为负载集群,同时前端分离、数据库子数据库子表等一整套分布式服务系统!
评论前必须登录!
注册