如何在Linux中进行系统监控和性能优化?代码举例讲解

在Linux中,可以通过以下几种方式进行系统监控和性能优化:

  1. 系统监控:
  • uptime : 查看系统运行时间和平均负载。
  • free : 查看内存使用情况。
  • df : 查看磁盘使用情况。
  • netstat : 查看网络连接状况。
  • sar : 查看CPU.内存.网络.磁盘等系统性能数据。
  • iostat : 监控系统输入输出设备和CPU的使用情况。
    例如:
uptime  
free -h  # 以KB,MB,GB为单位显示内存使用
df -h     # 以KB,MB,GB为单位显示磁盘使用 
netstat -ntlp  # 查看所有tcp连接和监听端口
sar -u 5 10   # 每5秒获取一次CPU使用率,共10次
iostat -xk 5  # 每5秒获取一次磁盘统计,并显示扩展统计
  1. 性能优化:
  • 禁用视觉效果: sudo systemctl set-default multi-user.target
  • 调整磁盘IO策略: echo noop > /sys/block/sda/queue/scheduler
  • 禁用Selinux: sudo sed -i ‘s/enforcing/disabled/’ /etc/selinux/config
  • 优化网络性能: 调整内核参数net.ipv4.tcp_fin_timeout , net.ipv4.tcp_tw_reuse等
  • 优化内核参数: sysctl -p 加载sysctl.conf的内核优化参数。
  • 安装优化补丁: 如KernelCare可以对内核自动应用补丁和参数优化。
  • 定期清理缓存: echo 3 > /proc/sys/vm/drop_caches 清理页缓存。
    例如:
# 禁用视觉效果
sudo systemctl set-default multi-user.target

# 调整磁盘IO策略为noop
echo noop > /sys/block/sda/queue/scheduler

# 添加TCP参数优化
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf  
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
sysctl -p  # 加载优化参数

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