网站打开很慢,php-cgi 占用 CPU,CPU 长期 100%,求解? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
reyals
V2EX    问与答

网站打开很慢,php-cgi 占用 CPU,CPU 长期 100%,求解?

  •  
  •   reyals 2014-08-24 23:36:34 +08:00 9030 次点击
    这是一个创建于 4068 天前的主题,其中的信息可能已经有所发展或是发生改变。
    top - 23:30:47 up 56 min, 1 user, load average: 3.06, 3.16, 3.59
    Tasks: 76 total, 6 running, 70 sleeping, 0 stopped, 0 zombie
    Cpu(s): 96.3%us, 3.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%st
    Mem: 1020384k total, 322148k used, 698236k free, 16096k buffers
    Swap: 1044184k total, 0k used, 1044184k free, 72168k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    998 www 20 0 235m 36m 4344 R 19.6 3.6 8:44.12 php-cgi
    999 www 20 0 235m 36m 4288 R 19.6 3.6 8:44.00 php-cgi
    12407 www 20 0 229m 31m 3680 R 19.6 3.2 2:18.38 php-cgi
    1001 www 20 0 233m 34m 4292 R 19.3 3.5 8:44.08 php-cgi
    1002 www 20 0 231m 32m 4340 R 19.3 3.3 8:43.82 php-cgi

    大部分时间是这样的状态

    lnmp,wordpress跑个小博客,每天IP才5000K

    追踪进程
    ll /proc/998/fd/
    lrwx------ 1 www www 64 Aug 24 23:32 0 -> socket:[8205]
    l-wx------ 1 www www 64 Aug 24 23:32 1 -> pipe:[8210]
    l-wx------ 1 www www 64 Aug 24 23:32 2 -> pipe:[8211]
    lrwx------ 1 www www 64 Aug 24 23:32 3 -> socket:[147091]
    lrwx------ 1 www www 64 Aug 24 23:32 4 -> socket:[147095]

    服务器监控,很有规律的,每隔10来分钟,CPU就下来几分钟,然后又100%了
    11 条回复    2014-08-25 21:56:49 +08:00
    rainysia
        1
    rainysia  
       2014-08-25 09:50:33 +08:00
    才 5000K IP.

    100%你还想肿么样
    reyals
        2
    reyals  
    OP
       2014-08-25 10:17:15 +08:00 via iPhone
    @rainysia 什么意思啊?之前9000ip都很正常的。突然就这样了。
    ChiChou
        3
    ChiChou  
       2014-08-25 10:46:27 +08:00   1
    你的网站很有可能被黑,挂了 PHP DDOS 木马。简单说就是基于 php 的发包函数,用你的 vps 和流量对外发动攻击。

    如果你能管理 php.ini 的话,建议临时禁用 socket 系列函数,然后查看日志,基本上就可以定位到木马位置。
    reyals
        4
    reyals  
    OP
       2014-08-25 10:49:13 +08:00 via iPhone
    @ChiChou 先感谢,马上试试。
    reyals
        5
    reyals  
    OP
       2014-08-25 10:50:15 +08:00 via iPhone
    @reyals 请问主要查看php日志还是nginx?
    jk2r
        6
    jk2r  
       2014-08-25 11:19:27 +08:00
    0. 还是得弄一个干净的php脚本(或者新的web),跑一个benchmark,看机器是不是不行。
    1. 先看一下access_log,看有没有异常请求量很多的代码。再看一下,有没有哪些网页,request_time很长的,如果有跳到2。
    2. 手工debug代码,二分法查什么地方卡了。
    3. strace -vv 一下cpu多的进程都在干嘛,发log上来。
    reyals
        7
    reyals  
    OP
       2014-08-25 11:28:02 +08:00
    access_log确实很异常,大量的403和404

    这些请求的网站都不是我的站。

    219.148.108.132 - - [17/Aug/2014:09:31:59 +0800] "GET http://www.atmji.com/checkip.aspx HTTP/1.1" 404 564 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -
    219.148.108.132 - - [17/Aug/2014:10:02:10 +0800] "GET http://www.qhdjrfw.com/checkip.aspx HTTP/1.1" 404 564 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -
    219.148.108.132 - - [17/Aug/2014:10:35:39 +0800] "GET http://www.atmji.com/checkip.aspx HTTP/1.1" 404 564 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -
    219.148.108.132 - - [17/Aug/2014:11:06:21 +0800] "GET http://www.atmji.com/checkip.aspx HTTP/1.1" 404 564 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -
    219.148.108.132 - - [17/Aug/2014:11:38:00 +0800] "GET http://www.data321.com/checkip.aspx HTTP/1.1" 404 564 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" -
    jk2r
        8
    jk2r  
       2014-08-25 15:11:44 +08:00   1
    404这个是抓站还是爬虫吧,从你日志看都是219.148.108.132。统计一下top10,不认识的,封了先看看情况。
    reyals
        9
    reyals  
    OP
       2014-08-25 17:20:58 +08:00
    @jk2r 封了一些IP,看看情况。

    不停的请求,就能把CPU搞挂,有这种攻击方式吗?

    CPU100%的时候,网络流量也不大啊,不到1Mb
    jk2r
        10
    jk2r  
       2014-08-25 19:26:17 +08:00
    不停请求,你也可以理解为DOS呗。PHP跑程序,当然就慢了。

    代码级,fastcgi缓存、php页面级缓存(wordpress Memcached插件),都能缓解。

    程序员范儿,可以cron扫访问日志找到TOP N的垃圾请求,iptables封IP。当然也可以lua。

    不是有意攻击的话,还是有很多解决方法的。

    PS:你的blog有5000k,日均500w IP?
    reyals
        11
    reyals  
    OP
       2014-08-25 21:56:49 +08:00
    @jk2r 恩恩
    逗比了,是5K每天。。。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     914 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:58 PVG 04:58 LAX 13:58 JFK 16:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86