Nginx项目-ab压力测试

项目名称:构建一个基于Nginx的web集群项目

项目环境:centos7/8服务器8台,nginx1.21.4,ab,nfs4,zabbix,keepalived2.1.5,ansible

项目描述
构建一个基于nginx的http负载均衡的web集群项目,模拟企业的业务环境达到构建一个高并发,高可用的web集群。通过压力测试来检验整个集群的性能,找出瓶颈,不断的去优化。


项目步骤

  • 安装部署ansible服务,和其他服务器之间建立免密通道,编写playbook去安装部署nginx和zabbix。

  • 通过ansible上去部署nginx和zabbix,配置好nginx长连接,并发数,和worker的进程数,限制速度以及zabbix的相关配置等(搭建一个 WordPress的博客系统或者flask接口网站等)

  • 使用2台服务器做双vip的负载均衡器,使用nginx的4/7层负载均衡功能实现,调度算法使用加权轮询 。

  • 搭建nfs服务器,保障网站的数据一致性,并且设置后端的real-server/backend server开机自动挂载。

  • 在客户机上使用ab软件进行压力测试。

  • 在zabbix/prometheus监控平台上添加相关的服务器和监控项,监控整个web集群的性能。

  • 使用keepalived软件给负载均衡器做高可用,防止单点故障。

  • 尝试去优化整个web集群,提升性能:内核参数,nginx参数的优化,考虑加缓存等措施。


项目心得:

  • 慢慢理解了集群的概念,从1台到多台

  • 对高性能和高可用有了一定的认识,对系统的性能指标参数有了一定的认识,对脑裂现象有了一定的了解和如何避免

  • 对一键部署和安装有了一定的了解,非常的方便和快捷,今后尝试更加好的自动化操作

  • 对压力测试下整个集群的瓶颈有了一个整体的概念

  • 对系统的优化有了一些认识,感觉非常的有必要,在不增加成本的情况下提升性能

  • 对监控也有了一点接触,监控是非常基础的运维工作,可以提前看到问题,做好预警。

  • 对今后学习大规模的集群打下基础,整体规划的能力得到提升。

  • troubleshooting的能力得到了提升

  • 对很多基础功能的软件的配合有了一定的了解,例如:zabbix, keepalived, ansible, nginx, nfs, ab,dstat等


web网站的内容:需要你确定:博客,接口网站,测试页面等
数据的一致性问题:NFS,san,云储存,NAS等。

概念

压力测试:对整个系统进行测试,看整个服务器集群能承受多少并发量。

因素

和服务器的硬件和软件的配置有关

  • 网络带宽
  • CPU
  • 磁盘IO
  • 内存

优化

硬件层面:提升硬件
软件层面:优化后端nginx配置

指标

QPS TPS IOPS

QPS:每秒处理的查询数,请求数
TPS:每秒处理的事务数
IOPS:每秒磁盘进⾏的I/O操作次数

ab的使用

安装ab

客户机

yum install httpd-tools -y 
ab -v #测试安装是否成功
ab -n 1000 -c 1000 http://cs.yutao.co/
#-n发出1000个请求,-c模拟1000个并发,相当1000人同时访问,后面是测试url)

服务机

yum install ab -y #安装ab
ab命令实时查看资源的消耗

猜你喜欢

转载自blog.csdn.net/weixin_46415378/article/details/123778091