wordpress太卡如何解决?

目前自媒体、短视频时代,网站早已是明日黄花,浏览网站的用户也被各平台瓜分,但是对于企业和个人站长来说,网站依然有存在的意义。国内建站较多的且官方还在更新的cms系统已经屈指可数,所以不少国内站长也开始尝试使用wordpress建站,在使用过程中wp会很吃资源,导致中低配置服务器站长感觉wp很卡。

那么今天就来解决这个问题,个人测试效果显著。

为了让大家了解什么是极速优化,首先我必须的得再次介绍一下主题是如何做的。

简单的说一个网站打开的流程:wordpress使用PHP为后端服务,由PHP进行html内容渲染,然后传入用户浏览器。
那么这里我们从速度优化上来讲主要需要重视的两个过程:后台渲染速度前台网页加载速度

  • 后台渲染速度主要由PHP负责,由php查询数据库,生成html内容再返回给浏览器
  • 前台网页加载速度 主要取决于用户与服务器之间的网速以及请求的内容大小

那么这里我们先说前台加载速度,这一部分最简单易懂,简单的说就是网速快不快,内容大不大。
子比主题在前台加载速度优化上做了哪些优化呢?

  • 全局所有js文件,css文件动态按需加载,注意这个按需加载并不是你开启了这个功能就加载对应的文件,而是说这个页面有这个功能,才会加载这个文件。举例说明:主题V5.2开启自带了视频播放器功能,为了让视频播放器支持不同的流媒体格式,那么这个功能一共有4个JS文件组成(1个视频播放器主文件,3个流媒体格式支持文件),每个文件大约160KB。如果我们直接加载这四个文件,那就会有600多kb的内容了,如果你页面没有视频的话,这600kb的内容无疑就是浪费了!主题的动态按需加载就是为了解决这个问题,不管你是否开启此功能,主题会按照当前页面自动检测是否有视频,有的话的就加载对应的JS文件,同时自动分析支持的格式加载对应的格式支持js文件,不需要的文件一律不加载!同理,其它js和css均采用此原来动态按需加载。
  • 全局所有JS,CSS文件均采用UglifyJS标准进行压缩使用,同时保留了未压缩文件,方便有需要的用户进行修改!
  • 全局所有图片均支持异步懒加载,图片可以说是一个网站最占流量的内容了,开启图片懒加载之后,在用户进入网页的时候不会加载任何图片以提高页面打开速度,然后当用户浏览页面的时候,根据需要,用户看哪里的就加载哪里的图片,当然是提前加载,不会影响用户体验
  • 部分JS,CSS内容延迟加载。有一部分的功能可能不会是用户最需要的,或者不是打开页面立即就会使用的,那么这样的功能所需要的文件,我们将它放置在页面全部加载完成之后再进行加载。比如海报分享功能、一言功能、文章目录等功能:使用率较低,并且一般打开页面用户也不会立即使用此功能。
  • 大量的AJAX不刷新加载功能,AJAX就是不刷新加载内容,比如AJAX下一页,ajax tab等,有效的减少请求内容,提高页面加载速度,主题的AJAX功能全部使用在不影响SEO的内容中!
  • 框架内容支持CDN加速,这个一般适用于海外服务器,国内访问较慢的话可以在主题设置开启。

除了以上部分其实还有很多的细节,这是在开发的过程中就一直放在重心的内容。当然除了加载速度,同时主题也在用户浏览体验上做了很多的优化,主题90%的动画效果均采用基于硬件加速的动画参数,确保所有动画效果思思顺滑不掉帧,比如幻灯片、图片灯箱等。同时在js函数和CSS函数编写的时候均采用高效的执行逻辑,避免重复、避免使用高负荷函数等。

后台主要采用php以及数据库进行页面渲染,主题开发中保持良好的开发逻辑,并且使用WP官方Object Cache对象缓存机制,确保函数的高效执行,有效的提高渲染速度
本篇文章我们也重点说一说如何优化后台的渲染速度

优化措施

首先分享一下我的建议以及可以优化速度的有效措施

  • 前台优化:使用CDN加速
  • 前台优化:图片使用OSS/COS等第三方储存,减少服务器带宽压力
  • 后台优化:不建议使用全静态缓存,会导致很多交互功能不能用
  • 后台优化:推荐使用Redis或Memcached缓存功能,不会有任何负面影响
  • 后台优化:推荐使用opcache进行PHP加速优化

Redis缓存教程

php在执行函数最消耗时间的就是查询SQL数据库了,一般来讲一个页面的数据库查询大概在120到260次左右,使用Redis或者Memcached缓存,原理就是将php查询过的数据库缓存下来,下一次相同内容就不再查询数据库了,直接从缓存获取,极大的提高php执行效率。

