web服务器优化的方法?

web服务器优化的方法?,第1张

在对Web服务器进行优化时要根据真实的Web应用系统的情况和特征来采取有针对性地优化方案。

1.根据不同的网络特性来看:

1.1局域网

在局域网中,降低M T U (最大传输单位)值对可以避免复制数据和要求校验,而通过优化select系统调用或在Socket事件处理器中执行计算可以优化请求并发管理,利用HTTP1.1持续连接等都可以使系统性能得到相应的改善但在广域网的环境下却没有什么大的作用,有的甚至恰恰相反。

1.2广域网

在广域网中,终端用户的请求的等待时间依赖于与网络延迟的程度,连接带宽限制情况。对于广域网,软硬中断在网络处理中占有很大的分量,所以采用适应的中断处理机制将会给服务器的响应能力带来很大的好处;将服务器定位在内核和将基于进程设计改为基于事务处理也可以不同程度的提高服务器的性能。

2.关于Web负载

除了对Web负载的特征进行分析以便在评测时更好地再现真实负载之外,还要考虑Web服务器所在的网络环境下负载的情况。人们不仅要求服务器满足正常的工作负载要求,而且在高峰时期依然要保持较高的吞吐量。但是,服务器在高负载的情况下的性能表现往往低于人们的期望。

服务器过载的情况分为两种:

2.1瞬间过载

服务器暂时的、短时间的超载,这种情况主要是由服务器负载的特点引起的。大量的研究表明,Web请求的网络通信量分布是自相似的,即Web请求的通信量可以在很大范围内有显著的变化。这就造成服务器常常短时间的超载,但这样情况持续的时间一般很短

2.2服务器长时间的超载

这种情况一般是由某一特殊事件引起的,例如服务器受到拒绝服务攻击或者发生了“活锁”现象

第一种服务器超载情况是不可避免的,但第二种情况则可以通过对服务器改进来改善。抛开恶意的攻击不算,仔细分析服务器处理信息包的过程可以发现,造成系统在超载情况下性能下降的根本原因是高优先级处理阶段对CPU的不公平抢占。

因此,如果限制高优先级处理阶段对CPU的占用率,或者限制处理高优先级的CPU个数,都可以减轻或者消除收包活锁现象。

具体的可以采用以下的方法:

2.2.1采用轮询机制

为了减少中断对系统性能的影响,在负载正常的情况下采用“下半处理” 的方法就非常有效,而在高负荷情况下,采用这个方法仍然会造成活锁现象,这时可以采用轮询机制。虽然这个方法在负载正常的情况下会造成资源的浪费和响应速度降低,但在网络数据频繁到达服务器时就要比中断驱动技术有效的多。

2.2.2减少上下文切换

这种方法不管服务器在什么情况下对性能改善都很有效,这时可以采用引入核心级(kerne1—leve1)或硬件级数据流的方法来达到这个目的。核心级数据流是将数据从源通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程中因为数据在内存中,因此需要CPU操作数据。

硬件级数据流则是将数据从源通过私有数据总线或是虽等DMA通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程不需要CPU操作数据。这样在数据传输过程中不需要用户线程的介入,减少了数据被拷贝的次数,减少了上下文切换的开销。

2.2.3减低中断的频率(主要是针对高负荷情况的方法)

这里主要有两种方法:批中断和暂时关闭中断。批中断可以在超载时有效的抑制活锁现象,但对服务器的性能没有什么根本性的改进;当系统出现接收活锁迹象时,可以采用暂时关闭中断的方法来缓和系统的负担,当系统缓存再次可用时可以再打开中断,但这种方法在接收缓存不够大的情况下会造成数据包丢失。

四.Web服务器优化总结

Web服务器性能是整个Web系统的关键环节,提高Web服务器的性能也是长久以来人们一直关注的课题。这里通过对Web服务器的工作原理和现有的优化方法和技术的分析,得出了对待Web服务器性能的提高也应该具体问题具体分析,要在具体的应用环境中,根据其特点来采取相应的优化措施。

1、静态文件优化

网站的静态文件一般有两种:第一种是网站的 CSS,Javascript 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的,第二种是每天更新的网站内容中上传的图片或者附件,这些图片文件也是基本不会改动的。

解决好静态文件存储和加速,网站性能就首先能得到基本的保证了,WordPress 构建的网站和博客也是一样的。对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己服务器上,其他所有图片 JS CSS 都是从 CDN获取的。

2

服务器优化

优化好静态文件之后,就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化。

选择一个靠谱的主机托管商,在国内这个很多时候让你抓狂,但是只要努力还是可以的。个人选择 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济,也得 VPS, :-) 因为你没有服务器的 Root 权限很多东西是无法进行的(个人博客可以考虑选择我爱水煮鱼目前使用的 Media Temple 这类的 VPS 主机),当然你也可以找我合租,速度肯定非常强悍。

WordPress 缓存机制和如何缓存

要彻底明白和搞懂 WordPress 性能优化,首先要理解 WordPress 缓存机制,WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它是把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突。

