WordPress作为全球最受欢迎的博客平台和内容管理系统,已经拥有庞大的用户群体。在使用WordPress的过程中,很多用户都会遇到内存占用高的问题。这到底是怎么回事呢?本文将带你深入了解WordPress内存占用高的原因,并提供相应的解决方案。
WordPress内存占用高的原因
1. 插件过多
WordPress插件功能丰富,但过多的插件会导致内存占用过高。有些插件可能存在代码漏洞,或者与主题不兼容,导致服务器资源消耗增加。
2. 主题问题
一些主题设计不合理,导致页面加载速度慢,从而增加服务器内存消耗。一些主题的图片处理、动画效果等也会占用大量内存。
3. 数据库问题
数据库是WordPress的核心组成部分,数据库表结构不合理、数据冗余等问题都会导致内存占用过高。
4. 服务器配置
服务器配置不合理,如内存限制、PHP版本过低等,也会导致WordPress内存占用过高。
解决方案
1. 精简插件
检查你的WordPress网站,删除一些不必要的插件。对于一些功能重复的插件,尽量保留一个。定期检查插件更新,确保插件安全、稳定。
插件名称 | 功能描述 | 是否必要 |
---|---|---|
Akismet | 防止垃圾评论 | 必要 |
YoastSEO | SEO优化 | 必要 |
WPSuperCache | 页面缓存 | 必要 |
W3TotalCache | 页面缓存、数据库缓存等 | 可选 |
… | … | … |
2. 优化主题
选择一个轻量级、性能优良的WordPress主题。避免使用过于花哨的主题,减少动画效果、图片处理等。
3. 优化数据库
定期清理数据库,删除无用的数据、表结构。可以使用WordPress插件如WP-Optimize、WP-DBManager等来帮助优化数据库。
插件名称 | 功能描述 | 是否必要 |
---|---|---|
WP-Optimize | 数据库优化 | 必要 |
WP-DBManager | 数据库备份、恢复等 | 可选 |
… | … | … |
4. 调整服务器配置
根据你的网站需求,调整服务器配置。例如,增加PHP内存限制、使用更快的PHP版本等。
配置项 | 值 |
---|---|
memory_limit | 256M |
php_valuememory_limit | 256M |
opcache.enable | 1 |
opcache.memory_consumption | 128 |
… | … |
5. 使用缓存插件
使用缓存插件如W3 Total Cache、WP Super Cache等,可以减少服务器压力,提高网站访问速度。
总结
WordPress内存占用高是一个常见问题,但通过以上方法,我们可以有效地解决这个问题。希望本文能帮助你优化WordPress网站,提高用户体验。如果你还有其他问题,欢迎在评论区留言交流。
wordpress 出现内存不够怎么办
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获取。
5
WordPress性能优化总结
选择好的服务器和托管商,对 WordPress程序进行优化,并且做好缓存,WordPress效率其实很高的,加上 WordPress本身的灵活性和功能强大,WordPress作为各种建站绝对是非常不错的选择,所以我一直使用 WordPress建站。
6
WPJam Debug插件
最后补充一个 WordPress性能检测的插件:WPJAM Debug,可以在页脚显示当前页面有多少条 SQL查询,页面生成花了多少时间,并且把 SQL按照执行顺序和按照耗时两种方式列出,通过这样的方式帮你分析 WordPress哪条 SQL查询有问题或者比较慢,然后着手改进它。
如何解决wordpress搭建的站点CPU100%的问题
出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:
CPU占用率高的九种可能
1、防杀毒软件造成故障
由于新版的 KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。
2、驱动没有经过认证,造成CPU资源占用100%
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。
3、病毒、木马造成
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。
4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。
5、开始->运行->msconfig->启动,关闭不必要的启动项,重启。
6、查看“ svchost”进程。
svchost. exe是Windows XP系统的一个核心进程。 svchost.exe不单单只出现在Window s XP中,在使用 NT内核的 Windows系统中都会有svchost.exe的存在。一般在 Windows 2000中 svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。
7、查看网络连接。主要是网卡。
8、查看网络连接
当安装了Windows XP的计算机做服务器的时候,收到端口 445上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。
要解决此问题,我们可以通过修改注册表来解决:运行:regedit在注册表编辑器中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的 DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:
如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于 512 MB,键入“256”。
9、看看是不是Windows XP使用鼠标右键引起CPU占用100%
前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事?
征兆:
在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:
任何文件的拷贝操作在那个时间将有可能停止相应
网络连接速度将显著性的降低
所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因:
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。
解决方法:
方法一:关闭“为菜单和工具提示使用过渡效果”
1、点击“开始”–“控制面板”
2、在“控制面板”里面双击“显示”
3、在“显示”属性里面点击“外观”标签页
4、在“外观”标签页里面点击“效果”
5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。
方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。
CPU占用100%解决办法
一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了。
当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu搜。有时只结束是没用的,在 xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。
一些常用的软件,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该。 exe文件选兼容性。
svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:\Windows\ system32(xp)或c:\winnt\system32(2000)下的,那就可疑。升级杀毒软件杀毒吧。
右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以关闭杀毒软件的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。
一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。
CPU降温软件,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。
在处理较大的 word文件时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。
单击 avi视频文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。
CPU占用100%案例分析
1、 dllhost进程造成CPU使用率占用100%
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
怎样有效提升WordPress网站速度
1、选择一个好的主机
WordPress主机服务在网站性能中起着重要作用。一个很好的共享托管服务提供商,如BlueHost或Siteground,都会针对WordPress采取额外的措施来优化您的网站的性能。
一般的网站刚起步使用共享主机就可以,但是如果网站内容比较多,使用比较大的主题比较吃内存或者访问量比较大,那么共享主机就比较吃力了。在高流量时段,站点速度非常慢,甚至频繁的停机。
如果你的网站现在访问速度比较慢,看看你用的是什么主机,现有的配置是否够用。
如果不够的话需要升级一下主机,推荐WP Engine管理WordPress主机或者VPS。
2、使用轻量级主题/框架
网站访问速度过慢很有可能是你的WordPress主题没有经过优化或者包含的功能太多太臃肿导致的。
很多高级主题虽然功能强大,自定义程度比较高,但是不可避免导致主题包过大,耗费资源。
像The7一类的主题,十几M的安装包,一般的虚拟主机跑起来很吃力。
如果非要使用一些高级主题推荐使用Divi一类轻量级优化过的WordPress主题。使用一些比较有名大公司开发的主题,尽量少用一些不知名的主题。
3、调整优化图像
网站优化中最常被忽视的方面之一是网站图片优化,我见过很多人图片不经过处理十几M的图片直接上传。WordPress图像优化可以对页面加载时间产生最大的影响。
虽然使用高清的图片可以使我们的网站看起来很好,博客上的一些好的照片真的可以带来很多的分享和评论。
但缺点是未优化的图像通常会很大,几M甚至十几M,严重拖慢网站的访问速度。图像很大也会占用大量HTTP请求。一般虚拟主机是有流量限制的。
如果您的网站上有很多图片,这可能意味着更慢的页面加载时间。因为们不是摄影网站,所以网站的内容和加载速度比图片美观更为重要。
图片的大小对网站的加速速度影响非常大,很多网站加载不完整,都是因为图片太大最后才加载出来。
我们可以在图片上传前优化调整图片尺寸,尽量不要超过1M,100-500kb最合适。
我们可以通过两种方式对图片进行优化。
第一种手动缩放和裁剪图像或者压缩
我们还可以使用无损或有损图像压缩使图片变得更小,大多数人寻找无损压缩,以确保他们的图像在他们的网站上仍然看起来效果仍然很好,即使是被压缩。
有一些工具像Photoshop一样将图片尺寸裁剪将,仍可以使用更简单的方法来完成此操作。
首先选择正确的主题,大部分高级主题都是“支持移动响应式设计”,它们内置的图像缩放器或图像缩放器,可以为不同的设备和屏幕尺寸创建不同的图像上传的缩略图。
第二种也是推荐使用的一种方法,使用插件自动缩放和压缩图像
我测试了5种不同的图像优化插件和服务。让我的页面加载时间缩短了一些。特别是与移动端。
以下是我测试过的一些但是效果都不怎么好
●EWWW Image Optimzation Plugin(免费工具,但是每次发布新的博客文章时,会拖慢网站的速度)。
●WP Smushit(现在有免费和高级插件选项,但是免费效果不怎么明显,付费的感觉又不值这个价)。
●Kraken.io(发现没有什么效果)。
●ShortPixel(还是没什么效果)。
所有上述产品都有其优点,但是我需要一种可以压缩图像,还可以创建的缩放,裁剪和调整大小的图像的工具,这是一个非常关键的元素。
最后,经过广泛的研究,终于找到一个插件,可以满足我所有的需求。
这是一个非常强大的WordPress插件名叫Imagify,由WP Rocket研发,他们应该是最懂网站速度优化的。
用WordPress的Imagify插件连接到Imagify API服务,用于图像缩放和优化。
对于大多数博客,您可以使用完全免费Imagify,它们允许您每个月免费使用该服务多达25 MB的图像。
更重要的是,它可以非常好地优化图像。Imagify允许您在整个网站进行批量优化,然后在加载新图像时进行单独优化。它优化每个图像,甚至是您的主题为您创建的图像。
4.使用缓存插件
WordPress缓存插件显然是非常有用的,可以减少服务器的压力,也可以让网站的访问速度更快,所以,WordPress网站安装缓存插件是必须的
WP Super Cache是 WordPress官方开发人员 Donncha开发的,是目前最高效也是最灵活的 WordPress静态缓存插件。它把整个网页直接生成 HTML文件,这样 Apache就不用解析 PHP脚本,通过使用这个插件,能使得你的网站速度将显著的提速。
还有一个类似的插件W3 Total Cache,WP Fastest Cache也有同样的功能,选择一个使用就可以。
还有一款付费的最强大的缓存插件Wp-Rocket,如果对速度比较在意使用这款插件吧,绝对不会让你失望,价格也不贵每年39美金。
5、使用内容传送网络(CDN)
你过你网站受众是国外各个国家客户,那么建议使用CDN全球加速服务,保证各个国家都能顺利访问。
CDN通过复制您的网站并将其托管在世界各地的服务器上来提高您的网站速度。比如你的网站是托管在美国,但是来自日本的人想要访问它。如果您不使用CDN,那么来自日本的访客将不得不等待美国的服务器加载您的网站。但是,如果您使用CDN,日本的服务器将加载您的网站,使日本访客更快地加载。这样,无论访问者在哪里,都可以确保您的站点从附近的服务器加载。
推荐的CDN服务是Max CDN,价格比较便宜,效果显著,而且操作界面使用起来非常简单只需要几分钟就可以设置完成。
6、优化主页以快速加载
虽然听起来好像是一件事,但是需要做很多事情以确保您的主页快速加载,这可能是您的网站最重要的部分,因为人们将最常访问网站的主页。
包括一下几点事情:
显示摘录而不是完整的帖子
减少页面上的帖子数(控制在5-7个之间显示)
从主页删除不必要的社交分享小部件(仅在帖子中包含它们)
删除不需要不经常使用的插件和小工具
总体而言,网站的主页不要太复杂,中国人就喜欢在网站上放大量的内容和杂七杂八的东西。
7.优化WordPress数据库
因为 WordPress网站的页面都是动态网页,所以对数据库的读取很频繁,数据库优化与否对于网站的访问速度影响很大,因此我们需要经常清理和优化 WordPress数据库,手动太麻烦,大多数人也不会。
WP-Optimize可以自动清理优化数据库,这个插件可以让您做一个简单的任务:优化数据库(垃圾邮件,修订版本,草稿,表格等),以减少开销。
我还会推荐WP-DB Manager插件,它可以安排数据库优化的日期。
8、合并压缩代码
Autoptimize这个插件能够自动的合并 CSS和 JS,并对其压缩,非常的方便,还可以压缩HTML而且一些主题会有大量的 inline CSS,当开启了合并 CSS后,这些 inline CSS会自动添加到文件中。支持CDN,可以选择去除Google字体,使用这个插件需要测试下主题是否兼容,有的主题压缩代码可能会出现问题。
9.使用GZip页面压缩
协议上的GZIP编码是一种用来改进应用程序性能的技术。大流量的站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载.一般服务器中都安装有这个功能模块的。
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在 Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
我们可以使用这个工具来检查我们的网站是否启用了GZIPCheck GZIP Compression
很多插件都支持GZIP压缩Check and Enable GZIP compression,WP Fastest Cache。
10.调整Gravatar图像
Gravatar头像需要调取第三方服务,这样也会拖慢我们网站速度,如果你不建议没有头像或者不需要使用
可以在WordPress仪表板的讨论选项卡中在中找到,设置为空白即可,而不是默认图像,这样会有助于您的网站速度。
如果需要使用的话可以使用wp-user-avatars插件把头像设置为本地。
11.将LazyLoad添加到您的图像
图片懒加载也就是图片延时加载,简单点说就是只加载页面上能看到的图片,从而减短页面的等待时间,当访客需要看其他的图片的时候再加载相应的图片。
这不仅可以加快页面加载速度,还可以通过为不在页面上滚动的用户加载较少的数据来节省带宽。
推荐的插件是Lazy Load安装好以后默认就已经开启,如果你需要特别的设置可以仔细研究下各个设置项。
12.控制存储的修订版本数量
所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这种功能对我们这种小博客来说并没有太大的意义,而且会在数据库产生很多无用的数据,使你的数据库越来越臃肿。
第一种方法,定期清理修订版
WP Cleaner插件的功能很简单,就是为了快速删除自动保存的文章冗余修订版和草稿的,节省空间,提高速度。界面也很简单,直接安装后可以使用,WP Cleaner插件有保护机制,无论怎么操作都不会影响已发布的文章。
第二种方法,修改WP安装根目录下的 wp-config.php文件
//不保存任何版本(除了自动保存的版本)
define(‘WP_POST_REVISIONS’,false);
//保存所有修订版本
define(‘WP_POST_REVISIONS’,true);
//保存 n个修订版本
define(‘WP_POST_REVISIONS’,3);
保存修订版本数设置为2或3,所以有些保存误删可以撤回,但不要太多。
13.关闭pingbacks和trackbacks
默认情况下,WordPress与配备pingback和trackback服务。
每当另一个博客提到您时,它会通知您的网站,从而更新该帖子上的数据。关闭此功能不会破坏您的网站的反向链接,可以禁用掉。
14.WordPress主题和插件更新到最新版本
WordPress,WordPress主题和插件更新的非常频繁,每次更新都会添加一些功能,优化性能,修复一些Bug,所以把这些都更新到最新版本,还可以保证网站更安全。
15、使用CloudFlare
这类似于上面关于使用CDN的部分,但是我很喜欢CloudFlare,因为我在我最好的网络分析帖子中讨论过,我已经决定在这里分开列出。
坦白说,CloudFlare以及上面讨论的W3 Total Cache插件是一个非常有效的组合(他们相互整合),这将大大提高您的网站的速度,但是不仅可以提高安全性。
两个都是免费的!