1. 首页 > IT综合教程 > 正文

IT教程FG282-IT系统性能监控与优化

1. 性能监控概述

性能监控是IT系统管理的重要组成部分,通过监控系统的各项指标,及时发现性能问题并采取相应的优化措施。更多学习教程www.fgedu.net.cn

# 检查系统基本信息
# uname -a
Linux server1 3.10.0-1160.el7.x86_64 #1 SMP Wed Jan 13 15:37:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

# 检查系统负载
# uptime
10:00:00 up 10 days, 5:30, 2 users, load average: 0.50, 0.60, 0.70

# 检查系统资源使用情况
# top -bn1 | head -20
top – 10:00:00 up 10 days, 5:30, 2 users, load average: 0.50, 0.60, 0.70
Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 65905408 total, 62876544 free, 1528864 used, 1500000 buff/cache
KiB Swap: 33554432 total, 33554432 free, 0 used. 63254368 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 root 20 0 162248 2320 1592 R 0.7 0.0 0:00.01 top
12346 mysql 20 0 2097152 1048576 16384 S 0.3 1.6 0:30.00 mysqld
12347 httpd 20 0 55104 6784 4320 S 0.3 0.0 0:15.00 httpd

生产环境风哥建议:建立完善的性能监控体系,定期收集和分析性能数据,及时发现并解决性能问题。

2. 性能监控指标

性能监控指标包括CPU使用率、内存使用率、磁盘I/O、网络流量等,这些指标可以帮助我们了解系统的运行状态。学习交流加群风哥微信: itpux-com

# 性能监控指标定义(示例)
# cat > performance_metrics.txt << EOF 性能监控指标定义: 1. CPU指标:CPU使用率、负载平均值、上下文切换频率 2. 内存指标:内存使用率、Swap使用率、缓存使用情况 3. 磁盘指标:磁盘使用率、I/O读写速度、I/O等待时间 4. 网络指标:网络带宽使用率、网络延迟、丢包率 5. 应用指标:响应时间、吞吐量、错误率 EOF # 查看性能监控指标定义 # cat performance_metrics.txt 性能监控指标定义: 1. CPU指标:CPU使用率、负载平均值、上下文切换频率 2. 内存指标:内存使用率、Swap使用率、缓存使用情况 3. 磁盘指标:磁盘使用率、I/O读写速度、I/O等待时间 4. 网络指标:网络带宽使用率、网络延迟、丢包率 5. 应用指标:响应时间、吞吐量、错误率

3. 性能监控工具

常用的性能监控工具包括top、vmstat、iostat、netstat等系统自带工具,以及Prometheus、Grafana等第三方监控工具。

# 使用vmstat监控系统性能
# vmstat 1 5
procs ———–memory———- —swap– —–io—- -system– ——cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 62876544 1048576 1500000 0 0 0 0 30 50 5 2 92 1 0
0 0 0 62876544 1048576 1500000 0 0 0 0 32 52 5 2 92 1 0
0 0 0 62876544 1048576 1500000 0 0 0 0 31 51 5 2 92 1 0
0 0 0 62876544 1048576 1500000 0 0 0 0 30 50 5 2 92 1 0
0 0 0 62876544 1048576 1500000 0 0 0 0 31 51 5 2 92 1 0

