post

WP Rocket 缓存插件,真的好用

之前本博客使用过 w3tc,后来改用 WP Super Cache,用了几年,最近发现还有一个更好用的 WP Rocket,果断从国外网站找了一个免费的试用一下。

随便打开一些开关后,就能正常使用,一点兼容性问题都没有,是真的好用,我现在已经将原来使用的 WP Super CacheBetter WordPress Minify 都卸载了。

[Read more…]
post

WordPress 响应慢,建立数据库连接时出错

之前博客响应特别慢,还经常出现“建立数据库连接时出错”这个错误,英文为“Error establishing a database connection”。

通过 top 命令发现 kswapd0 进程 CPU 占用过高,而 kswapd0 进程是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒 kswapd0 进程,由 kswapd0 分配磁盘 Swap 交换空间作缓存,因而占用大量的 CPU 资源。

如果 Swap 空间用光了,那么系统就会发生错误,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。

也正是因为内存不足,造成了数据库MySql进程被杀,导致 WordPress 出现“建立数据库连接时出错”。

[Read more…]
post

Mysql占用过高CPU时的优化手段

Mysql占用CPU过高的时候,该从哪些方面下手进行优化?

占用CPU过高,可以做如下考虑:

  1. 一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引;
  2. 打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等;
  3. 考虑定时优化文件及索引;
  4. 定期分析表,使用optimize table;
  5. 优化数据库对象;
  6. 考虑是否是锁问题;
  7. 调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
  8. 如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。
  9. 可能由于内存latch(泄露)导致数据库CPU高
  10. 在多用户高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,使用memcached或者redis缓存都可以;
  11. 看看tmp_table_size大小是否偏小,如果允许,适当的增大一点;
  12. 如果max_heap_table_size配置的过小,增大一点;
  13. mysql的sql语句睡眠连接超时时间设置问题(wait_timeout)
  14. 使用show processlist查看mysql连接数,看看是否超过了mysql设置的连接数(http://www.cnblogs.com/kevingrace/p/6226324.html
[Read more…]
post

Nginx 405 not allowed解决办法

Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。

nignx的问题,一般可以通过下面的方法解决,只需要更改nginx配置,增加一句:

error_page 405 =200 http://$host$request_uri; 
[Read more…]
post

一张图了解MySql复制参数

一张图了解MySql复制参数:

MySql复制参数

post

升级LNMP,备份和还原WordPress

前一阵子心血来潮的要升级https,但是博客很久没升级了,使用的 LNMP 0.9 版本,环境不支持https,我尝试过手动升级,可还是比较麻烦的,而且问题比较多,一不做二不休,直接升级到 LNMP 1.3。

升级就意味着要重做系统,重新安装 Nginx、MySql,最重要的是 WordPress 的数据备份和恢复。

下面介绍一下升级LNMP以及备份和还原 WordPress、数据库的过程。
[Read more…]

aside

最近重做的LNMP ,博客、配置、数据库全部重来,还好之前都做好了备份。
但是问题还是有的,需要通过系统日志 /var/log/messages、PHP日志、MySql日志去分析。
[Read more…]

post

轻松搞定 Let’s Encrypt 免费SSL证书

Let’s Encrypt 是一个免费、自动化、开放的证书颁发机构,虽然申请的SSL/TLS证书只有3个月有效期,但是可以通过官方提供的工具自动续期,从而达到永久免费使用,无疑是小站长们最好的选择,而且申请步骤真的很简单,很简单!

本文将介绍,基于 Let’s Encrypt certbot 客户端来申请简易型的 DV SSL 证书 (Domain Validation SSL 域名验证型SSL证书)。
[Read more…]

post

解决 Varnish 频繁出现 Error 503/400错误

最近发现使用了 Varnish 缓存后,后台操作经常返回 Error 503 Service unavailable,尤其是发布文章的时候,经排查,我知道原因和解决办法了!

Varnish Error 503

p.s. 该文章的方案也不能完全解决我的问题,无奈下我暂时去掉了varnish,改用dnspod的cdn缓存了,方便省事。
[Read more…]

post

Sublime Text 插件安装方法

Sublime Text 的好用之处就不用我多介绍了,它有很多优秀好用的插件可以使用,那么如何安装插件呢? 首先需要安装一下包控制器 Package Control。

Sublime Text  包控制器
[Read more…]