前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux服务器tmp目录爆满并产生大量sess_*文件

linux服务器tmp目录爆满并产生大量sess_*文件

作者头像
申霖
发布2019-12-27 17:50:33
5.9K0
发布2019-12-27 17:50:33
举报
文章被收录于专栏:小白程序猿小白程序猿

近期公司网站全面版本升级,使用thinkphp5.1版本为基础,进行了二次开发,在全面更新后,网站链接暴涨增值98万,运行一周未出现什么问题,但是在下一周,忽然程序出现大面积404页面,查看日志及错误信息,发现是linux服务器tmp目录爆满,导致mysql无法写入,程序崩盘。

通过观察tmp目录文件,发现目录内产生了大量的sess_开发的文件,数量达到了200万之多,并且每个文件都是0kb,但是每一个文件占用的空间却不是0,0kb只是文件的大小,图例如下:

image.png
image.png

sess_*等文件是session存储文件,默认存储位置为linux缓存目录。

首先,我们在php.ini中找到session.savepath = '/tmp'; 可以通过savepath关键字进行查找,可能是不同目录或注释状态,我们将其改为使用状态(去掉前面的   ;   ),并修改保存位置,将其改为tmp目录之外,这样确保tmp目录不至于写满。新建目标目录,如sessionTmp,修改配置文件,session.savepath = '/sessionTmp';   修改后需重启php环境。

关于tmp目录下已经产生的文件如何进行删除,不建议直接对tmp目录直接删除,提供如下删除方式:

1、对于数量不大的,不超过1万的,使用

代码语言:javascript
复制
rm -r sess_*

   命令删除,使用此命令需要进入到tmp目录下。

2、对于数量不大的,不超过1万的,使用

代码语言:javascript
复制
rm -rf /tmp/sess_*

命令删除,使用此命令不需要进入到tmp目录下。

3、对于超过100万,如果仍使用上面的两种命令,出现报错为too long ,表示数列太长,无法操作,使用

代码语言:javascript
复制
find . -name "sess_*" |xargs rm -r

命令删除,耗时和数量成正比,使用此命令需要进入到tmp目录下。

以上解决方式暂时只能处理tmp目录爆满问题,对于session文件的出现暂时无法确定终极原因,有待观察发现!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档