故障记录,仅供参考!使用 Linode vps 完成建站并且使用时间超过一年以上的学员可以检查一下。
最近帮学员解答问题的时候发现有个学员用 Linode 建的网站,网站内容很多,有上百个产品也有不少 blog 文章(做内容营销的)。他反映,用了一年多了,网站的速度最近感觉明显很慢很慢。
重点检查了一下缓存插件,发现是正常的。但是 FQ 访问并操作的时候明显感觉到很慢。
最后发现是 Linode 的磁盘空间快要满了,硬盘空间少会会导致网站速度慢,如果空间已满,还会导致网站无法访问。
检查了一下原因,是因为以前安装 lnmp 环境安装包的时候程序默认不关闭 Mysql 的日志文件,导致在 /usr/local/mysql/var/ 下生成了许多名为 mysql-bin.0000* 的日志文件,每一个日志文件的大小都有 1G,时间久了会占用硬盘空间。因此我们需要清理这些文件。
首先,xshell 连接 Linode 后,
执行命令查看磁盘空间
df -h
接着会出现类似下面这样的信息:
[root@li1207-110 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 15.5G 3.5G 80% / tmpfs 493M 192K 493M 1% /dev/shm
这位学员用的是 5 美金方案的 Linode,SSD 硬盘 20G 容量,已用了 15.5 G 以上。
我们用 XFTP 到 /usr/local/mysql/var/ 下看一下,确实有几个较大的名为 mysql-bin.0000* 的文件。如:mysql-bin.000015,mysql-bin.000016 等等。。
清理 MySQL 日志文件
执行:/usr/local/mysql/bin/mysql -u root -p
接着提示 Enter password:
输入数据库管理员密码(root password of Mysql Database),注意输入的时候是不显示输入状态的,字符不可见。所以你可以在记事本上先写好密码,然后复制,再鼠标右键粘贴进去,粘贴进去的时候也不显示,直接回车即可。
然后会提示:mysql>
此时复制并执行下面的命令,注意复制的时候要包含分号,粘贴,回车执行。
reset master;
执行完后会提示类似于:"Query OK, 234 rows affected (12.3 sec)",说明已经成功。
再输入:quit 退出 mysql 命令模式。
此时在 XFTP 窗口中点击刷新按钮,可以看到 /usr/local/mysql/var/ 下的名为 mysql-bin.0000* 的日志文件已经清理掉。(注意其他的文件不要去手动删除)
我们再次执行 df -h 命令。
[root@li1207-110 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 8G 10G 42% / tmpfs 493M 192K 493M 1% /dev/shm
可以看到空余了不少磁盘空间。
定期自动清理 MySQL 日志
用 Xftp 连接打开 VPS 的根目录,找到根目录下的 etc 目录,在该目录下有个名为 my.cnf
的文件。这个文件即为 MySQL 数据库的配置( cnf=Configuration) 文件。
下载(或 vi 命令)用 notepad++ 修改编辑打开它,可以看到这一行:
expire_logs_days = 10
这是代表数据库日志文件过 10 天就失效并清理。如果你的网站流量很大(或者将来会流量很大),那么即使是 10 天产生的日志文件也会很大。
因此我们可以把 10 改成 5。上传覆盖原 my.cnf 文件,然后重启 mysql。
service mysql restart
这样每过 5 天就会自动清理日志。
我们也可以彻底禁用 MySQL 日志。
彻底禁用 MySQL 日志
修改/etc/my.cnf 文件,找到
log-bin=mysql-bin
binlog_format=mixed
在这两行前面加上#,将其注释掉。上传覆盖原 my.cnf 文件,然后重启 mysql。
本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。
Hi Sam, 我在输入 reset master; 命令后没有提示“Query OK, 234 rows affected (12.3 sec)”。 页面就停止不动了。请指点一二。
处理慢了就容易遇到网站宕机的情况!
干货,还是不错的
都有 nofollow,能不能发图片。1%的希望。测试下
删掉了 15 个 G。。。哪里来的这么多垃圾啊
但是找不到 my.cnf....
@可小橙 sudo find / -name my.cnf
用了这个命令,找到了好多 my.cnf, 都是在 mysql 下面的
算了,不敢乱改,还是每个星期手动删除一次吧。。。
一言不发岂能证明我来过了?!
直接 rm bin 可能会影响 mysql 数据,可以在注释 log-bin 之前用 mysql -uroot -p 登录 mysql,执行 reset master; 比较稳妥点。
昨天删掉了 14 个 G,挺爽的 哈哈
SAM 哥,反应个情况:使用 log-bin=mysql-bin 和 binlog_format=mixed 修改之后,页面出现乱码了 ,用原文件覆盖之后恢复。 我的是 Linux 6.5 系统 LNMP WP 程序
问下料神,google cloud platform 免费试用 300 美金 这个是不是 VPS, 可以用它建站吗? 和 Linode 有什么区别?