一、【写在前面】
Linux内核调参是一个重要知识,这篇文章总结一下常见的参数用法。
调参位置在 /etc/sysctl.conf中或者sysctl.d
区别是:
-  /etc/sysctl.conf文件:- 这是默认的主配置文件,包含了系统上所有的 sysctl 参数配置。
- 所有的配置项都可以直接添加到这个文件中。
- 在这个文件中,通常会包含一些全局性的配置,对整个系统生效。
 
-  /etc/sysctl.d/目录:- 这个目录是用来存放系统级别和软件包级别的 sysctl 配置文件的地方。
- 在这个目录下,可以创建一个新的文件,以 .conf结尾,来添加相关的 sysctl 配置。
- 这种结构允许不同的软件包或管理员组织他们自己的 sysctl 参数,方便管理。
 
使用场景:
- 如果你只是想修改一些通用的全局参数,直接编辑 /etc/sysctl.conf文件即可。
- 如果你正在为某个软件包配置 sysctl 参数,最好将相关的配置放在 /etc/sysctl.d/目录下,创建一个新的文件,以保持结构的清晰性。
注意事项:
- 在修改这些文件后,需要使用 sysctl -p命令来加载新的配置。
- 在 /etc/sysctl.d/目录下的文件通常以.conf结尾,但并非必须。系统会按照文件名的字母顺序加载配置,因此可以通过文件名来控制加载的顺序。
- 请谨慎修改这些文件,确保你了解正在修改的参数的含义以及对系统的影响。
二、【参数记录】
-  网络参数:- 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: 控制网络设备队列的最大长度。
 
-  内存参数:- vm.max_map_count: 设置一个进程的最大地址空间映射数量。
- vm.vfs_cache_pressure: 控制文件系统元数据缓存与文件页缓存之间的平衡。
- vm.swappiness: 调整系统对交换空间的使用倾向。
- vm.dirty_ratio和- vm.dirty_background_ratio: 控制脏页(尚未写入磁盘的内存页)的百分比。
- vm.overcommit_memory: 决定内存超额分配策略。
- vm.max_map_count: 设置一个进程最大的地址空间。
 
-  文件系统参数:- fs.inode-max: 设置系统上的最大inode数量。
- fs.quota: 启用磁盘配额功能。
- fs.file-max: 设置系统所能打开文件的最大数量。
- fs.nr_open: 设置系统可打开的文件句柄数量。
- fs.inotify.max_user_watches: 设置inotify机制的最大用户观察数。
 
-  安全性参数:- kernel.exec-shield: 控制可执行文件的地址空间布局,用于防范缓冲区溢出攻击。
- kernel.sysrq: 启用或禁用系统请求键(SysRq)功能。
- kernel.randomize_va_space: 控制地址空间的随机化,提高系统的安全性。
- kernel.core_pattern: 设置core dump文件的命名规则。
- fs.protected_hardlinks和- fs.protected_symlinks: 增强对 /tmp 目录的保护。
 
-  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 窗口扩大因子。
 
-  进程参数:- kernel.panic_on_oops: 决定系统在发生内核 oops 时是否自动重启。
- kernel.shmall: 共享内存段的总大小(以页面为单位)。
- kernel.shmmax: 共享内存段的最大大小(以字节为单位)。
- kernel.pid_max: 系统允许的最大PID值。
- kernel.sem: 用于控制 System V IPC 信号量的参数。
 
-  调度参数:- kernel.sched_migration_cost_ns: 设置任务迁移的成本。
- kernel.sched_autogroup_enabled: 启用或禁用自动任务组。
 
-  时间参数:- kernel.timezone: 设置内核时区。
- kernel.panic: 设置内核发生致命错误时的延迟时间。
 




