WordPress官方采用 Object Cache对象缓存,同时主题的也遵循此机制,配合Redis或者Memcached缓存,能将数据库查询降低80%,有效的提高了渲染速度!
Redis和Memcached原理是一样的,我们只需要二选一安装使用即可,优化加速的效果也差不多。我就以宝塔环境安装 Redis为例,进行详细的图文教程。

教程一共分为三步:

  1. 安装PHP的 Redis 扩展
  2. 宝塔安装 Redis 程序
  3. wordpress安装 Redis 缓存插件并开启

安装PHP:Redis扩展

进入宝塔,选择到我们目前在使用的PHP程序(推荐使用PHP7.2),进入安装扩展找到Redis并安装:

图片[1]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

等待安装完成之后,记得重启一下php服务:

图片[2]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

安装Redis程序

进入宝塔的软件商店,搜索 Redis ,然后安装即可,安装完成之后无需做任何设置。

图片[3]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

安装WP插件

最后一步就是在Wordpress安装 Redis 缓存插件了,支持 Redis 缓存 的插件有很多,我这里以 Redis Object Cache 这款插件为例进行安装

  1. 直接在插件中心搜索 Redis Object Cache ,安装即可
  2. 启用插件
  3. 开启缓存
图片[4]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题
搜索安装插件
图片[5]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题
启用缓存功能

这个功能十分简单,不要觉得是英文插件有会影响使用,开启之后看到如下界面就说明成功了。如果没有开启成功,请按照上面的步骤检测php扩展和Redis程序是否安装成功

图片[6]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

重要提醒

如果您的服务器有多个网站,并且又要使用Redis,那么,一定要为网站设置不同的数据库前缀!不然数据会乱窜

Opcache加速教程

根据PHP的执行逻辑,每一个php函数在执行的时候php会先把此函数进行编译解析。Opcache是PHP官方公司开发的一款PHP优化加速扩展,它的原理把PHP函数编译解析后的内容进行缓存,从而提高PHP的执行速度!根据测试,能有效的提高2到5倍左右的执行效率。

安装Opcache就十分简单了,直接安装 Opcache 扩展,再重启PHP服务即可!

图片[7]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

使用宝塔安装 Opcache 之后会自动配置好扩展参数,如需适当修改,进入配置文件,搜索;opcache,即可看到配置参数:

opcache.enable=1 (default "1")
;OPcache打开/关闭开关
opcache.memory_consumption=128 (default "64")
;OPcache共享内存存储大小。用于存储预编译的opcode(以MB为单位)。
opcache.interned_strings_buffer=8 (default "4")
;OPcache字符串驻留大小,(以MB为单位)
opcache.max_accelerated_files=80000 (default "2000")
;OPcache控制内存中最多可以缓存多少个PHP文件,建议设置大一点,大于你的项目中的所有PHP文件的总和
opcache.revalidate_freq=3 (default "2")
;OPcache设置缓存的过期时间(单位是秒);几秒内内容不会刷新,如果需要实时更新可以设置为 0
opcache.fast_shutdown=1(default  “0”)
;OPcache更快速清理内存的机制,实际效果视环境而异

查看及分析

缓存安装好了之后,怎么查看效果呢?之前就有网友叫我加一个显示sql查询数量以及php渲染时间的功能,其实这个一直都是有的,使用火狐浏览器或者Chrome浏览器按F12进入浏览器控制台Console就能看到了。你可以测试一下,未开缓存以及开启缓存的实际效果。

图片[9]-wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

最后温馨提醒:

  • 主题更新或者更新重要内容请记得刷新缓存!
  • 使用缓存之后,部分不太重要的数据就不会实时更新,主题会自动判断!这种不重要的内容无需关注
  • 适当优化,如果未优化就能低于500毫秒那就不建议再做优化了
  • 同一个服务器有多个网站,并且又要使用Redis,那么一定要为网站设置不同的数据库前缀!不然数据会乱窜
  • 最新郑重提醒,不要用其他会静态缓存的插件或者功能,静态缓存会导致页面所有内容不能实时刷新,比如登录、注册、购买、发布、评论、点赞、签到等等等等就按照本文教程配置缓存就完全够了,主题已经做好了缓存策略,该缓存的自动缓存,该刷新缓存的时候也会自动刷新
  • 关于PHP版本,我个人实测php7.2性能优于php7.4,不知道是不是个例,大家可以试试
  • redis缓存的特性就是将数据保存到内存中已达到加速的效果,所以比较消耗内存,大概10万数据量消耗2G,仅供参考

