Linux查看服务器内存、磁盘、cpu、网络占用、端口占用情况
以下是一篇关于Linux服务器资源监控的详细指南,涵盖内存、磁盘、CPU、网络和端口占用情况的查看方法:
Linux服务器资源监控完全指南
一、内存占用监控
1.1 free
命令
命令格式:
free [选项]
常用选项:
-h
:以人类可读格式显示(自动转换单位为GB/MB)-m
:以MB为单位显示-s <秒>
:持续监控(如free -h -s 5
每5秒刷新)
示例输出:
total used free shared buff/cache available
Mem: 15Gi 4.2Gi 2.1Gi 0.5Gi 8.7Gi 10Gi
Swap: 2.0Gi 0.0Gi 2.0Gi
关键指标解读:
total
:总内存used
:已用内存(包含缓存和缓冲区)free
:完全未使用的内存buff/cache
:被缓存和缓冲区占用的内存(可被快速释放)available
:系统可用内存(估算值)
1.2 top
/htop
命令
top # 实时动态视图
htop # 增强版top(需安装)
htop
优势:
- 彩色显示
- 支持鼠标操作
- 直观显示内存占用进程
二、磁盘空间监控
2.1 df
命令
命令格式:
df [选项] [目录]
常用选项:
-h
:人类可读格式-i
:显示inode使用情况-T
:显示文件系统类型
示例:
df -h /home # 查看/home分区使用情况
关键指标:
Use%
:使用百分比Mounted on
:挂载点
2.2 du
命令
查看目录占用:
du -sh /var/log # 统计/var/log目录总大小
du -h --max-depth=1 / # 查看根目录下一级子目录大小
2.3 磁盘性能监控
iostat -x 1 # 查看磁盘I/O统计(需安装sysstat)
三、CPU监控
3.1 top
命令
关键信息:
%Cpu(s)
行:us
:用户空间占用sy
:内核空间占用id
:空闲率wa
:I/O等待
3.2 vmstat
命令
vmstat 1 5 # 每秒采样,共5次
输出解读:
r
:等待运行的进程数b
:不可中断的进程数in
:每秒中断次数cs
:上下文切换次数
3.3 mpstat
命令
mpstat -P ALL 1 # 查看每个CPU核心的使用情况
四、网络监控
4.1 基础监控
ifconfig # 查看网络接口状态
ip addr # 现代替代命令
netstat -i # 查看网络接口统计
4.2 实时流量监控
nload # 分接口实时流量(需安装)
iftop -nP # 实时连接流量排名(需安装)
4.3 连接状态统计
ss -s # 显示socket统计摘要
netstat -nat # 查看所有TCP连接
五、端口占用监控
5.1 基础查询
netstat -tunlp | grep :80 # 查看80端口占用
ss -tunlp | grep 3306 # MySQL端口查询
5.2 进程级查询
lsof -i :22 # 查看SSH端口占用进程
5.3 端口扫描检测
nmap -sT -p 80,443 127.0.0.1 # 本地端口扫描
六、高级监控工具
6.1 监控全家桶
glances # 综合监控工具(需安装)
nmon # 分屏式监控(支持历史记录)
6.2 长期监控方案
sar -u 1 3 # CPU历史统计(需配置sysstat)
6.3 可视化工具
- Prometheus + Grafana:企业级监控方案
- Netdata:实时可视化监控
七、自动化监控脚本示例
#!/bin/bash
# 每日资源报告
echo "===== Memory ====="
free -hecho -e "\n===== Disk ====="
df -h | grep -v tmpfsecho -e "\n===== CPU Top 5 ====="
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -6echo -e "\n===== Network Connections ====="
ss -secho -e "\n===== Port Usage ====="
ss -tunlp | grep LISTEN
八、优化建议
-
内存优化:
- 调整
vm.swappiness
(建议值10-60) - 使用
slabtop
分析内核内存占用
- 调整
-
磁盘优化:
- 定期清理日志文件
- 使用
iotop
定位磁盘I/O高的进程
-
网络优化:
- 使用
tcpdump
分析异常流量 - 配置
net.ipv4.tcp_keepalive_time
参数
- 使用
-
端口安全:
- 使用
fail2ban
防止端口扫描 - 配置防火墙规则(iptables/nftables)
- 使用
九、注意事项
- 部分命令需要root权限(如
iftop
,nmap
) - 生产环境慎用
-p
参数显示进程信息 - 长期监控建议使用标准工具(如Prometheus)
- 注意单位换算(1GiB = 1024MiB,1GB = 1000MB)
通过合理组合这些工具,可以构建完整的服务器监控体系。建议根据实际需求选择命令,对于关键业务服务器建议部署专业监控系统。