# 使用iostat监控磁盘性能
# iostat -x 1 5
Linux 3.10.0-1160.el7.x86_64 (server1) 03/29/2026 _x86_64_ (32 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
5.00 0.00 2.00 1.00 0.00 92.00

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

# 使用netstat监控网络性能
# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN

风哥风哥提示:选择合适的性能监控工具,根据不同的监控需求使用不同的工具,建立多层次的监控体系。

4. CPU性能监控与优化

CPU性能监控与优化是系统性能管理的重要环节,通过监控CPU使用率、负载等指标,及时发现CPU瓶颈并采取相应的优化措施。

# 监控CPU使用率
# mpstat -P ALL 1 5
Linux 3.10.0-1160.el7.x86_64 (server1) 03/29/2026 _x86_64_ (32 CPU)

10:00:00 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:00:01 all 5.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 92.00
10:00:01 0 4.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 93.00
10:00:01 1 5.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 92.00
10:00:01 2 6.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 91.00
10:00:01 3 5.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 92.00

# 查看进程CPU使用情况
# ps aux –sort=-%cpu | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 12346 0.3 1.6 2097152 1048576 ? Ssl 09:30 0:30 mysqld
httpd 12347 0.3 0.0 55104 6784 ? S 09:30 0:15 httpd
root 12348 0.1 0.0 19844 2320 ? Ss 09:00 0:05 sshd

# CPU优化措施
# 1. 调整进程优先级
# renice -n -10 12346

# 2. 限制进程CPU使用率
# cpulimit -p 12346 -l 50

# 3. 关闭不必要的服务
# systemctl stop postfix
# systemctl disable postfix

5. 内存性能监控与优化

内存性能监控与优化是系统性能管理的重要环节,通过监控内存使用率、Swap使用情况等指标,及时发现内存瓶颈并采取相应的优化措施。

# 监控内存使用情况
# free -h
total used free shared buff/cache available
Mem: 62G 2.1G 58G 8.5M 1.8G 59G
Swap: 32G 0B 32G

# 查看进程内存使用情况
# ps aux –sort=-%mem | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 12346 0.3 1.6 2097152 1048576 ? Ssl 09:30 0:30 mysqld
httpd 12347 0.3 0.0 55104 6784 ? S 09:30 0:15 httpd
root 12348 0.1 0.0 19844 2320 ? Ss 09:00 0:05 sshd

# 内存优化措施
# 1. 调整内核参数
# vi /etc/sysctl.conf
vm.swappiness = 10
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

# 2. 清理缓存
# echo 3 > /proc/sys/vm/drop_caches

# 3. 增加内存
# (物理内存升级或配置大内存页)

生产环境风哥建议:合理配置内存,避免过度使用Swap,定期清理不必要的内存占用,优化应用程序内存使用。

6. 磁盘性能监控与优化

磁盘性能监控与优化是系统性能管理的重要环节,通过监控磁盘使用率、I/O读写速度等指标,及时发现磁盘瓶颈并采取相应的优化措施。

# 监控磁盘使用情况
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 8.5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 500G 20G 480G 4% /data

# 监控磁盘I/O性能
# iostat -d -x 1 5
Linux 3.10.0-1160.el7.x86_64 (server1) 03/29/2026 _x86_64_ (32 CPU)

device r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

# 磁盘优化措施
# 1. 使用SSD存储
# 2. 配置RAID
# mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sda /dev/sdb

# 3. 调整I/O调度算法
# echo deadline > /sys/block/sda/queue/scheduler

# 4. 清理磁盘空间
# find /var/log -name “*.log” -type f -exec rm -f {} \;

7. 网络性能监控与优化

网络性能监控与优化是系统性能管理的重要环节,通过监控网络带宽使用率、网络延迟等指标,及时发现网络瓶颈并采取相应的优化措施。

# 监控网络接口流量
# iftop -i eth0 -n 10
interface: eth0
IP address is: 192.168.1.100
MAC address is: 00:11:22:33:44:55

# host = bytes packets bytes packets bytes packets
1. 192.168.1.1 => 10.0Kb 100 10.0Kb 100 10.0Kb 100
<= 5.0Kb 50 5.0Kb 50 5.0Kb 50 2. 192.168.1.2 => 5.0Kb 50 5.0Kb 50 5.0Kb 50
<= 2.5Kb 25 2.5Kb 25 2.5Kb 25 # 监控网络连接状态 # netstat -ant | grep ESTABLISHED | wc -l 10 # 网络优化措施 # 1. 调整TCP参数 # vi /etc/sysctl.conf net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1800 # 2. 启用TCP快速打开 # echo 3 > /proc/sys/net/ipv4/tcp_fastopen

# 3. 调整MTU大小
# ifconfig eth0 mtu 9000

风哥风哥提示:合理配置网络参数,优化网络传输,使用负载均衡和流量控制,提高网络性能。

8. 应用性能监控与优化

应用性能监控与优化是系统性能管理的重要环节,通过监控应用响应时间、吞吐量等指标,及时发现应用瓶颈并采取相应的优化措施。

# 监控Web应用性能
# ab -n 1000 -c 100 http://fgedudb/
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking fgedudb (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: fgedudb
Server Port: 80

Document Path: /
Document Length: 45 bytes

Concurrency Level: 100
Time taken for tests: 0.100 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 232000 bytes
HTML transferred: 45000 bytes
Requests per second: 10000.00 [#/sec] (mean)
Time per request: 10.000 [ms] (mean)
Time per request: 0.100 [ms] (mean, across all concurrent requests)
Transfer rate: 2265.62 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 10 0.0 10 10
Waiting: 0 0 0.0 0 0
Total: 1 10 0.0 10 10

# 监控数据库性能
# mysqladmin extended-status | grep -i “query”
| Queries | 1000000 |
| Slow_queries | 10 |
| Queries_per_second_avg | 1000 |

# 应用优化措施
# 1. 优化数据库查询
# EXPLAIN SELECT * FROM users WHERE id = 1;

# 2. 启用缓存
# 配置Redis缓存
# redis-server /etc/redis.conf

# 3. 优化代码
# 减少数据库查询次数,使用批量操作

9. 性能分析与调优

性能分析与调优是系统性能管理的重要环节,通过分析性能数据,找出性能瓶颈并采取相应的优化措施。

# 使用perf进行性能分析
# perf top
Samples: 1K of event ‘cycles’, Event count (approx.): 1000000
Overhead Command Shared Object Symbol
5.00% mysqld libc-2.17.so [.] memcpy
3.00% httpd libc-2.17.so [.] memcpy
2.00% mysqld libmysql.so [.] mysql_parse
1.00% httpd httpd [.] ap_process_request

# 使用strace分析系统调用
# strace -c -p 12346
strace: Process 12346 attached
^Cstrace: Process 12346 detached
% time seconds usecs/call calls errors syscall
—— ———– ———– ——— ——— —————-
50.00 0.001000 1 1000 read
30.00 0.000600 1 600 write
20.00 0.000400 1 400 epoll_wait
—— ———– ———– ——— ——— —————-
100.00 0.002000 2000 total

# 使用vmprof分析Python应用性能
# vmprof –web python app.py

10. 性能监控与优化最佳实践

性能监控与优化的最佳实践包括建立完善的监控体系、定期分析性能数据、持续优化系统配置等。

# 性能监控与优化最佳实践
# cat > performance_best_practices.txt << EOF 性能监控与优化最佳实践: 1. 建立完善的监控体系,包括系统、网络、应用等各个层面 2. 设定合理的性能阈值,及时发现性能问题 3. 定期分析性能数据,找出性能瓶颈 4. 持续优化系统配置,提高系统性能 5. 采用自动化工具,提高监控和优化效率 6. 建立性能基准,便于比较和分析 7. 制定性能优化计划,有步骤地实施优化措施 8. 定期进行性能测试,验证优化效果 9. 培训团队成员,提高性能管理能力 10. 建立性能管理文档,记录优化过程和结果 EOF # 查看性能监控与优化最佳实践 # cat performance_best_practices.txt 性能监控与优化最佳实践: 1. 建立完善的监控体系,包括系统、网络、应用等各个层面 2. 设定合理的性能阈值,及时发现性能问题 3. 定期分析性能数据,找出性能瓶颈 4. 持续优化系统配置,提高系统性能 5. 采用自动化工具,提高监控和优化效率 6. 建立性能基准,便于比较和分析 7. 制定性能优化计划,有步骤地实施优化措施 8. 定期进行性能测试,验证优化效果 9. 培训团队成员,提高性能管理能力 10. 建立性能管理文档,记录优化过程和结果 # 性能优化案例 # cat > performance_optimization_case.txt << EOF 案例:Web应用性能优化 优化前: - 响应时间:5秒 - 吞吐量:100 QPS - 错误率:5% 优化措施: 1. 数据库查询优化:添加索引,优化SQL语句 2. 启用缓存:使用Redis缓存热点数据 3. 代码优化:减少数据库查询次数,使用批量操作 4. 服务器优化:调整内存配置,优化网络参数 优化后: - 响应时间:0.5秒 - 吞吐量:1000 QPS - 错误率:0.1% EOF # 查看性能优化案例 # cat performance_optimization_case.txt 案例:Web应用性能优化 优化前: - 响应时间:5秒 - 吞吐量:100 QPS - 错误率:5% 优化措施: 1. 数据库查询优化:添加索引,优化SQL语句 2. 启用缓存:使用Redis缓存热点数据 3. 代码优化:减少数据库查询次数,使用批量操作 4. 服务器优化:调整内存配置,优化网络参数 优化后: - 响应时间:0.5秒 - 吞吐量:1000 QPS - 错误率:0.1%
生产环境风哥建议:持续关注系统性能,定期进行性能分析和优化,确保系统在高负载下仍能保持良好的性能。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息