← 返回首页

Linux系统性能优化基础

📂 devops ⏱ 2 min 257 words

Linux系统性能优化基础

性能优化原则

  1. 先监控,后优化
  2. 找到瓶颈点
  3. 一次只改一个参数
  4. 测试验证效果

性能监控工具

CPU监控

# 查看CPU使用率
top
htop

# 查看负载
uptime

# 查看CPU信息
lscpu
cat /proc/cpuinfo

# 查看进程CPU使用
ps aux --sort=-%cpu | head -10

内存监控

# 查看内存使用
free -h

# 查看详细内存信息
cat /proc/meminfo

# 查看内存使用最多的进程
ps aux --sort=-%mem | head -10

磁盘监控

# 查看磁盘IO
iostat -x 1

# 查看磁盘使用
df -h

# 查看IO最高的进程
iotop

网络监控

# 查看网络流量
iftop
nethogs

# 查看网络连接
ss -s

内核参数优化

/etc/sysctl.conf

# 网络优化
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535

# 文件系统优化
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

# 内存优化
vm.swappiness = 10
vm.overcommit_memory = 1
vm.dirty_ratio = 30

应用配置

# 查看当前值
sysctl net.ipv4.tcp_max_syn_backlog

# 临时修改
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

# 永久修改
echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf
sysctl -p

文件描述符限制

# 查看当前限制
ulimit -n

# 临时修改
ulimit -n 65535

# 永久修改
# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

# 或使用/etc/sysctl.conf
fs.file-max = 2097152

服务优化

Nginx优化

# 并发连接
worker_processes auto;
worker_connections 4096;

# 缓冲区
client_body_buffer_size 16k;
client_header_buffer_size 1k;

# Gzip压缩
gzip on;
gzip_types text/plain text/css application/json;

MySQL优化

# /etc/mysql/my.cnf
[mysqld]
innodb_buffer_pool_size = 4G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
max_connections = 500

实践:性能检查脚本

#!/bin/bash
echo "=== 系统性能检查 ==="

echo ""
echo "--- CPU ---"
uptime
echo ""
top -bn1 | head -5

echo ""
echo "--- 内存 ---"
free -h

echo ""
echo "--- 磁盘 ---"
df -h

echo ""
echo "--- 网络连接 ---"
ss -s

echo ""
echo "--- 文件描述符 ---"
cat /proc/sys/fs/file-nr

性能基线

# 建立性能基线
echo "=== 性能基线 ===" > /var/log/baseline.txt
date >> /var/log/baseline.txt
echo "" >> /var/log/baseline.txt
echo "CPU:" >> /var/log/baseline.txt
mpstat 1 3 >> /var/log/baseline.txt
echo "Memory:" >> /var/log/baseline.txt
free -h >> /var/log/baseline.txt
echo "Disk:" >> /var/log/baseline.txt
iostat -x 1 3 >> /var/log/baseline.txt

总结

性能优化是一个持续的过程。通过监控工具发现问题,使用内核参数和服务配置进行优化,可以显著提升系统性能。