`
lzy.je
  • 浏览: 150555 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

启用 IHS GZip 压缩提高网络 IO 性能

阅读更多

          默认安装配置下 IHS 并未启用 GZip 压缩选项,我们也可以通过 IHS 本身的 httpd.conf 文件配置和通过 HttpWatch、Fiddler 等工具查看前端 HTTP 响应内容来确认 IHS GZip 压缩是否启用、正确。一般情况下应该考虑启用 Web 服务器上 GZip 压缩,这样可以有效缩短客户端到 Web 服务器间的网络 RTT 指标,尤其是在中低速网络情况下;同时对于广泛使用的以文本类型 XML 数据为主的 Ajax 应用的数据推送,这种压缩也非常有效。

 

          IHS 中启用 GZip 压缩功能超级简单,只需要在 httpd.conf 配置文件最后添加如下内容,就可以启用 GZip压缩了。httpd.conf 位于 IHS_HOME/conf 中,修改前应做好备份。

 

LoadModule deflate_module modules/mod_deflate.so

<Location />
	# Insert filter
	SetOutputFilter DEFLATE

	# Netscape 4.x has some problems...
	BrowserMatch ^Mozilla/4 gzip-only-text/html

	# Netscape 4.06-4.08 have some more problems
	BrowserMatch ^Mozilla/4\.0[678] no-gzip

	# MSIE masquerades as Netscape, but it is fine
	BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

	# Don't compress images
	SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

	# Make sure proxies don't deliver the wrong content
	# Header append Vary User-Agent env=!dont-vary
</Location> 

DeflateCompressionLevel 9
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%h %l %u %t %r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate

 

          注意配置中有几点要清楚:

 

  1. 对于 Mozilla 特定浏览器只压缩“text/html”Content-Type 的响应内容启用压缩;
  2. 对于 Mozilla 特定浏览器不启用压缩;
  3. 对于 gif、jpg/jpeg 和 png 类型的资源文件不启用压缩,因为它们本事是压缩存储格式;
  4. 对于上述配置中注释的“Header append Vary User-Agent env=!dont-vary”,表示在存在代理时在 HTTP 头中添加“User-Agent”内容。如果需要该功能,则在取消该配置注释的同时,应安装并启用 Header 插件:“LoadModule headers_module modules/mod_headers.so”。
  5. 通过“DeflateCompressionLevel”配置了压缩比,deflate 插件使用 Zlib 来压缩 HTTP 请求及响应流,压缩比可以配置为 1(最小压缩比)至 9(最大压缩比),需要说明的是压缩比越高对 Web 服务器主机的 CPU 资源开销越大,如果此时 CPU 资源存在瓶颈的话响应时间也会相应延长。
  6. 对输入输出(响应请求)内容字节长度写入日志。

          关于 deflate_module 和 mod_headers 插件的详细配置说明,可以参见 Apache HTTP Server 的官方说明:

 

Apache Module mod_deflate

Apache Module mod_headers

 

          下在面的对比内容说明了,某个业务用例在一定量的并发用户负载场景中,在 IHS GZip 压缩启用前后的网络发送量差异,可见通过压缩能够有效的提高网络 IO 吞吐性能:

 

IHS Network Sent

 

          从上面的对比数据可以看到,当前场景中在启用 GZip 压缩后 IHS 主机的网络 Sent MB/s 指标从 5MB/s 减少到 2.5MB/s,减少到原来的 50%。

 

          这种优化效果从客户前端也能够看到,对于某一个单用户的 Ajax 较大数据量的查询请求,从度量结果可以明显看到通过压缩减少网络传输数据量所带来的响应时间提高。

 

HttpWatch TimeChart

 

          从上面的数据可以看到,在启用 GZip 压缩后,IHS 主机的网络 Receive 时间指标从 17ms 减少到 4ms,降低到原来的 23.5%;同时网络流量也从 29804 字节减少到 1499 字节,减少到原来的 5%。而且整体响应时间相对未启用 GZip 压缩时仅增长了 89ms,这一小段时间消耗在 IHS 压缩上(CPU clock)。

 

          最后需要说明的是,这种通过压缩来提高网络 IO 的方法并不是对 IHS 完全没有影响的,压缩算法需要额外的 CPU 时间(CPU clock)来进行压缩运算,下面的数据可以说明这一点,从现在 IHS 主机的 CPU 资源来看,在启用 GZip 压缩前 CPU 利用率平均为 4.5%,启用 GZip 压缩后 CPU 利用率平均为 12.88%。但是,很明显 IHS 主机 CPU 资源依旧很充足,用这一点空闲的 CPU 资源来提升网络 IO 性能还是很值得的。当然,你也可以通过 mod_deflate 插件的“DeflateCompressionLevel”指令来配置 Zlib 的压缩比,在 CPU 利用率、压缩效果、延时(响应)时间上找到平衡点。

 

IHS CPU Usage

 

浑浑沉沉的一天又结束了,睡觉~~

 

作者:lzy.je
出处:http://lzy.iteye.com
本文版权归作者所有,只允许以摘要和完整全文两种形式转载,不允许对文字进行裁剪。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 

  • 大小: 44.2 KB
  • 大小: 43.6 KB
  • 大小: 40.3 KB
6
0
分享到:
评论
1 楼 曾经de迷茫 2009-08-21  
不错.有机会实验一下!

相关推荐

    IHS性能调优参数设置经验总结

    开启KeepAlive可以提高性能,但需注意可能带来的资源占用问题。 2. **MaxKeepAliveRequests**: 设置单个持久连接上允许的最大请求数量。如果设置为0,则不限制请求数量。为了最佳性能,通常建议设置为一个较高的值...

    IHS的SSL配置方法

    本文将介绍IHS的SSL配置方法,包括创建密钥文件、配置httpd.conf文件和启用SSL加密。 一、创建密钥文件 首先,需要创建一个密钥文件,用于加密和解密数据。在IHS中,可以使用GSK(Global Security Kit)工具创建...

    IHS与WAS关联配置

    - **性能优化**:IHS的静态内容缓存能力可以减少对WAS的请求,提高整体性能。 2. **基础概念**: - **Reverse Proxy**:IHS作为反向代理服务器,接收来自客户端的HTTP请求,并将这些请求转发给后端的WAS。 - **...

    IHS 6.1 for windows

    4. **模块化设计**:Apache HTTP Server的基础使得IHS支持丰富的模块扩展,如mod_rewrite用于URL重写,mod_proxy用于代理服务,mod_deflate用于内容压缩,这些模块可根据需求进行启用或配置。 5. **管理工具**:IHS...

    IHS安装配置手册

    IHS安装配置手册摘要 本文档为IHS安装配置手册,...本文档为用户提供了IHS安装配置手册,涵盖了IHS7.0的安装、配置、管理、性能调优和故障诊断等方面的内容,旨在帮助用户快速上手IHS7.0,并提供了实用的参考指南。

    IHS与WAS

    1. 高性能:IHS和WAS都是基于高性能架构设计的,能够提供高性能的服务器服务。 2. 可靠性:IHS和WAS都是基于可靠性架构设计的,能够提供高可靠性的服务器服务。 3. 安全性:IHS和WAS都是基于安全性架构设计的,能够...

    connections5.5性能调优

    启用IHS缓存能够提高重复访问的响应速度,而内容压缩指令则可以在不影响用户体验的前提下,减少传输数据量。 最后,文档强调了监控HTTP服务器活动的重要性,以及需要关注的HTTP日志和问题诊断。有效的监控可以及时...

    IHS及F5配置文档

    总结来说,【IHS及F5配置文档】涉及到的技术核心是如何有效地结合使用IHS、WAS集群和F5 LTM来构建一个高可用、高性能的分布式应用程序环境。正确配置这三个组件可以显著提高系统的稳定性和响应速度,同时降低单点...

    linux5安装IHS

    在Linux环境中,IBM HTTP Server(IHS)是一个广泛使用的高性能Web服务器,用于托管Web应用程序和服务。IHS可以作为WebSphere Application Server(WAS)的前端代理,提供负载均衡、SSL终止和其他高级功能。本教程将...

    配置IHS支持SSL

    - **性能优化**:根据服务器负载调整SSL缓存大小,优化SSL握手过程,以提高服务器性能。 总之,配置IHS支持SSL是一项涉及安全策略、系统管理和网络通信的重要任务。确保正确配置并定期审查SSL设置,以维护系统的...

    基于IHS_LSSVR的网络安全态势预测方法.pdf

    HHGA通过遗传算法的全局搜索能力与RBF神经网络的学习能力相结合,提升预测模型的性能。但本篇文献所提出的基于IHS_LSSVR的方法,以其独特的算法结构和优化技术,在预测效果上具有更加明显的优势。 为了深入理解本篇...

    was与ihs集成

    1. **提高性能**:通过IHS作为前端服务器,可以有效地减轻WAS的负担,提高整体系统的响应速度。 2. **负载均衡**:IHS可以作为负载均衡器,将客户端请求分发到多个WAS实例上,从而实现资源的合理分配。 3. **安全性...

    IHS 融合算法 matlab

    IHS(Intensity, Hue, Saturation)融合算法是一种在图像处理领域广泛应用的多源图像融合技术,主要用于将不同传感器获取的图像数据进行有效融合,以提高图像的视觉效果和信息含量。该算法基于颜色空间的转换,将...

    WAS集群集成IHS傻瓜教程

    本教程指导您如何将 WAS 集群集成 IHS,实现高性能、可扩展的 Web 应用程序服务器架构。整个集成步骤可以总结为六步:安装 Dmgr、安装 App Server、将 App Server 加入 Dmgr、安装 IHS、安装 IHS Plugin、配置 IHS ...

    IHS图像融合算法程序

    IHS(Intensity-Hue-Saturation)图像融合算法是一种在多光谱图像处理领域广泛应用的融合技术,主要用于将不同波段的图像信息有效地结合在一起,提高图像的视觉效果和分析性能。MATLAB作为强大的数学计算和图形处理...

    遥感图像融合之IHS融合

    总的来说,IHS融合是遥感图像处理中一个重要的技术,它结合了高分辨率和丰富光谱信息的优点,提高了图像的分析价值。通过编程实现,我们可以有效地应用这一技术,解决实际问题。在VS2010和OpenCV这样的工具支持下,...

Global site tag (gtag.js) - Google Analytics