Web服务器性能与站点访问性能优化方法

Leah发布于:2022-08-10阅读:0

优化思路分析

要优化Web先来看看服务器的性能Web服务器在web页面处理步骤:

1、Web浏览器发送到特定的服务器Web页面请求;

2、Web接收服务器web页面请求后,找到所要求的web页面,请求Web页面传送给Web浏览器;

3、Web浏览器收到请求web并显示页面内容。

以上三个步骤都是相关的Web但实际上,服务器Web与服务器性能相关最大的是第二步Web来自浏览器要求的服务器Web页面内容。

Web服务器性能与站点访问性能优化方法

我们知道,Web页面内容有静态、动态、静态内容,web服务器可以直接将结果发回浏览器。对于动态内容,通常需要先交给应用服务器进行处理,然后由应用服务器返回结果。

当然,也有Web例如,服务器本身可以处理动态内容IIS可自行解释处理ASP,ASP.NET这两种微软动态网页脚本语言。

从以上简要分析中,我们大致可以得出这样的结论和影响Web影响页面访问的因素如下:

1、Web服务器从磁盘中读取静态页面内容的速度,即时间;

2、Web服务器确定请求内容是静态的还是动态的;

3、Web服务器转发请求给应用服务器的时间;

应用服务器处理(解释)动态内容所需的时间;

5、Web服务器返回Web内容给浏览器响应时间;

6、Web浏览器要求的处理性能接收服务器;

7、Web在网络上传输访问请求数据的时间:从浏览器到服务器,从服务器到浏览器;

8.本地计算和渲染浏览器Web内容的时间,即接收内容后显示内容的时间。

以上八项很容易理解,也很直接,其实以下几项也是相关的Web您可以考虑页面访问速度体验的因素吗?或者是否会影响页面访问性能。

  • Web服务器执行安全战略检查的时间或性能;

  • Web服务器读取日志文件,编写日志内容,关闭日志文件访问时间,先读后写,然后关闭。这三个步骤中的读写涉及磁盘访问性能因素;

  • 同时与Web服务器连接会话的客户端数量,即并发访问量。

我们可以抽象上述影响因素,即:

1、Web服务器磁盘性能;

2、Web与应用服务器交互的性能;

3.应用服务器处理动态内容或动态内容应用的性能;

4、客户端与Web服务器的连接速度,即网络传输性能;

5、Web解释和渲染浏览器Web内容性能;

6、Web并发性能访问。

它反映了我们的性能优化,可以从以下角度开始:

1.包括服务器和客户端两侧的带宽增加互联网连接带宽;

2.加快动态内容的处理性能;

3.尽可能多地使用静态内容Web服务器可以直接使用,无需要求Web内容发送到浏览器端,这里可以开始的方案有:

缓存动态内容

静态动态内容

多台服务器负载均衡,同时处理大量并发访问;

提高服务器磁盘务器磁盘的访问性能I/O性能;

在网页中减少HTTP请求数;

更换性能更好的Web服务器;

服务器的合理部署和服务器的部署已被证明能够显著提高访问性能。

性能优化实践

通过对前一节的简要分析,相信您对优化Web服务器有一定的想法,可以从硬件、软件、Web优化代码三个层次。

下面我们结合一个具体的例子来练习一次,本文的例子是一个小例子Web网站,一些数据是假设的,如果有类似的,纯粹是巧合,只有抛砖引玉。在实际工作中,如果遇到大网站,可以参考这里的分析,修改优化方案。

1.站点简介

一个社区论坛站点,采用Discuz!论坛程序构建,主流程序PHP MySQL组成。

目前网站注册用户近5万,大部分是国内用户,活跃用户约一半,平均每天PV在15~独立访问20万IP数在8000左右。

2.Web优化服务器性能要求

该网站现在部署在国外的服务器上,租用虚拟主机进行操作。由于访问量相对较大,虚拟主机服务提供商经常收到大量流量通知,需要控制访问量。

此外,在美国,虚拟主机服务器没有在中国租用虚拟主机的原因是国内网站的备案非常繁琐。网站运行之初,数据量和访问量都比较小,所以对性能要求不高,数据量也比较小。因此,服务器在查询和处理数据时速度相对较快,这也让人觉得访问速度并不慢。现在,随着数据量和访问量的不断增加,访问速度已经显著下降。

根据社区网站的现状,提出的优化要求是国内访问速度需要翻倍。目前,主页加载时间约为40秒。我希望主页能在优化后20秒内加载。

此外,建议网站数据每天自动备份一次,备份数据保留一个月,以便随时恢复。

第一个是性能优化需求,第二个是额外的需求。

3.性能优化方案

根据网站的现状和优化需求,结合自己的经验和谷歌的搜索,不断与网站所有者确认和沟通,最终获得以下性能优化方案:

从虚拟主机部署到独立服务器部署

虚拟主机受很多限制,无法定制自己的配置Web无法配置服务器PHP动态缓存,独立服务器可以享受内存和处理器资源,不再受虚拟主机用户内存和处理器资源占用的限制。处理器资源和内存资源可以直接提高更多并发访问的性能。

我们选择独立服务器Linode2048型号,2G内存,4核处理器(Linode所有VPS都是四核处理器),80G硬盘空间,800G网络流量。

由Windows操作系统改为Linux操作系统

