LAMP架构调优(六)——开启长链接

简介: LAMP架构调优(六)——开启长链接

今天继续给大家介绍Linux运维的相关知识,本文主要内容是Apache的长链接功能设置实战。

一、开启长链接的效果
当Apache服务器开启长链接Keepalive后,会减少TCP三次握手的时间,但是会消耗服务器内存来维持链接。因此,是否开启长链接,以及合理的配置长链接失效时间,需要根据具体的业务场景来定。
如果设置不开启长链接,或者开启长链接但是链接失效时间很短,就可能出现客户端频繁链接Apache服务器的场景,会消耗系统资源,并且使得业务响应时间变长;如果开启长链接并且设置链接失效时间很长,那么Apache服务器中就会存在很多可以关闭但是还在维持的链接,也会消耗系统资源,影响正常服务的提供。
因此,网站是否开启长链接以及链接失效时间的设定,需要看网站的业务、流量大小以及服务器的硬件设备。

二、开启长链接实战
Apache开启长链接设置非常简单,只需要在Apache的主配置文件中,找到如下红线位置:

该处原本是在#注释内,删除#将其解锁,就可以配置引用conf/extra目录下的httpd-default.conf文件,该文件如下所示:

在该文件中,有三个参数,KeepAlive表示的是是否开启长链接功能,On表示开启,Off表示关闭。在该参数配置为开启的情况下,Timeout为链接失效时间,单位为秒,Timeout的值表示以下三种事件的时间长度:
1、接受一个GET请求所耗费的时间。
2、POST或者是PUT请求时,接受两个TCP包之间的时间。
3、应答时,两个TCP包传输中两个ACK包之间的时间。
MaxKeepAliveRequests表示链接失效请求次数,当超出该参数设定的次数时,长链接也会失效。

三、案例剖析
从上可以看出,其实Apache配置开启长链接非常简单,但是问题在于我们需要合理的进行配置。下面来看一下案例:
假设一个Apache服务器每秒需要处理50个访问请求,每个访问请求并发的请求数为每秒2个,每个请求需要耗费4M内存,如果长链接失效时间设定为60秒,则系统中Apache进程的总数为5060,为3000个,需要耗费30004M=12G的内存,在这种情况下,系统以消耗12G内存的代价,换来的是只处理50次TCP三次握手和四次挥手操作。如果关闭长链接,则会消耗50*4M的内存,约有200M,而每秒需要处理的TCP链接数则为100次。
综上所述,对于长链接是否开启我们通常遵循以下原则:
1、如果内存和CPU都足够,则无论是否开启长链接都不受影响。
2、如果存在一种情况,客户端会频繁的访问服务器资源,则建议开启长链接功能。
最后,给出一个生产环境中的默认配置:开启长链接,长链接失效时间为30秒,长链接失效次数为100。这样的配置,在一般的业务场景下,可以兼顾内存和CPU,起到比较好的效果。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122652684

目录
相关文章
|
1月前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
9 0
|
1月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2
|
1月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
13 1
|
1月前
|
运维 安全 Linux
LAMP架构调优(八)——Apache Worker模式调优
LAMP架构调优(八)——Apache Worker模式调优
9 0
|
1月前
|
缓存 运维 Linux
LAMP架构调优(七)——Apache Prefork模式调优
LAMP架构调优(七)——Apache Prefork模式调优
19 2
|
1月前
|
存储 缓存 运维
LAMP架构调优(五)——网页缓存设置
LAMP架构调优(五)——网页缓存设置
10 1
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
18天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
2天前
|
监控 测试技术 持续交付
探索现代微服务架构的最佳实践
【4月更文挑战第25天】 随着软件开发领域不断演进,微服务架构已成为设计灵活、可扩展且高度可维护系统的首选方案。本文将深入探讨构建和部署微服务时的关键最佳实践,涵盖从服务划分原则到持续集成/持续部署(CI/CD)的流程,再到监控与日志记录的策略。我们的目标是为开发者提供一套实用的指南,帮助他们在构建未来的应用程序时做出明智的架构选择,并确保这些系统能够快速响应市场和技术的变化。