所以最基础的 WordPress 缓存插件就是,把 WordPress 产生的 Key-Value 存起来,如果是使用 Memcached,就是存到内存,如果使用 Flie 就是存到硬盘中,当然高级的 WordPress 插件还能做更多,比如 WP Super Cache把整个页面缓存到硬盘中,下次直接访问静态的 HTML 文件,让服务器直接绕过 PHP,节约 CPU 时间。 Batcache 会把整个页面当做一个对象存到内存里面。

App每日推送 由于注册用户操作比较频繁,不适合 WP Super Cache 这样的静态缓存,对硬盘读写太多,讨论区又无法缓存,我们使用 Memcached 和 Batcache 搭配的内存缓存模式:

对于已登陆的用户,Memcached 会把 WordPress 的对象存到内存里面,服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 94%。另外我们 WordPress 程序经过优化,每个页面的查询一般在 2 条左右,所以整个网站效率很高。

WordPress 程序优化

WordPress 程序优化是基于 WordPress Object Cache 的机制对 WordPress 插件和主题进行优化,主要经验有以下几点:

只使用必须的 WordPress 插件,安装太多的 WordPress 插件很容易引起性能问题。从正规站点下载 WordPress 主题,这样下载的主题才能保证质量和安全。WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache。比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。WordPress 插件和主题如果一定要直接查询数据库,请做好 Object Cache,将查询的结果使用 wp_cache_set 存到 Object Cache 中,下次直接使用 wp_cache_get 获取。

网站运营的任何时期,网站访问速度都是至关重要的部分,它是网站友好体验中最基本的一项,如果访问体验都令人不满意,那么后期所做的营销推广模式都有可能徒劳无功,因为网络中客户的选择成本很低,加上普遍客户的耐心都不高,页面访问超过6秒客户就会选择离开,这对于一些流量本来就不高的企业网站来说无疑是雪上加霜。

一、升级正在使用中的服务器 

进行服务器升级工作之前,要考虑多方面的问题,是升级已有的服务器还是购置新的服务器设备须根据实际情况抉择。首先来说升级现有的服务器设备,一般来说网站运营到后期随着业务不断增加,多平台应用的开发对于服务器性能的要求也逐步提升,长而久之服务器遇到性能瓶颈也是情理之中的事情,对于这种情况,我们可以通过升级服务器(例如增加硬件设备或网络带宽)等相关配置来满足不断扩大的业务需求,那么服务器性能瓶颈问题就可以得到解决。

二、优化正在使用的服务器 

不管是完成升级后的服务器,还是新购置的服务器,我们都要对其进行优化,从而提升服务器的性能以及利用率。如何优化服务器?作为在国互网工作到现在的资深IDC工作人员,小编认为大概分为以下四个方面

要点一:尽可能的减少HTTP请求数

从客户访问网站页面到整个页面内容完全展现出来,这其中要花费较多的时间来下载各种Scripts、CSS样式表、Flash以及图片,而每一类下载都相当于一次HTTP请求,这样的请求越多网站被完全加载出来所花的时间会越长,意味着客户端的访问会很慢,那么此时就需要尽可能的减少HTTP请求数,通常我们可以直接把css和js写入到页面中,避免了外部的调用;或者我们可以把CSS文件和JS文件分来,在后台再进行合并,这样客户端浏览器相当于一次请求。这是小编在国互网美女前端那学来的。

要点二:降低DNS查询时间

众所周知网络服务器端的域名和IP地址是相互对应的,当客户端发出请求时,计算机还需要通过域名和IP地址的相互转换来判断,而这个转换工作便是域名解析DNS,通常DNS的查询需要10~20毫秒时间,客户端浏览器也只会等待DNS查询结束之后才会加载此域名下的内容。因此,我们要加快页面的访问速度,就可以从降低DNS查询时间方面去做改善。

要点三:启用服务器Gzip压缩功能

对于大中型网站来说,页面的内容多且比较多样化,单个页面的大小可能是几百K以上了,客户端访问的时候下载会比较慢,此时我们可以采用服务器Gzip页面压缩功能,可以将一个大小为100K的页面文件压缩成25K以下,这样就可以减少网络传输的数量从而提高客户端访问速度。一般服务器都是可以使用Gzip压缩功能的,并且能够针对JS文件、CSS文件和Html进行压缩,多方面去进行优化网站访问速度。

要点四:推荐大中型网站使用CDN加速工具

CDN加速是目前大型网站普遍使用的页面加速方式,它对于网站优化几乎没有影响的,基本原理是将网站镜像备份到很多服务器节点上,使服务器节点周围的用户访问速度更快,从而提升客户端高速访问网站的体验;但是并不是所有的网站都适合使用CDN加速,一般对于小规模站点个人站的话,就不需要使用CDN加速,毕竟从长期来看这可是一笔不小的开支;建议图片站以及多媒体站点可使用CDN加速。

希望以上知识能够帮到您


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存