网站使用PHP MySQL程序,PHP在Windows性能有限IIS需要通过ISAPI形式调用PHP,所以性能不如Linux下Apache直接通过PHP模块解释PHP,更不如Nginx与PHP-FPM由于使用了独立的服务器,操作系统也可以自行确定,Linux我们选择了熟悉的系统UbuntuLinuxServer10.04(一年前还没有12.04),^-^。

Web服务器采用Nginx,而不使用Apache

选用Nginx而不用Apache原因非常直接和简单,因为网站上有许多静态附件文件,在处理静态内容时,Nginx性能是Apache差不多10倍。

在PHP解释和伪静态规则方面,Apache要比Nginx但这并不影响我们放弃它,为了缓解这一点,我们在后面面对PHP动态缓存。

对PHP动态缓存查询,使用eAccelerator这个加速器

PHP加速器是一个为了提高PHP执行效率,从而缓存PHP这样的操作码PHP以后执行不需要分析转换,可以直接调用PHP操作码,所以速度提高了很多。

eAccelerator是一个开源PHP加速器,优化和动态内容缓存,改进PHP脚本的缓存性能,使得PHP在编译状态下,脚本几乎完全消除了服务器的成本。它还可以优化脚本,以提高其执行效率PHP程序代码执效率可以提高1-10倍,这是非常明显的。

具体来说,我们的计划是正确的eAccelerator优化以下设置:

  • 物理内存用于缓存,而不是磁盘。我们知道内存的读写性能是硬盘N因此,在可以安排内存资源的情况下,强烈建议使用内存进行保存eAccelerator缓存内容。

  • 缓存大小设置为32MB,默认情况下,该值是操作系统支持的最大缓存容量。值可以通过修改配置文件来增加,但我们认为没有必要,所以我们放弃了。

Nginx性能优化

选用了Nginx,虽然它的性能很好,但我们仍然需要优化它的性能。在这种情况下,我们做了以下优化:

  • 使用8个过程,每个过程大约需要20个M这里共用了150个内存消耗M左右内存。

  • 充分利用主服务器CPU内核:四核,使用CPU粘性配置选项(worker_cpu_affinity),每个核处理器分配两个过程。

  • 开启gzip压缩功能:gzip压缩对JS,CSS,XML对图片文件,JPG已经压缩过的,它的压缩性能要少一些。

  • 图片本地缓存1天:网站上有很多图片。通常一张图片上传后不会频繁修改,只会频繁访问,所以把图片放在里面Nginx在缓存中,可以减少服务器访问加载次数,提高访问速度。

  • JS、CSS文件本地缓存7天:这两种网页文件通常不会修改。缓存可以减少加载次数,提高访问速度。考虑到不同文件的不同修改频率,为什么这两种文件没有与图片一起设置缓存有效期。

  • Nginx日志每天切割一次:优化项能大大降低Nginx经过一周的查看,日志文件的大小为50M左右,如果不是每天切割,用月切割,那个月的日志文件就是几个G,要Web当服务器在内存中加载如此大的文件时,如果系统本身的内存不够,磁盘自然会被用来缓存,这会影响性能。每天50M左右,内存可以顺利加载,这样Nginx访问日志可以在处理访问时快速保存。

通过以上优化项目,Nginx总共需要占用200M左右内存资源。

对PHPCGI优化工艺性能

Nginx没有PHP所以模块是对的PHP支持是通过的PHP-FPM来实现的,PHP-FPM在这种情况下,我们配置了20个过程,每个过程几乎占20个M共400左右内存资源M左右。

同时,PHP-FPM与Nginx选择交互机制LinuxSocket模式而不是TCP协议端口,Socks是系统级处理模式,socks也就是文件连接TCP协议端口需要网络协议处理,性能不如前者,所以我们选择了前者。

MySQL优化数据库性能

由于网站的主程序是由他人开发的开源程序,我们不能处理数据库查询的程序优化,只能从MySQL寻找突破本身。

我们可以想象,对于论坛网站来说,阅读和查看帖子的访问量通常远远大于创建和回复帖子的访问量MySQL数据库上,就是读表与查询表数据的连接处理更多。

因此,结合以往的知识,我们应该选择对读表、查询性能更好的存储引擎,MySQL缺省的MyISAM引擎是一个适合处理阅读频率远大于写作频率的环境,查询效率相当可观,内存占用很少,这也与我们租用的低内存相匹配置的VPS相符。

具体到MySQL在配置参数的优化方面,由于服务器上内存资源本身有限,缺失的中型环境配置文件直接使用。

网络应用的内容分发

每天访问网站超过10万次,数万次独立IP访问,查看以前的访问统计数据,访问来自中国各地区,使用各种网络连接访问。为了确保来自各种网络的用户的访问速度,减少对网站服务器的要求,我们采用了它CDN来分发静态内容,这样各地的用户可以就近访问到已缓存在CDN上的文件,CDN当第一次静态内容访问时,服务提供商将缓存到全国各地的服务器上。当第二次访问时,用户实际上并没有连接到网站服务器来获取文件,而是直接从中获取文件CDN在服务器上获取可以显著提高网站的性能。

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12577.html

TAG标签:web服务器

上一篇:关于DDoS攻击的认知误区,你中枪了么?
下一篇:无服务器体系架构:应用安全范式转换

相关文章

返回顶部