有意义的一天


linode 和 dnspod 已经连续一星期给我发邮件提示博客有问题了。
cpu 超出200%,博客访问段时间中断。

登录服务器发现 php5-fpm 同时运行多个实例,占用cpu超过100%

查看最占资源的程序:

# top //找出CPU使用率高的进程PID
# strace -p PID //跟踪进程
# ll /proc/PID/fd //查看该进程在处理哪些文件

top 命令可以看到 多个 php5-fpm 实例在运行,每个都占用20%的cpu, 10个就是200%!
strace -p PID 跟踪进程,可以看到是正常的wordpress访问流程。不是文件被修改。

配置 php5-fpm:
https://github.com/rtCamp/easyengine/issues/184
/etc/php5/fpm/pool.d/www.conf
on your config it is set to
‘pm = dynamic’ change it to ‘pm = ondemand’
and uncomment ‘pm.process_idle_timeout = 10s;’.
Then restart php5-fpm

以上配置可以保证php-fpm不会长时间占用资源,但是请求多的话,还是会频繁开启进程。

查看站点 error_log 和 access_log 文件:

tail -n filename > newfile
其中 -n 的 n 为文件最后的几行,
结果重新定向到一个新文件newfile去。

tail -f 可以保持显示新加入到log中的数据

看到有一个ip访问频繁,平均一秒几次,不是人。

nginx block ip:

nginx block 以后,这个ip还在继续访问,log还在快速增加

ufw block ip:

sudo ufw insert 1 deny from 1.1.1.1

从防火墙屏蔽该ip,access_log增长速度骤降。

成效显著:

cpu usage

2015年1月16日更新:
这是wordpress的一个漏洞,据说已经被修复了,可是每天还是有不少ip在扫描。