前几天,我们就接到其他应用负责人的电话,说我们rate应用的http响应超时,导致页面上调用他们json接口的数据也显示很慢。
观察一下,大吃一惊。
随便打开一张商品的页面,其中的两个json接口超时非常严重,分别是9秒,10秒。
再看看监控工具中统计出来的响应时间,如下图:
在高峰期,响应时间都快到5秒了。严重影响到了用户体验。
再看看取数据接口的性能:
即使是从数据库取数据,平均时间连1.5毫秒都不到。这里根本不会是瓶颈。于是把问题定位到了Apache。Http请求过多,导致响应过慢。
之前,httpd.cnf的配置是这样的:
=============================================================
Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10
<IfModule worker.c>
StartServers 5
MaxClients 1024
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 64
ThreadLimit 128
ServerLimit 16
</IfModule>
=============================================================
MaxClients=1024,表示一个apahce最多只能处理1024个请求。其余的http请求都是浮云,需要等待。
MaxClients的值是由ThreadsPerChild(每个子进程的线程数量) 和ServerLimit(子进程数量)决定的。
MaxClients = ThreadsPerChild * ServerLimit
如果你把MaxClient设为2048,ThreadsPerChild * ServerLimit还是等于1024,是没有效果的。
在这次优化中,我们把MaxClient设为2048, ThreadsPerChild设为64, ServerLimit设为32
MaxSpareThreads表示最多的空闲线程数。一个请求过来,如果线程池里有现成的线程,就直接处理该
请求,否则创建新的线程。在高峰期rate有200多的tps,最多75个空闲线程显然太少了。
于是我们把这个值设为250。
KeepAlive表示HTTP的一次连接,可以进行多次传输。 在rate应用的http场景里,json接口对apache的压力是最大的。
其中一个json接口一天要被访问1700多万次。Json接口一个特性就是只取数据,没有接下来的交互动作。于是我们就把
KeepAlive设为off。
最后的httpd.cnf配置是这样的:
=============================================================
Timeout 30
KeepAlive off
MaxKeepAliveRequests 100
KeepAliveTimeout 10
<IfModule worker.c>
ServerLimit 32
StartServers 3
MaxClients 2048
MinSpareThreads 25
MaxSpareThreads 250
ThreadsPerChild 64
</IfModule>
=============================================================
看看修改后的效果:
左边的红框框表示昨天的高峰期响应时间,右边表示今天的高峰期响应时间。
优化后的效果是非常非常的明显。
最后看看系统的load:
我们的load比昨天有明显地提高。这是正常的,因为apahce的进程、线程多了。
by 毛导
- 大小: 13.6 KB
- 大小: 31 KB
- 大小: 11.3 KB
- 大小: 14.5 KB
- 大小: 32.7 KB
- 大小: 39.6 KB
分享到:
相关推荐
【智能Web平台】是一种高效的开发工具,专为专业的Web开发者设计,旨在大幅度缩短系统开发时间,提高工作效率。通过这个平台,开发者可以实现只需简单的鼠标操作就能完成系统的搭建,极大地简化了开发流程,使得复杂...
为了解决这些问题,设计了自动发布系统,这套系统能够更加及时、有迹可循地进行发布操作,大幅度缩短发布时间,并且能够在发布后提供稳定的测试环境。 在自动发布系统的发展过程中,出现了第一代和第二代自动发布...
- **Apache JMeter**:适用于Web应用的负载测试,支持多种协议和功能。 - **LoadRunner**:业界领先的负载测试解决方案,支持广泛的协议和技术。 - **Gatling**:基于Scala和Akka的现代负载测试框架,适合高性能和大...
- **意义**:HTTP/2的支持有助于提高Web应用的性能,减少延迟时间,增强用户体验。 ##### 2. Servlet容器性能提升 - **改进措施**:Servlet 4.0对Servlet容器进行了优化,包括改进线程模型、增加异步处理能力等。 -...
- **Gatsby**: 静态网站生成框架,适合构建高性能的Web应用。 - **React Native**: 用于构建原生移动应用的框架。 #### 八、开发工具 - **React Developer Tools**: 浏览器插件,用于调试React应用。 - **...
NetScaler能够显著提升Web应用的运行速度,最高可达五倍,并确保高可用性和安全性的同时大幅度降低成本。 #### 二、产品特性与优势 1. **应用加速** - **客户端和服务器TCP优化**: 通过优化传输控制协议(TCP)来...
- IntraWeb支持AJAX技术,可以实现局部刷新,提升Web应用性能。 6. **安全性考虑**: - 对于Web应用程序来说,安全性至关重要。 - 开发者需要注意防止SQL注入、跨站脚本攻击等问题,并确保数据传输的安全性。 #...
通过列式存储结构结合高效的压缩算法,可以在保持高性能的同时大幅度减少所需内存空间。 #### 多模型支持 SAP HANA支持多种数据模型,包括关系型数据模型、文档数据模型、图数据模型等,这使得用户可以灵活选择最...
Spring 2.0 版本在原有基础上进行了大幅度优化,增加了许多新特性,使得开发人员能够更加灵活地构建复杂的应用程序。 #### 二、Spring 2.0 的新特性 1. **依赖注入(Dependency Injection, DI)增强**:Spring 2.0...
在第一版的基础上,第二版进行了大幅度的更新和完善,不仅包含了最新的技术和最佳实践,还针对不同的学习层次提供了详尽的指导。此外,本书也获得了来自业界专家的高度评价: - Matt Merkes(MyNeighbor)称赞本书...
2. **高性能与优化**:该版本对性能进行了大幅度优化,提高了渲染速度和响应性。 3. **数据绑定**:Ext JS 4 支持双向数据绑定机制,简化了数据处理流程。 4. **强大的图表功能**:内置的图表库支持多种图表类型,如...
而Node.js采用了事件驱动、非阻塞I/O模型,从而大幅度提高了I/O密集型应用的性能。这种设计允许Node.js在处理大量并发连接时,仅需较少的线程,有效利用服务器资源,特别适合于高并发场景。 Node.js的另一个重要...
据报道,Google使用了Citrix Systems的Netscaler应用交换机来优化Web应用,该技术可将Web应用性能加速高达5倍,在遇到网络延迟或数据包丢失时,性能提升更为显著。 通过以上分析,我们可以看到谷歌在云计算领域的...
6. 微信小程序教学评价平台的效果:文中指出,在玉溪师范学院推广使用教学评价平台小程序后,学生的评价参与度显著提高,教师对教学评价结果的查询率也有了大幅度提升。这显示了微信小程序教学评价平台的成功案例,...
- **ACE 5.5版本特点**:最新发布的ACE 5.5版本相比5.4版本有了大幅度的改进和扩展。新增了数十个子项目,并且文档资料也更加丰富。然而,ACE的规模和复杂性也在不断增加,对于普通开发者而言,理解和掌握ACE的核心...
JBoss AS5(Application Server 5)是JBoss组织在2008年发布的一款开源应用服务器,它继承了JBoss 4.x版本的强大功能,并在此基础上进行了大幅度的改进与优化。相比于之前的版本,JBoss AS5 在部署、配置以及安全性...
自动化测试是通过编写脚本或使用工具自动执行测试用例的过程,SoapUI同样支持自动化测试,可以大幅度提高测试效率,特别是在需要重复测试相同场景的场合。性能测试主要检验接口在不同负载下的表现,例如响应时间、...
这不仅要求网络设备性能和传输介质容量要有大幅度提升,还要求网络规划更加科学合理。 **校园园区网的重要性** 校园园区网的规划对于学校的教育网络系统的性能至关重要。良好的规划不仅可以提高教学质量和效果,还...
- **主要特点**:相比于前代产品,SQL Server 2000 在功能上进行了大幅度的增强,特别是在Web应用方面,支持高级网络和存储技术,能够为大型网站和企业级应用提供更好的性能和服务。 #### 二、安装与升级 - **安装...
9. **最佳实践与案例分析**:书中不仅提供了理论知识,还通过真实案例展示了如何在实际项目中应用Struts2,包括如何优化性能、提高代码可维护性等最佳实践。 10. **社区与资源**:书中会介绍Struts2的社区资源,如...