提高 Linux 服务器性能
Linux 服务器主要资源
CPU,内存,磁盘,网络
提高 Linux 性能的具体方法
- 确保系统拥有足够的内存
- 使用 SSD 更换 HDD
- 配置系统和应用:将数据分散在多块磁盘,不动态执行 DNS 查询,运行多个服务器实例
- 检查实际工作:删除不需要的守护进程,不要运行过多的服务,改变批处理和大型作业的优先级和运行时机
- 组织硬盘和文件系统,使负载均衡,最大化 I/O 吞吐量:如对数据库应用 RAID 磁盘
- 使用负载均衡器将网络流量分散到多个应用服务器
- 监控网络,确保带宽未饱和,错误率保持在低位
- 找出系统根本无法满足不了的需求
盘点设备
- CPU 类型和描述
lscpu
more /proc/cpuinfo
- 内存大小和使用情况
more /proc/meminfo
- 磁盘设备和使用统计
cat /proc/diskstats
- 网络流量和误码率
cat /proc/net/dev
分析 CPU 使用情况
vmstat 10 10
- us 用户时间,数值大表明计算量大
- sy 系统时间,数值大表明大量的系统调用或 I/O 操作
- id 空闲时间;wa I/O 等待时间; st 从虚拟机窃取时间
- cs 上下文切换;in 中断次数。这 2 者大说明硬件设备工作不当或配置错误。
mpstat -P ALL
查看多个 CPU 效率
uptime
查看系统平均负载
输出的 3 个值分别对应于 1 分钟,5 分钟,15 分钟内的平均负载。
ps -aux
top
查看进程占用 CPU
小心 top 本身占用大量的 CPU
分析内存使用情况
free
查看内存大小
vmstat 10 10
- swpd 虚存空间
- free 空闲空间
- buff 缓冲空间
- cache 缓存空间
- si 内存<--磁盘
- so 内存-->磁盘
如果 si 和 so 数值大,说明系统持续不断地换出页面,增加更多的物理内存有助于提高性能。
分析磁盘 I/O
lsblk -o +MODEL,SERIAL
查看分区,文件系统,设备型号和序列号
df -h
查看各分区总量与使用
du -sh /home
查看 home 目录下文件总大小
du --max-depth=1 /home | sort -rn
列出 home 下一级目录文件总大小
du -S /home | sort -rn | head -n 10
列出 home 目录下前 10 个大户
iostat
- tps 每秒传输次数
- kB_read/s 每秒读取数量
- kB_wrtn/s 每秒写入数量
- kB_read 总共读取数量
- kB_wrtn 总共写入数量
分析网络 I/O
nload
输出当前网速
ss -s
按网络传输类型显示总体统计信息
sudo netstat -tunlp
查看服务端口
sudo iftop
查看网络带宽使用
- 按下 p 根据端口号显示
- 按下 t 发送和接受合成一行
- 按下 T 显示总量