Home >Backend Development >PHP Tutorial >Linux服务器瞬间生成巨量session文件撑满硬盘,请问有什么办法解决?

Linux服务器瞬间生成巨量session文件撑满硬盘,请问有什么办法解决?

WBOY
WBOYOriginal
2016-06-06 20:38:00998browse

Linux上跑着一个wordpress站点,但是最近很不正常

具体表现形式为:
/tmp目录下瞬间生成巨量的session文件(1100多万),CPU瞬间400%,硬盘直接撑爆(90G),导致服务器宕机

文件已经多到使用ls和rm命令都没有反映了

这个情况在nginx和apache2两个webserver下都发生过,在Ubuntu和CentOS也都发生过

因为自己是这方面新手,很多问题不懂,查了很多资料但是都不能解决

自己胡乱猜测是否和WP super cache有关,但是发现停止插件后还是有这个问题

实在查不到相关资料,所以前来请教一下:
这种瞬间生成巨量session文件的情况是否和服务器被人攻击有关系?
一般这种问题要如何防止?

PS.在用nginx的时候还发生过一个问题,php-fpm的进程cpu100%,但使用查到的一些资料去跟踪进程没有收获。

请问我应该查找哪些相关资料来研究这个问题?

请多指教,谢谢!

回复内容:

Linux上跑着一个wordpress站点,但是最近很不正常

具体表现形式为:
/tmp目录下瞬间生成巨量的session文件(1100多万),CPU瞬间400%,硬盘直接撑爆(90G),导致服务器宕机

文件已经多到使用ls和rm命令都没有反映了

这个情况在nginx和apache2两个webserver下都发生过,在Ubuntu和CentOS也都发生过

因为自己是这方面新手,很多问题不懂,查了很多资料但是都不能解决

自己胡乱猜测是否和WP super cache有关,但是发现停止插件后还是有这个问题

实在查不到相关资料,所以前来请教一下:
这种瞬间生成巨量session文件的情况是否和服务器被人攻击有关系?
一般这种问题要如何防止?

PS.在用nginx的时候还发生过一个问题,php-fpm的进程cpu100%,但使用查到的一些资料去跟踪进程没有收获。

请问我应该查找哪些相关资料来研究这个问题?

请多指教,谢谢!

最好看下流量统计,查下是不是有这么多人访问,1100w感觉不正常了
程序里面写session的地方也要检查下,是不是有逻辑问题导致循环写.

把session存储到memcached中

分布式session 存储。

  1. php程序中,尽量不要使用session了,尽量使用cookie, 性能要好很多
  2. 编写此php程序的程序员,一定是小白无疑,滥用session。殊不知道session的代价很大。
  3. 将session保存到 /dev/shm目录中去吧——这个配置不需要修改php程序

如果配置服务器有困难,本人可提供远程协助,多多交流。QQ 41096834

1、把session文件拆分到多个目录下,避免单个目录下巨量文件导致的文件系统io问题
// php.ini 见 http://php.net/manual/en/session.configuration.php#ini.session.save-path
session.save_path=3;/tmp

2、设置定时任务定时清理超过1天的session file
// crontab
0 3 * * * /usr/bin/find /tmp/session -type f -atime +1 -delete

3、把session放到redis或者memcached而不是文件系统

4、干脆就不用session,改为cookie + cache,这个需要具体的程序设计实现

清理已有的大量文件可以用
find ... -delete
或者
find ... | xargs rm -f

还是 @舞林 说的对,先检查一下程序的逻辑问题吧

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn