网站打开慢?web网站服务器性能提升方法总结
来源:Leah 时间:2022-08-07 09:20:19阅读:0
在这个快节奏的时代,如果你点击一个网站想进去看,但是网站打开得太慢,很多人应该选择关闭网站,然后去其他家。网站打开缓慢不仅会造成流量损失,还会影响网站SEO优化效果。面对这种情况,我们有什么解决办法?
优化思路分析
要优化Web先来看看服务器的性能Web服务器在web页面处理步骤:
1.Web浏览器发送到特定的服务器Web页面请求;
2.Web接收服务器web页面请求后,找到所要求的web页面,请求Web页面传送给Web浏览器;
3.Web浏览器收到请求web并显示页面内容。
上面三个步骤都关系Web但实际上,服务器Web与服务器性能相关最大的是第二步Web来自浏览器要求的服务器Web页面内容。
我们知道,Web页面内容有静态、动态、静态内容,web服务器可以直接将结果发回浏览器。对于动态内容,通常需要先交给应用服务器进行处理,然后由应用服务器返回结果。
当然,也有Web例如,服务器本身可以处理动态内容IIS可自行解释处理ASP,ASP.NET这两种微软动态网页脚本语言。
从以上简要分析中,我们大致可以得出这样的结论和影响Web影响页面访问的因素如下:
1.Web服务器从磁盘中读取静态页面内容的速度,即时间;
2.Web服务器确定请求内容是静态的还是动态的;
3.Web向应用服务器转发服务器请求的时间;
4.应用服务器处理(解释)动态内容所需的时间;
5.Web服务器返回Web内容给浏览器响应时间;
6.Web从浏览器请求中接收服务器的处理性能;
7.Web在网络上传输访问请求数据的时间:从浏览器到服务器,从服务器到浏览器;
8.本地计算和渲染浏览器Web内容的时间,即接收内容后显示内容的时间。
以上八项很容易理解,也很直接,其实以下几项也是相关的Web您可以考虑页面访问速度体验的因素吗?或者是否会影响页面访问性能。
Web服务器执行安全战略检查的时间或性能;
Web服务器读取日志文件,编写日志内容,关闭日志文件访问时间,先读后写,然后关闭。这三个步骤中的读写涉及磁盘访问性能因素;
同时与Web服务器连接会话的客户端数量,即并发访问量。
以上11个影响因素1个影响因素,即:
1.Web服务器磁盘性能;
2.Web与应用服务器交互的性能;
3.应用服务器处理动态内容或动态内容应用的性能;
4.客户端与Web服务器的连接速度,即网络传输性能;
5.Web解释和渲染浏览器Web内容性能;
6.Web访问并发性能。
它反映了我们的性能优化,可以从以下角度开始:
1.包括服务器和客户端在内的增加带宽互联网连接带宽;
2.加快动态内容处理性能;
3.尽可能多地使用静态内容Web服务器可以直接使用,无需要求Web内容发送到浏览器端,这里可以开始的方案有:
缓存动态内容
动态内容静态化
4.多台服务器负载均衡,同时处理大量并发访问;
5.提高服务器磁盘务器磁盘的访问性能I/O性能;
6.减少网页中的HTTP请求数;
7.更换性能更好的Web服务器;
8.服务器的合理部署和服务器的部署已被证明能够显著提高访问性能。
性能优化实践
通过对前一节的简要分析,相信大家对优化Web服务器有一定的想法,可以从硬件、软件、Web优化代码三个层次。
下面我们结合一个具体的例子来练习一次,本文的例子是一个小例子Web网站,一些数据是假设的,如果有类似的,纯粹是巧合,只有抛砖引玉。在实际工作中,如果遇到大网站,可以参考这里的分析,修改优化方案。
1.站点简介
一个社区论坛站点,采用Discuz!论坛程序构建,主流程序PHP MySQL组成。
目前网站注册用户近5万,大部分是国内用户,活跃用户约一半,平均每天PV在15~独立访问20万IP数在8000左右。
2.Web服务器性能优化需求
该网站现在部署在国外的服务器上,租用虚拟主机进行操作。由于访问量相对较大,虚拟主机服务提供商经常收到大量流量通知,需要控制访问量。
此外,在美国,虚拟主机服务器没有在中国租用虚拟主机的原因是国内网站的备案非常繁琐。网站运行之初,数据量和访问量都比较小,所以对性能要求不高,数据量也比较小。因此,服务器在查询和处理数据时速度相对较快,这也让人觉得访问速度并不慢。现在,随着数据量和访问量的不断增加,访问速度已经显著下降。
根据社区网站的现状,提出的优化要求是国内访问速度需要翻倍。目前,主页加载时间约为40秒。我希望主页能在优化后20秒内加载。
此外,建议网站数据每天自动备份一次,备份数据保留一个月,以便随时恢复。
第一个是性能优化需求,第二个是额外的需求。
3.性能优化方案
根据网站的现状和优化需求,结合自己的经验和谷歌的搜索,不断与网站所有者确认和沟通,最终获得以下性能优化方案:
从虚拟主机部署到独立服务器部署
虚拟主机受很多限制,无法定制自己的配置Web无法配置服务器PHP动态缓存,独立服务器可以享受内存和处理器资源,不再受虚拟主机用户内存和处理器资源占用的限制。处理器资源和内存资源可以直接提高更多并发访问的性能。
由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在服务器上获取可以显著提高网站的性能。
作者:Coagent
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12433.html
TAG标签:网站服务器