记一次ThinkPHP项目缓存过大导致面板无法打开的解决过程


起因:今天QQ用户私聊我说突然间面板打不开了,是什么问题?由于该用户直接贴图过来的,看到了他执行过bt 3 命令启动面板

0.1.png (393.03 KB, 下载次数: 3)

下载附件

2021-2-24 18:23 上传

让我疑惑的为何要reboot重启服务器?

看着截图进程在运行中,用户说发过帖子了,找到帖子,看来下是磁盘或者inode满了


1.png (111.21 KB, 下载次数: 2)

下载附件

2021-2-24 18:24 上传

随和用户聊天能否发服务器登录信息来,顺便完善下目前的教程贴的空白,待用户答应后,开干!


QQ图片20210111171725.jpg (14.2 KB, 下载次数: 6)

下载附件

2021-2-24 18:26 上传


处理过程:

查看磁盘和inode

df -h 查看磁盘使用信息

df -i  查看磁盘inode使用信息


2.png (50.62 KB, 下载次数: 7)

下载附件

2021-2-24 18:27 上传

发给用户一个查找inode信息的命令:

  1. for i in /www/*; do echo $i; find $i |wc -l|sort -nr; done

复制代码

mmm.png (16.05 KB, 下载次数: 3)

下载附件

2021-2-24 18:29 上传

看到/www/wwwroot/目录下面inode占用最多,再次递归查询

  1. for i in /www/wwwroot/*; do echo $i; find $i |wc -l|sort -nr; done

复制代码

4.png (42.5 KB, 下载次数: 5)

下载附件

2021-2-24 18:31 上传

定位到网站项目的位置了:

/www/wwwroot/项目名

再次递归

  1. for i in /www/wwwroot/项目名/*; do echo $i; find $i |wc -l|sort -nr; done

复制代码
解决:

最后定位到:

/www/wwwroot/项目名/runtime/cache

这是ThinkPHP类型项目的缓存路径

得到用户的同意后,删除这个目录下面的缓存文件

缓存文件.png (107.25 KB, 下载次数: 1)

下载附件

2021-2-24 18:34 上传

后面查询资料,是可以取消这个缓存或者使用Redis、Memcached缓存数据库进行缓存。

取消ThinkPHP的缓存

找到项目目录下  /system/thinkphp/convention.php这个文件,将缓存设置比较合理的时间:


缓存时间设置.png (26.38 KB, 下载次数: 4)

下载附件

2021-2-24 18:37 上传

如果有ThinkPHP大佬知道怎么设置合适的话,请在本帖下留言,您的善举是我们学习的源泉!


老天爷.gif (37.25 KB, 下载次数: 4)

下载附件

2021-2-24 18:40 上传


转自   https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=64603&extra=page%3D3%26filter%3Dtypeid%26typeid%3D10