最后多说几句,如果通过此教程优化后,页面生成时间还是比较慢,那么可以从以下几点来分析了:

  1. 你网站的数量有多少?如果数据量巨大,那肯定会再稍微慢一点是正常的,这个数据仅供参考:2万文章以为400-600毫秒,5万文章800-1000毫秒,10万文章以上1.2-1.5秒左右。(包含文章加帖子)
  2. 服务器性能问题,并且请勿认为配置=性能,很多站长认为我用的8核16G服务器性能应该很强,但实际上很多小公司的8核16G的性能还比不上大公司的2核4G,主要是因为部分小厂虚标严重,且CPU比较老。所以我们推荐使用阿里、腾讯、华为、百度等大公司服务器。官网使用的是华为云2核4G5M的C6S服务器,大约1500一年,仅供参考
  3. 还有很重要的一点就是网站的数据来源,如果你的文章或其他数据不是通过网站正常发布的,例如:采集的、数据库导入的等,那么这种数据会极大的影响速度!要问为什么?我们就需要了解发布内容的流程逻辑了,我们在网站正常发布一篇文章,系统会有很多依赖数据会进行判断并更新写入,如果你是采集的内容,那么这些依赖数据多数都会缺失,这就会导致查询数据的时候多走弯路,从而导致加载速度变慢!我知道有些采集软件可以补充部分依赖的Meta数据,但是很多关联的依赖数据是无法写入的,举个例子:发文章系统会更新的依赖数据:该文章所有分类、标签的总文章数、总阅读数,该文章作者的热度、能获得多少积分、经验值等,文章内的图片数据查询等等、文章相关数据缓存的储存等等。当然也不是说不能采集,只是说非正常发布的内容越多,对速度影响越大!
  4. 海外服务器,这一点主要影响的是网络速度,毕竟是海外网络速度肯定没有国内稳定可靠,如果确实要用海外的服务器,建议首选大厂的香港、台湾

本文转载自技术内容来源子比官网,只做主题效果测试使用,本文观点不代表入门屋 | 全栈技术入门从RUMENWU.COM开始立场。

(0)
小屋的头像小屋
上一篇 2024年9月28日 上午9:25
下一篇 2024年12月19日 下午5:26

相关推荐

  • 国家互联网应急中心发布美网络攻击我国某先进材料设计研究院事件调查报告

    1 月 17 日消息,国家互联网应急中心刚刚发布了《美网络攻击我国某先进材料设计研究院事件调查报告》,IT之家附原文如下: 2024 年 12 月 18 日,国家互联网应急中心 CNCERT 发布公告,发现处置两起美对我大型科技企业机构网络攻击事件。本报告将公布对其中我国某先进材料设计研究院的网络攻击详情,为全球相关国家、单位有效发现和防范美网络攻击行为提供…

    2025年1月17日
    33900
  • 火爆的微短剧,如何迈入2.0时代?

    2024年,微短剧以井喷之势,迎来快速发展。 据《中国互联网络发展状况统计报告》显示,截至今年6月,我国微短剧用户规模已达5.76亿人,占整体网民的52.4%,超过网络外卖、网络文学和网约车用户数量,跃居数字生活榜单前列,“看微短剧的人比点外卖的人还多”。 微短剧为何如此火爆?火爆的背后存在哪些问题?微短剧产业如何实现长效发展? 1、微短剧掀起流量狂潮 根据…

    2024年12月19日
    31200
  • WordPress SMTP邮件发送插件:Easy WP SMTP

    现在很多站长问入门屋小编:WordPress如何实现注册、找回密码邮件验证通知功能,每次回答相同的问题,今天入门屋小编推荐一个WordPress SMTP邮件发送插件:Easy WP SMTP 邮件发送是网站的基础功能,WordPress在注册、找回密码、评论通知等地方也会涉及到邮件的发送。一般的虚拟主机都是有自带PHP邮件功能的,VPS、云服务器的话,则是…

    建站入门 2018年8月30日
    76600
  • 提高网站页面收录速度技巧

    很多人经常问入门屋小编,我的网站怎么没有收录?文章怎么快速被收录?下面入门屋小编来解析这个问题: 站点页面被搜索引擎收录是各位站长上线网站后首要问题,其实站点页面收录的快慢就是网站权重的体现,网站文章收录速度,也反映了搜索引擎快照的更新速度。要想提高文章被搜索引擎收录的几率,要么让搜索引擎蜘蛛频繁光顾你的网站抓取信息,要么把你网站上的内容充实起来,每天更新大…

    建站入门 2018年8月16日
    57900
  • 关键字也有权重吗?

    这似乎是一个很新的概念。但,对SEO颇懂行的人就明白,搜索引擎显然会这样做的。 决定关键字权重的大参数(之所以用大参数,是因为小参数还很多): 1、这个网页的PR值、这个网页主域名的PR值; 2、关键字在网页标题中的比重(就是比例)和位置; 3、关键字在meta标签中是否被提及; 4、网页内是否有很多与该关键字相关的关键字词组; 5、关键字在网页上的密度(3…

    建站入门 2018年4月19日
    54400

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信