Linux服务器性能参数和指令
在 Linux 服务器性能分析中,关键参数涵盖 CPU、内存、磁盘、网络等子系统,配合常用指令可高效监控和排查性能问题。以下是核心性能参数及对应指令的详细介绍:
一、CPU 性能参数与指令
关键参数
- CPU 使用率:用户态(
%user)、内核态(%system)、空闲(%idle)、等待 IO(%iowait)、中断(%irq)、软中断(%softirq)。 - 负载均衡:系统平均负载(
load average,1 分钟、5 分钟、15 分钟)。 - 上下文切换:进程切换次数(
context switches)。 - 进程状态:运行、睡眠、阻塞进程数。
常用指令
-
top/htop(实时进程监控)
- 显示 CPU 各核心使用率、进程 CPU/MEM 占用、负载等。
- 常用选项:
top -d 5 # 每5秒刷新一次 top -c # 显示完整进程命令 htop -p <PID> # 监控特定进程 - 关键指标:
%CPU(进程 CPU 占用)、load average(系统负载)。
-
vmstat(系统整体统计)
- 显示 CPU、内存、磁盘、上下文切换等综合数据。
- 示例:
vmstat 2 5 # 每2秒采样,共5次 - 输出解析:
us(用户态)、sy(内核态)、id(空闲)、wa(IO 等待)。
-
sar(系统活动报告,需安装
sysstat包)- 历史性能数据统计,支持按时间范围查询。
- 示例:
sar -u 1 3 # 实时CPU使用率 sar -u -f /var/log/sa/sa20 # 查看某天日志(如sa20对应20号)
-
pidstat(进程级 CPU 统计)
- 精准定位占用 CPU 的进程 / 线程。
- 示例:
pidstat -u 1 # 每1秒显示进程CPU占用 pidstat -u -t 1 # 显示线程级CPU占用
二、内存性能参数与指令
关键参数
- 内存使用率:总内存、已用、空闲、缓冲(
buffers)、缓存(cache)。 - Swap 使用:Swap 空间大小、已用 Swap、Swap 换入 / 换出速率(
swap in/out)。 - 内存碎片:连续可用内存块大小。
常用指令
-
free/pmap(内存概况)
free显示内存和 Swap 整体使用情况:free -h # 以可读格式显示 free -w # 显示内存碎片信息pmap <PID>查看进程内存映射(如共享库、堆 / 栈占用)。
-
vmstat(内存相关指标)
- 输出解析:
free(空闲内存)、swap(Swap 已用)、si/so(Swap 换入 / 换出速率)。
- 输出解析:
-
top/htop(进程内存占用)
- 关键指标:
%MEM(进程内存占用)、VIRT(虚拟内存)、RES(物理内存)、SHR(共享内存)。
- 关键指标:
-
smem(详细内存统计,需安装)
- 按进程 / 用户分组统计内存,区分共享 / 私有内存:
smem -t # 按类型汇总 smem -p <PID> # 查看进程内存细节
- 按进程 / 用户分组统计内存,区分共享 / 私有内存:
三、磁盘性能参数与指令
关键参数
- IO 吞吐量:读 / 写带宽(MB/s)。
- IOPS:每秒输入输出操作数(随机小文件场景关键)。
- 响应时间:IO 请求平均处理时间(
await)。 - 队列长度:等待处理的 IO 请求数(
avgqu-sz)。 - 设备利用率:磁盘忙时百分比(
%util)。
常用指令
-
iostat(磁盘 IO 统计)
- 显示各磁盘设备的 IO 性能:
iostat -x 1 # 输出扩展信息,每1秒刷新 - 关键指标:
r/s/w/s(读写 IOPS)、rMB/s/wMB/s(读写带宽)、await(IO 响应时间)、%util(设备利用率)。
- 显示各磁盘设备的 IO 性能:
-
dstat(多维度统计,需安装)
- 同时监控 CPU、内存、磁盘、网络:
dstat -cdngy 1 # 显示磁盘、网络等,每1秒刷新
- 同时监控 CPU、内存、磁盘、网络:
-
iotop(实时磁盘 IO 进程监控)
- 定位占用磁盘 IO 的进程:
iotop -o # 仅显示有IO操作的进程 iotop -P # 显示进程所属的PID
- 定位占用磁盘 IO 的进程:
-
blkstat(块设备详细统计,需安装
sysstat)- 查看历史磁盘 IO 数据:
blkstat /dev/sda # 显示sda磁盘的IO统计
- 查看历史磁盘 IO 数据:
四、网络性能参数与指令
关键参数
- 带宽利用率:发送 / 接收速率(bps/MB/s)。
- 网络延迟:往返时间(RTT)、端口状态(ESTABLISHED/TIME_WAIT)。
- 错误统计:丢包率、校验和错误、帧错误。
- 连接数:并发连接数、TCP 状态分布。
常用指令
-
ss/netstat(网络连接统计)
ss更高效,替代传统netstat:ss -tun # 显示TCP/UDP连接 ss -s # 显示网络统计摘要 netstat -antp # 显示所有TCP连接及对应进程- 关键指标:
ESTABLISHED(已建立连接)、TIME_WAIT(等待关闭连接)。
-
iftop/nload(实时网络流量)
iftop按进程 / IP 显示网卡流量:iftop -i eth0 # 监控eth0网卡nload实时显示网卡上下行速率:nload eth0 # 监控指定网卡
-
sar(网络历史统计)
- 查看网卡流量、错误统计:
sar -n DEV 1 3 # 实时网卡流量统计 sar -n ERROR 1 3 # 显示网络错误(丢包、校验和等)
- 查看网卡流量、错误统计:
-
tcpdump(网络抓包分析)
- 捕获指定网卡的数据包(需结合 Wireshark 分析):
tcpdump -i eth0 -n host 192.168.1.100 # 抓取特定IP的流量
- 捕获指定网卡的数据包(需结合 Wireshark 分析):
五、其他关键参数与指令
1. 系统资源限制(ulimit)
- 参数:进程打开文件数、内存限制、CPU 时间等。
- 指令:
ulimit -a # 查看当前用户资源限制 ulimit -n 65536 # 临时修改最大打开文件数(需root)
2. 内核参数(sysctl)
- 关键参数:
vm.swappiness(Swap 使用倾向)、net.ipv4.tcp_fin_timeout(TIME_WAIT 超时)、fs.file-max(系统最大打开文件数)。 - 指令:
sysctl -a | grep vm.swappiness # 查看Swap参数 sysctl -w vm.swappiness=10 # 临时修改参数
3. 进程资源占用(lsof)
- 查看进程打开的文件、网络连接:
lsof -p <PID> # 查看进程打开的所有句柄 lsof -i:80 # 查看占用80端口的进程
六、性能分析流程建议
- 整体概览:用
top/htop查看 CPU/MEM 整体负载,free/vmstat确认内存 / Swap 压力,iostat检查磁盘 IO 是否饱和。 - 深入定位:
- CPU 高占用:用
pidstat -u定位具体进程 / 线程。 - 内存泄漏:用
pmap/smem分析进程内存分布,结合free的cache/buffer变化。 - 磁盘瓶颈:若
%util接近 100% 且await高,排查是否存在大量随机 IO(如数据库慢查询)。 - 网络问题:用
ss查看端口状态,iftop确认流量异常来源,tcpdump抓包分析协议层问题。
- CPU 高占用:用
- 历史分析:通过
sar读取日志,分析性能指标的长期趋势(如周期性负载高峰)。
总结
Linux 服务器性能分析需结合多维度参数,通过
top/vmstat/iostat等指令快速定位问题,再用pidstat/iotop/ss等工具深入进程级细节。同时,合理配置内核参数(sysctl)和资源限制(ulimit)可优化系统性能。实际操作中,建议结合监控工具(如 Prometheus、Zabbix)实现持续性能追踪。
浙公网安备 33010602011771号