Linux内核调参常用整理

一、【写在前面】

Linux内核调参是一个重要知识,这篇文章总结一下常见的参数用法。

调参位置在 /etc/sysctl.conf中或者sysctl.d

区别是:

  1. /etc/sysctl.conf 文件:

    • 这是默认的主配置文件,包含了系统上所有的 sysctl 参数配置。
    • 所有的配置项都可以直接添加到这个文件中。
    • 在这个文件中,通常会包含一些全局性的配置,对整个系统生效。
  2. /etc/sysctl.d/ 目录:

    • 这个目录是用来存放系统级别和软件包级别的 sysctl 配置文件的地方。
    • 在这个目录下,可以创建一个新的文件,以 .conf 结尾,来添加相关的 sysctl 配置。
    • 这种结构允许不同的软件包或管理员组织他们自己的 sysctl 参数,方便管理。

使用场景:

  • 如果你只是想修改一些通用的全局参数,直接编辑 /etc/sysctl.conf 文件即可。
  • 如果你正在为某个软件包配置 sysctl 参数,最好将相关的配置放在 /etc/sysctl.d/ 目录下,创建一个新的文件,以保持结构的清晰性。

注意事项:

  • 在修改这些文件后,需要使用 sysctl -p 命令来加载新的配置。
  • 在 /etc/sysctl.d/ 目录下的文件通常以 .conf 结尾,但并非必须。系统会按照文件名的字母顺序加载配置,因此可以通过文件名来控制加载的顺序。
  • 请谨慎修改这些文件,确保你了解正在修改的参数的含义以及对系统的影响。

二、【参数记录】

  1. 网络参数:

    • net.ipv4.tcp_max_syn_backlog: 设置TCP SYN 队列的最大长度,影响连接的建立。
    • net.ipv4.tcp_max_tw_buckets: 设置系统允许的最大 TIME-WAIT sockets 数量。
    • net.core.somaxconn: 设置系统对于监听状态的套接字的最大并发连接数。
    • net.ipv4.ip_forward: 控制是否启用IP转发,用于路由功能。
    • net.ipv4.conf.all.accept_redirects: 控制是否接受 ICMP 重定向。
    • net.ipv4.conf.all.forwarding: 控制所有网络接口是否启用 IP 转发。
    • net.ipv4.tcp_syncookies: 启用 SYN Cookie 支持,防止 SYN 攻击。
    • net.core.netdev_max_backlog: 控制网络设备队列的最大长度。
  2. 内存参数:

    • vm.max_map_count: 设置一个进程的最大地址空间映射数量。
    • vm.vfs_cache_pressure: 控制文件系统元数据缓存与文件页缓存之间的平衡。
    • vm.swappiness: 调整系统对交换空间的使用倾向。
    • vm.dirty_ratio 和 vm.dirty_background_ratio: 控制脏页(尚未写入磁盘的内存页)的百分比。
    • vm.overcommit_memory: 决定内存超额分配策略。
    • vm.max_map_count: 设置一个进程最大的地址空间。
  3. 文件系统参数:

    • fs.inode-max: 设置系统上的最大inode数量。
    • fs.quota: 启用磁盘配额功能。
    • fs.file-max: 设置系统所能打开文件的最大数量。
    • fs.nr_open: 设置系统可打开的文件句柄数量。
    • fs.inotify.max_user_watches: 设置inotify机制的最大用户观察数。
  4. 安全性参数:

    • kernel.exec-shield: 控制可执行文件的地址空间布局,用于防范缓冲区溢出攻击。
    • kernel.sysrq: 启用或禁用系统请求键(SysRq)功能。
    • kernel.randomize_va_space: 控制地址空间的随机化,提高系统的安全性。
    • kernel.core_pattern: 设置core dump文件的命名规则。
    • fs.protected_hardlinks 和 fs.protected_symlinks: 增强对 /tmp 目录的保护。
  5. TCP参数:

    • net.ipv4.tcp_rmem: 控制TCP接收缓冲区的最小、默认、最大大小。
    • net.ipv4.tcp_wmem: 控制TCP发送缓冲区的最小、默认、最大大小。
    • net.ipv4.tcp_tw_reuse: 允许重新使用TIME-WAIT套接字。
    • net.ipv4.tcp_tw_recycle: 启用快速TIME-WAIT套接字回收。
    • net.ipv4.tcp_fin_timeout: 设置TCP连接的FIN等待时间。
    • net.ipv4.tcp_keepalive_time: 设置TCP连接的空闲时间。
    • net.ipv4.tcp_window_scaling: 启用 TCP 窗口扩大因子。
  6. 进程参数:

    • kernel.panic_on_oops: 决定系统在发生内核 oops 时是否自动重启。
    • kernel.shmall: 共享内存段的总大小(以页面为单位)。
    • kernel.shmmax: 共享内存段的最大大小(以字节为单位)。
    • kernel.pid_max: 系统允许的最大PID值。
    • kernel.sem: 用于控制 System V IPC 信号量的参数。
  7. 调度参数:

    • kernel.sched_migration_cost_ns: 设置任务迁移的成本。
    • kernel.sched_autogroup_enabled: 启用或禁用自动任务组。
  8. 时间参数:

    • kernel.timezone: 设置内核时区。
    • kernel.panic: 设置内核发生致命错误时的延迟时间。
  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值