引言Linux 内核参数控制着操作系统的核心行为。正确的调整可以显著提升服务器的性能。本文将指导您如何调整这些参数,并解释它们的作用。
1. 文件描述符限制 (ulimit)文件描述符是操作系统分配给进程用于访问文件和其他I/O资源的句柄。对于Web服务器等高并发应用来说,增加最大文件描述符数是非常有益的。
命令:
cat /proc/sys/fs/file-maxsysctl -w fs.file-max=65536ulimit -n 655362. TCP 参数调整TCP 参数直接影响网络性能,特别是对于需要处理大量连接的应用。
TCP 重传次数:sysctl -w net.ipv4.tcp_retries2=5TCP 连接队列长度:sysctl -w net.core.somaxconn=4096TCP 时间等待状态:sysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w net.ipv4.tcp_tw_recycle=13. 内存参数内存管理是提高服务器性能的关键。通过调整内存参数,可以更好地利用物理内存和交换空间。
内存过载百分比sysctl -w vm.overcommit_memory=1最小空闲页面sysctl -w vm.min_free_kbytes=409604. 调整调度器参数Linux 调度器决定了进程的执行顺序。通过调整调度器参数,可以优化CPU的使用。
优先级提升nice -n -5 实时进程:chrt -r 0 5. 磁盘 I/O 调优磁盘 I/O 性能对服务器的整体表现至关重要,尤其是对于数据库服务器。
打开更多的块设备队列sysctl -w fs.file-max=65536禁用预读:echo 0 > /sys/block/sda/queue/read_ahead_kb6. 使用 cgroups 控制资源cgroups(control groups)是 Linux 中用于限制、记录和隔离进程组使用的物理资源(如 CPU、内存、磁盘 I/O)的一种机制。
创建 cgroup:mkdir /sys/fs/cgroup/cpu,cpuacct/mygroupecho "0" > /sys/fs/cgroup/cpu,cpuacct/mygroup/cpu.cfs_period_usecho "50000" > /sys/fs/cgroup/cpu,cpuacct/mygroup/cpu.cfs_quota_us7. 持久化更改以上更改在重启后会丢失,要让这些更改永久生效,需要编辑 /etc/sysctl.conf 文件。