在Linux系统性能调优中,涉及代码和具体命令的部分主要包括硬件资源监控、内核参数调整、进程管理优化等方面。以下是一些具体的代码和命令示例:
1. 硬件资源监控
CPU监控
- 使用`top`命令:
top
按`1`键可以查看每个CPU核心的使用情况。
- 使用`htop`命令(需要先安装):
htop
htop是top的增强版,界面更友好。
- 使用`mpstat`命令(`sysstat`工具集的一部分):
mpstat -P ALL 1
每秒显示所有CPU的信息。
内存监控
- 使用`free`命令:
free -h
显示系统的内存使用情况。
- 使用`vmstat`命令:
vmstat 1
每秒更新一次数据,提供关于系统内存、进程、I/O等的综合信息。
磁盘I/O监控
- 使用`iostat`命令:
iostat -x 1
显示扩展统计信息,每秒更新一次,包括读写速率、I/O等待等信息。
- 使用`iotop`命令(需要root权限):
sudo iotop
专门用于监控实时I/O使用情况,显示进程的磁盘I/O使用情况。
内核参数调整
- 调整虚拟内存(Swap)使用倾向:
sysctl vm.swappiness=10
将`vm.swappiness`的值设置为较低值(如10),让系统更倾向于使用物理内存。
- 调整写入缓存的刷新频率:
sysctl vm.dirty_ratio=15
sysctl vm.dirty_background_ratio=5
优化写入缓存的刷新频率,减少磁盘I/O压力。
- 启用透明大页(THP):
echo always > /sys/kernel/mm/transparent_hugepage/enabled
可以在需要大块内存的应用中提升性能,特别是虚拟化或数据库应用。
进程管理优化
- 为进程增加打开文件句柄的限制:
编辑`/etc/security/limits.conf`文件,添加或修改以下行:
* hard nofile 65535
* soft nofile 65535
以避免高负载下的资源不足。
- 调整TCP窗口大小:
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.core.rmem_default=262144
sysctl -w net.core.wmem_default=262144
增加TCP窗口大小,提升高延迟网络环境下的吞吐量。
文件系统优化
- 使用`noatime`选项挂载文件系统:
编辑`/etc/fstab`文件,为需要优化的分区添加`noatime`选项,例如:
/dev/sda1 / ext4 defaults,noatime 0 0
减少每次文件读取时更新访问时间的磁盘I/O操作。
网络优化
- 增加服务器的连接队列长度:
sysctl -w net.core.somaxconn=1024
避免在高并发时的连接拒绝。
- 增加网络缓冲区大小:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
避免高负载时的网络包丢失。
使用调优工具
- 安装并使用`tuned`工具:
yum install tuned
tuned-adm profile throughput-performance
根据系统角色自动调整内核参数和性能配置。