欢迎来到深圳市云网时代信息技术有限公司|云网时代数据中心! 业务咨询热线:0755-88868179增值电信业务经营许可证:B1-20170628
行业新闻
当前位置:首页>文章中心>行业新闻

网站开得慢吗?网站服务器性能改进方法摘要

发布时间:2020-07-09 点击数:1549

在这个快节奏的时代,如果您单击一个网站并希望签入,但是该网站打开速度太慢,那么许多人应该选择关闭该网站并转到其他住所。网站缓慢的开放速度不仅会造成流量损失,还会影响网站SEO优化的效果。面对这样的情况,我们有什么解决方案?

提升网站打开速度的方法


优化思路分析


为了优化Web服务器的性能,让我们首先看一下Web服务器在网页处理中的步骤:

1. Web浏览器将网页请求发送到特定服务器;

2. Web服务器收到网页请求后,搜索请求的网页,并将请求的网页发送给Web浏览器;

3. Web浏览器接收请求的网页内容并显示。

以上三个步骤都与Web服务器有关,但是实际的Web服务器性能与步骤2最相关,在该步骤中,Web服务器需要查找浏览器请求的网页内容。

我们知道网页内容可以是静态的,也可以是动态的静态内容。 Web服务器可以将结果直接发送回浏览器。对于动态内容,通常需要将其移交给应用程序服务器进行处理,然后应用程序服务器返回结果。

当然,也有可以处理动态内容的Web服务器。例如,IIS可以自我解释和处理ASP,ASP.NET,这是Microsoft的两种动态Web脚本语言。

从上面的简要分析中,我们可以大致得出结论,有几个因素会影响Web页面的访问:

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

2. Web服务器确定所请求的内容是静态还是动态的时间;

3. Web服务器将请求转发到应用程序服务器的时间;

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

5. Web服务器向浏览器返回Web内容的响应时间;

6. Web服务器从浏览器接收请求的处理性能;

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

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

上面的8个项目简单易懂。实际上,以下各项也与网页访问速度的体验有关。你能考虑一下吗?还是会影响页面访问性能。

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

Web服务器读取日志文件,写入日志内容并关闭对日志文件的访问,然后进行读写然后关闭的时间。这三个步骤中的读取和写入操作还涉及磁盘访问性能因素。

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

我们总共可以提取上述11个影响因素,则为:

1. Web服务器磁盘性能;

2. Web服务器与应用程序服务器之间的交互性能;

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

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

5. Web浏览器解释和呈现Web内容的性能;

6. Web访问并发性能。

为了反映我们的性能优化,我们可以从以下几点开始:


1.增加带宽,包括服务器和客户端上的Internet连接带宽;

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

3.使用尽可能多的静态内容,以便Web服务器可以直接将Web内容发送到浏览器,而无需请求应用程序服务器。以下是一些可能的解决方案:

动态内容缓存

动态内容静态

4.多个服务器的负载平衡可同时处理大量并发访问;

5.提高服务器磁盘访问性能,也称为I / O性能;

6.减少网页中HTTP请求的数量;

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

8.合理部署服务器。实践证明,将服务器部署在靠近客户端的位置可以显着提高访问性能。

性能优化实践


经过上一节的简要分析后,我相信您对优化Web服务器有一定的想法。您可以从硬件级别,软件级别和Web代码级别进行优化。

让我们用一个具体的例子来实践它。本文中的示例是一个小型网站。假设一些数据。如果它们相似,则它们纯属巧合,仅作为参考。在实际工作中,如果遇到大型站点,可以参考此处的分析来修改优化计划。

1.网站介绍

使用Discuz构建的社区论坛站点!论坛程序,由主流的PHP + MySQL组成。

该网站目前有近50,000个注册用户,其中绝大多数是国内用户。活动用户数量约为一半,平均每日PV为150,000至200,000,独立访问IP数量约为8000。

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

该网站目前部署在国外的服务器上,并由虚拟主机租用进行运营。由于访问量很大,因此通常会收到来自虚拟主机服务提供商的大量流量的通知,并且需要进行受控访问。

另外,之所以在美国不租用虚拟主机的服务器,是因为国内网站的归档非常繁琐。在网站开始运作时,数据量和访问量相对较小,因此对性能的要求不高,并且数据量较小,因此服务器在查询和处理数据时速度更快,这也使得人们觉得访问速度并不慢。现在,随着数据量和访问量的不断增加,访问速度已大大降低,现在是时候提高访问性能了。

根据社区网站的现状,提出的优化要求是家庭访问速度需要加倍,当前的网页加载时间需要40秒左右。我希望优化可以在20秒内加载首页。

另外,建议每天可以自动备份一次网站数据,并将备份数据保存一个月,以便随时恢复。

