bash
top -d 1 -n 10 # 1秒刷新,运行10次bash
vmstat 1 5 # 每秒1次,共5次bash
mpstat -P ALL 1 # 监控所有CPU核心bash
iostat -dx 1 # 详细磁盘统计bash
free -h -s 3 # 人类可读格式,每3秒刷新bash
dstat -cdngy 1 # 监控CPU、磁盘、网络、内存等bash
sar -u 1 3 # CPU使用率
sar -r 1 3 # 内存使用bash
nmon -f -s 30 -c 120 # 每30秒采集一次,共120次bash
perf top # 实时性能分析
perf stat -p <PID> # 进程统计
perf record -g -p <PID> # 记录调用图bash
strace -c -p <PID> # 统计系统调用bash
taskset -c 0,1 ./program # 绑定到CPU0和1bash
service irqbalance statusbash
cpupower frequency-set -g performance # 高性能模式bash
pmap -x <PID>bash
slabtop -o # 按占用排序bash
echo 10 > /proc/sys/vm/swappiness # 降低交换倾向bash
echo never > /sys/kernel/mm/transparent_hugepage/enabledbash
echo -17 > /proc/<PID>/oom_adj # 防止进程被OOM杀死bash
iotop -o # 只显示有I/O活动的进程bash
blktrace -d /dev/sda -o tracebash
echo deadline > /sys/block/sda/queue/schedulerbash
blockdev --setra 1024 /dev/sdabash
mount -o noatime,nodiratime,data=writeback /dev/sda1 /mntbash
iftop -n -i eth0bash
nethogs eth0bash
ss -s # 摘要统计
ss -tulnp # 监听端口bash
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.core.somaxconn = 4096" >> /etc/sysctl.conf
sysctl -pbash
ethtool -l eth0 # 查看队列
ethtool -L eth0 combined 8 # 设置8个队列bash
echo 1 > /proc/irq/<irq_num>/smp_affinitybash
echo "fs.file-max = 655350" >> /etc/sysctl.confbash
echo "vm.overcommit_memory = 1" >> /etc/sysctl.confbash
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.confbash
echo never > /sys/kernel/mm/transparent_hugepage/enabledbash
echo 10 > /proc/sys/vm/dirty_ratioini
[mysqld]
innodb_buffer_pool_size = 4G
innodb_flush_log_at_trx_commit = 2ini
maxmemory 4gb
maxmemory-policy allkeys-lrunginx
worker_processes auto;
worker_connections 10240;
keepalive_timeout 65;apache
StartServers 8
MinSpareServers 5
MaxSpareServers 20bash
sysbench cpu --cpu-max-prime=20000 run
sysbench memory --memory-block-size=1K runbash
fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=1G --runtime=60 --time_based --end_fsync=1bash
iperf3 -s # 服务端
iperf3 -c <server_ip> -t 30 # 客户端bash
netserver # 服务端
netperf -H <server_ip> -l 60 # 客户端USE方法(Utilization, Saturation, Errors)
RED方法(Rate, Errors, Duration)
性能调优步骤:
#!/bin/bash
echo "===== CPU Top 10 ====="
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -11
echo "===== Memory Top 10 ====="
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -11
echo "===== Disk Usage ====="
df -h
echo "===== Memory Usage ====="
free -h
echo "===== Load Average ====="
uptime
#!/bin/bash
echo "===== TCP Connections ====="
ss -s | grep -A 10 "TCP:"
echo "===== Established Connections by IP ====="
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Linux性能优化是一个系统工程,需要: 1. 全面监控系统资源使用情况 2. 准确识别性能瓶颈 3. 有针对性地实施优化措施 4. 持续监控优化效果 5. 建立性能基准和预警机制
掌握这些工具和方法,能够有效提升Linux系统的性能和稳定性。建议收藏本指南,在实际工作中根据具体场景灵活应用。