如何优化你的WordPress服务器

如何优化你的WordPress服务器,第1张

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 获取。

Seafile服务器缓存是指Seafile使用缓存机制来优化其文件存储和传输性能。缓存通常被用于在Seafile客户端和服务器之间存储已经下载的文件块,以便在需要时可以快速访问这些文件块。
Seafile服务器缓存工作方式如下:
1 当某个文件被上传到Seafile服务器时,它会被分成多个块并存储在服务器上。
2 当Seafile客户端需要访问这些文件时,它会向服务器发送请求来下载这些文件块。
3 为了提高文件访问速度,Seafile客户端会将下载的文件块存储到本地缓存中。
4 如果客户端再次请求相同的文件块,Seafile客户端会尝试从本地缓存中获取它们,而不是从服务器重新下载它们。
通过使用缓存机制,Seafile可以显著提高文件传输速度,并减少网络延迟和带宽使用。此外,Seafile还提供了一些设置选项,以调整缓存大小和缓存策略,以最大化性能和灵活性。
需要注意的是,过多的缓存可能会导致占用过多的磁盘空间,特别是在频繁访问大型文件时。因此,在设置缓存时,应该根据具体的应用需求和系统资源状况进行调整,以便在性能和存储空间之间做出良好的平衡。

 Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。
一Tomcat内存优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalinash 中设置 JAVA_OPTS 参数。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置
现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
首先查看Tomcat 进程号:
sudo lsof -i:9027
我们可以看到Tomcat 进程号是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我们可以看到MaxHeapSize 等参数已经生效。、
二Tomcat并发优化
1Tomcat连接相关参数
在Tomcat 配置文件 serverxml 中的 <Connector /> 配置中
1>参数说明
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于 *** 作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol=">一、除非你的整个WEB服务器只做一个论坛使用,否则用APPLICATION里面放论坛索引是不科学的。
二、每次都从数据库里面取也无可厚非,数据库有自己查询缓存系统,这样的事情交给数据库去做是对的,老是过份的考虑得这么细,在开发大型系统应用的时候会严重影响效率。
三、如果使用一般数据库,希望进行一下优化,不用每次都在数据库里面取,也是可行的,方法是在编写好每次都从数据库里面取的程序以后,进行如下两个方面的变化:
1是在从数据库里面取数的地方,增加判断是否存在相应的静态html文件,如果存在就从文件里面读,否则从数据库里面取出来,并在输出之前保存到html文件里面,逻辑如下:
$cachefile='静态html文件名html';
if (file_exists($cachefile)) $out_str=file_get_contents($cachefile);
else{ $out_str='';//接着从数据库里面取出内容,并添加到字符串变量$out_str后面
$fp=fopen($cachefile,'w');fputs($fp,$out_str);fclose($fp);
}
echo $out_str;//输出内容
2还需要修改所有针对上面的内容进行delete和update的程序,在修改数据库之后增加删除文件的功能,大致结构是:
$cachefile='静态html文件名html';
delete($cachefile);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10660896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存