课程目标
这一天重点使用前面学习的:监控 + 压测 + 调优,进行企业故障场景处理。
课程中的性能分析思路是按照 CPU → 内存 → 磁盘 IO → 网络 → 应用 进行观察和定位。
场景 1:服务器 CPU 持续高负载
企业故障
运维人员收到告警:服务器 CPU 使用率持续升高,业务访问变慢。
要求
人为制造 CPU 压力:
stress -c 2 -t 60根据以上制造问题进行分析。
要求完成
- 找出 CPU 占用最高的进程
- 分析 load average
- 查看每个 CPU 核心状态
- 判断是否属于 CPU 瓶颈
- 给出处理方案
场景 2:服务器内存不足
企业故障
业务服务器运行一段时间后,系统可用内存越来越少,部分业务响应变慢。
要求
制造内存压力:
stress -m 2 --vm-bytes 512M -t 60注意:这个是制造故障。这条命令是干什么?每个参数的作用。要求完成以上制造问题进行分析。
重点判断
系统是否出现内存不足以及 Swap 压力。
场景 3:服务器磁盘 IO 过高
企业故障
业务服务器访问突然变慢,CPU 并没有明显异常,但是系统 IO 等待升高。
要求
制造磁盘 IO:
dd if=/dev/zero of=/test.dbf bs=1M count=1024 oflag=direct注意:这个是制造故障。这条命令是干什么?每个参数的作用。
要求完成
找出:
- 哪个磁盘 IO 最高
- 哪个进程产生 IO
- wa 是否升高
- 是否存在磁盘 IO 瓶颈
场景 4:服务器网络流量异常
企业故障
IDC 收到流量告警,发现服务器对外网络流量突然增加,需要运维人员定位异常进程。
iperf3 -c IP -t 60注意:这个命令工具需要在其他机器上安装。以上制造网络问题进行网络分析。
要求
找出:
- 哪块网卡流量异常
- 哪个进程占用网络带宽
- 判断是否属于正常业务
- 如果属于异常程序,制定处理方案
场景 5:Web 服务器高并发
企业故障
公司 Web 服务器访问量突然增加,需要验证服务器在高并发情况下的性能。
要求
部署 HTTP 服务,然后进行:
ab -n 5000 -c 50 http://服务器IP/注意:这个是制造故障。这条命令是干什么?每个参数的作用。
故障观察
要求分析:
- CPU 变化
- 网络变化
- 并发变化
- 响应时间
- Failed Requests
- 是否存在性能瓶颈
场景 6:服务器资源综合压力
企业故障
公司业务高峰期,服务器同时出现 CPU、内存、IO 压力,需要运维人员判断主要瓶颈。
要求
执行:
stress-ng --cpu 2 --vm 2 --vm-bytes 256M --io 2 --timeout 60s注意:这个是制造故障。这条命令是干什么?每个参数的作用。
最终要求
回答:CPU、内存、磁盘 IO、网络,哪个资源最可能成为当前瓶颈?为什么?