在上一篇当中,已经搭建好nginx+tomcat实现动静资源的分离。
接下来,使用ab做压力测试:
1.安装httpd-2.2.21-win32-x86-no_ssl.msi试软件。下载地址:http://mirror.bit.edu.cn/apache//httpd/binaries/win32/?C=M;O=A
2.使用ab进行压力测试
//-c : 设置并发度,同时访问的在线人数
//-n : 设置总的访问请求数。
cmd>ab -c 100 -n 10000 http://localhost:80/eshop/phone/iphonex.html
3就会发现
s128占了1份,s129,s130,s131分别占了四份,因为是上一篇中window10上的nginx反向代理服务器将它们权重分别设置为1,4,4,4.
因为在本项目当中,整个收集数据流程是这样的:
当客户访问浏览器,在nginx上产生数据,然后每台机开启flume监听日记动态生成,将新生成的数据发送到kafka集群,然后开启两个消费者,一个是hdfs消费者,将储存到kafka集群的数据直接进行存储(原生数据),另外一个是hive消费者,从kafka集群中提取数据,然后进行数据清洗进行实时计算等等。。为了优化hdfs的存储,需要将每日生成的数据在hdfs中以时间来命名,所以,这时需使用到了centos的调度(最小到分钟)即nginx的日记滚动。
使用centos的cron机制实现nginx的日志滚动。(调度)
-----------------------------------------------
[/usr/local/bin/rolllog.sh]
#!/bin/bash
#
dataformat=`date +%Y-%m-%d-%H-%M`
#
cp /soft/nginx-1.6.3/logs/access.log /soft/nginx-1.6.3/logs/access_$dataformat.log
host=`hostname`
sed -i 's/^/'${host}',&/g' /soft/nginx-1.6.3/logs/access_$dataformat.log
#
lines=`wc -l < /soft/nginx-1.6.3/logs/access_$dataformat.log`
#move access-xxx.log flume's spooldir
mv /soft/nginx-1.6.3/logs/access_$dataformat.log /soft/nginx-1.6.3/logs/flume
#delete rows
sed -i '1,'${lines}'d' /soft/nginx-1.6.3/logs/access.log
#reboot nginx , otherwise log can not roll.
kill -USR1 `cat /soft/nginx/logs/nginx.pid`
然后编辑cron配置
$>sudo nano /etc/crontab
[/etc/crontab]
...
PATH=...:/usr/local/bin
...
* * * * * centos testcron.sh
保存退出。
重启crontab服务器
$>sudo service crond restart
会发现在
每分钟产生一个以时间命名的文件,里面存放的是此时间段用户访问的数据。