在以上两个要求中,第一个是性能优化要求,第二个是附加要求。

3.性能优化计划

根据网站的现状和优化需求,结合自身的经验以及Google的搜索,并不断与网站所有者进行确认和沟通,最终得出了最终的性能优化计划:

从虚拟主机部署更改为独立服务器部署


虚拟主机有很多限制。您不能自己配置Web服务器和PHP动态缓存。而且,独立服务器可以享受专有的内存和处理器资源,并且不再受虚拟主机供应商的每个虚拟主机用户的内存和处理器的约束。资源占用限制。处理器资源和内存资源对接受更多并发访问具有直接的性能改善效果。

从Windows操作系统更改为Linux操作系统


该网站使用PHP + MySQL程序。 Windows下PHP的性能受到IIS的限制。需要通过ISAPI调用PHP,因此在Linux下性能不如Apache。 PHP是通过PHP模块直接解释的,它不如Nginx和PHP-FPM的性能好。由于使用了单独的服务器,因此操作系统也可以由我们自己确定。对于Linux系统,我们选择了熟悉的Ubuntu Linux Server 10.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个进程,每个进程需要大约20M的内存消耗,这里总共使用了大约150M的内存。

充分利用主服务器的CPU核心:

四个核心使用CPU粘性配置选项(worker_cpu_affinity),为每个核心处理器分配了两个进程。

打开gzip压缩:

gzip压缩非常适合JS,CSS,XML压缩,它可以压缩一半,即将传输时间减少一倍;

对于图像文件,JPG已被压缩,其压缩性能较差。

图片在本地缓存了1天:

网站上有很多图片。通常,图像在上传后不会被频繁修改,而只会被频繁访问。因此,将图像放置在Nginx缓存中可以减少服务器访问负载的数量并提高访问速度。

JS,CSS文件在本地缓存7天:

这两种网页文件不会正常修改并缓存,这可以减少加载次数并提高访问速度。

为什么这两个文件没有与图片一起设置缓存有效期,是因为考虑到不同文件的修改频率不同。

Nginx日志每天被切割一次:

这种优化可以大大减少Nginx日志文件的大小。查看一周后,每日日志文件约为50M。如果不是每天都削减,而是按月削减,那么该月的日志文件就是几G。当在内存中加载如此大的文件时,系统本身没有足够的内存,因此自然会使用磁盘进行缓存,这会影响性能。

每天大约有50M,可以将其平稳地加载到内存中,以便Nginx在处理访问时可以快速保存访问日志。

经过上述优化项目,Nginx总共需要约200M的内存资源。

优化PHP CGI流程的性能


Nginx没有PHP模块,因此它对PHP的支持是通过PHP-FPM实现的。 PHP-FPM运行进程来处理并发请求。在这种情况下,我们配置了20个进程,每个进程占用约20M的内存资源,总计约400M。

同时,PHP-FPM和Nginx之间的交互机制选择Linux Socket模式而不是TCP协议端口,Socks是系统级处理模式,Socks是文件连接,TCP协议端口需要通过网络协议进行处理,其性能不如前者。我们选择了前者。

MySQL数据库性能优化


因为网站的主程序是别人开发的开源程序,所以我们无法处理数据库查询程序的优化,只能从MySQL本身中找到突破。

我们可以想象,对于论坛网站,发布和检查帖子的访问次数远大于创建帖子和回复帖子的访问次数。它反映在MySQL数据库中,即读取和查询表数据的连接处理更多。

因此,我们必须选择在读取表和查询方面具有更好性能的存储引擎。结合先前的知识,MySQL的默认MyISAM引擎旨在处理读取频率远大于写入频率的环境。查询效率相当高,内存占用很少,这也与我们以低内存配置租用的VPS一致。

特定于MySQL配置参数的优化,由于服务器本身的内存资源有限,因此直接使用默认的中型环境配置文件。

内容分发网络应用


该站点每天有超过100,000次访问,数以万计的独立IP访问,查看以前的访问统计数据,来自该国各个地区的访问,使用各种网络连接进行访问,以确保用户从每个网络,并减少网站服务器的数量,我们使用CDN分发静态内容,以便各地的用户都可以访问已缓存在CDN上的文件。首次访问静态内容时,CDN服务提供商会将静态内容缓存在全国的服务器上。在第二次访问期间,用户实际上并没有连接到网站服务器来获取文件,而是直接从CDN服务器获取文件,这可以显着提高网站性能。

希望云网时代小编的分享能帮助到大家,云网时代专注IDC14年,为广大用户提供专业化深圳服务器托管,深圳服务器租用,深圳主机托管,云服务器租用,香港主机租用等服务器资源,详情欢迎咨询客服了解。

在线客服