在Linux系统管理中,你是否曾经遇到过系统运行缓慢、资源占用过高、或者性能瓶颈难以定位的问题?
系统监控与性能优化是Linux系统管理的重要技能,掌握这些技能不仅能保证系统稳定运行,还能提高工作效率。
本文将详细介绍Linux系统监控的核心命令和性能优化技巧。
目录
1. 系统资源监控
1.1 CPU监控
top命令监控:
# 实时监控CPU使用
top
# 按CPU使用率排序
top -o cpu
# 设置刷新间隔
top -d 5
vmstat命令:
# 查看系统资源使用
vmstat 1
# 查看CPU详细信息
vmstat -c 1
htop命令:
# 交互式监控
htop
# 按CPU排序
F6 → CPU
1.2 内存监控
free命令:
# 查看内存使用
free -h
# 查看内存详细信息
free -m
# 查看内存使用趋势
watch free -h
内存分析:
# 查看内存使用情况
cat /proc/meminfo
# 查看内存映射
cat /proc/PID/maps
1.3 磁盘I/O监控
iostat命令:
# 查看磁盘I/O使用
iostat -xz 1
# 查看磁盘详细信息
iostat -d -x -k 1
df命令:
# 查看磁盘使用
df -h
# 查看inode使用
df -i
1.4 网络监控
netstat命令:
# 查看网络连接
netstat -an
# 查看监听端口
netstat -ln
# 查看进程ID
netstat -p
ss命令:
# 查看网络连接
ss -tulpn
# 查看TCP连接
ss -t
2. 进程监控
2.1 进程查看
ps命令:
# 查看当前进程
ps
# 查看所有进程
ps -ef
# 查看进程详细信息
ps -aux
pgrep命令:
# 查找进程
pgrep nginx
# 查找进程并显示PID
pgrep -l nginx
pstree命令:
# 查看进程树
pstree
# 显示PID
pstree -p
2.2 进程控制
kill命令:
# 终止进程
kill PID
# 强制终止进程
kill -9 PID
# 终止所有同名进程
killall nginx
nice命令:
# 调整进程优先级
nice -n -5 command
# 修改已运行进程的优先级
renice -n 10 PID
2.3 进程调度
screen命令:
# 创建新会话
screen -S session_name
# 查看所有会话
screen -ls
# 恢复会话
screen -r session_name
tmux命令:
# 创建新会话
tmux new -s session_name
# 查看所有会话
tmux ls
# 附加会话
tmux attach -t session_name
3. 性能优化
3.1 CPU优化
CPU调度优化:
# 查看CPU调度策略
cat /sys/block/sda/queue/scheduler
# 调整CPU调度策略
echo "deadline" > /sys/block/sda/queue/scheduler
# 调整CPU频率
cpufreq-set -g performance
# 调整CPU亲和性
taskset -c 0-3 command
进程优先级调整:
# 查看进程优先级
ps -eo pid,ppid,cmd,pri,ni
# 调整进程优先级
renice -n -10 PID
# 设置实时优先级
chrt -f 50 PID
3.2 内存优化
内存参数调优:
# 调整内存使用策略
echo "1" > /proc/sys/vm/swappiness
# 调整内存缓存
echo "50" > /proc/sys/vm/vfs_cache_pressure
# 调整内存分配策略
echo "0" > /proc/sys/vm/overcommit_memory
内存限制设置:
# 设置内存限制
ulimit -v 1048576 # 限制为1GB
# 设置进程内存限制
prlimit --as=1073741824 command
3.3 磁盘I/O优化
磁盘参数调优:
# 调整磁盘队列长度
echo "512" > /sys/block/sda/queue/nr_requests
# 调整预读大小
echo "8192" > /sys/block/sda/queue/read_ahead_kb
# 调整调度策略
echo "noop" > /sys/block/sda/queue/scheduler
文件系统优化:
# 调整挂载选项
mount -o noatime,nodiratime /dev/sda1 /mnt
# 启用延迟写入
mount -o data=writeback /dev/sda1 /mnt
# 启用压缩
mount -o compress /dev/sda1 /mnt
3.4 网络优化
网络参数调优:
# 调整TCP窗口大小
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
# 调整TCP缓冲区
echo "net.ipv4.tcp_rmem = 4096 87380 16777216" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 16777216" >> /etc/sysctl.conf
# 调整TCP连接数
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
# 应用配置
sysctl -p
网络接口优化:
# 调整MTU
ifconfig eth0 mtu 9000
# 调整网卡队列长度
ethtool -G eth0 rx 4096 tx 4096
# 启用网卡多队列
ethtool -L eth0 combined 8
总结
Linux系统监控与性能优化是系统管理的重要技能,掌握这些技能不仅能保证系统稳定运行,还能提高工作效率。通过本文的学习,你应该已经掌握了系统资源监控、进程监控、性能优化等核心技能。
关键要点回顾:
- 1. 系统监控:掌握top、vmstat、iostat、netstat等监控命令
- 2. 进程监控:熟练使用ps、pgrep、pstree等进程查看工具
- 3. 性能优化:了解CPU、内存、磁盘、网络的优化技巧