主要讲解Linux内核参数。kernel.wake_balance = 1 导致调度运行线程被唤醒的任何avaialble调度的CPU。而不是它的CPU的优化的基础上缓存痕迹。默认为1 kernel.suid_dumpable = 0 kernel.unknown_nmi_panic = 0 该参数的值影响的行为(非屏蔽中断处理)。当这个值为非0,未知的NMI受阻,PANIC出现。这时,内核调试信息显示控制台,则可以减轻系统中的程序挂起。 ### Linux内核参数详解 #### 1. `kernel.wake_balance` **参数描述**: `kernel.wake_balance` 控制着内核如何决定唤醒哪些CPU上的任务。默认情况下,其值为1,这意味着当需要唤醒一个处于睡眠状态的任务时,内核会考虑所有可用的CPU,并尝试将任务唤醒在那些具有较好缓存亲和性的CPU上,而不是仅仅局限于原来任务所在的CPU。这种策略有助于提高多处理器系统中的任务调度效率。 **应用场景**: - 在多核心或多处理器系统中,为了更好地利用硬件资源并减少缓存不命中带来的性能损失。 - 当应用程序对缓存亲和性敏感时,例如大量依赖于高速缓存访问的应用程序。 **注意事项**: - 修改该参数可能会影响系统的整体性能表现,因此在调整之前建议先了解应用程序的具体需求。 #### 2. `kernel.suid_dumpable` **参数描述**: `kernel.suid_dumpable` 控制着具有SUID(Set User ID)标志的程序是否能够生成core dump。默认值为0,意味着不允许SUID程序生成core dump。 **应用场景**: - 当需要保护系统安全时,防止敏感信息泄露。 - 如果需要分析SUID程序的崩溃原因,可以将其设为1。 **注意事项**: - 设置为1可能带来潜在的安全风险,因为生成的core dump可能包含敏感数据。 - 在调试完成后应及时恢复默认值。 #### 3. `kernel.unknown_nmi_panic` **参数描述**: `kernel.unknown_nmi_panic` 影响内核对未知非屏蔽中断(NMI)的处理方式。默认值为0,表示当发生未知NMI时,内核不会触发panic,而是继续运行。如果设为非0值,当检测到未知NMI时,内核会触发panic并打印调试信息到控制台,有助于排查问题。 **应用场景**: - 当系统频繁发生未知NMI且需要定位问题时。 - 在开发环境中用于调试目的。 **注意事项**: - 设置为非0值可能会导致系统不稳定,应谨慎使用。 #### 4. `kernel.ngroups_max` **参数描述**: `kernel.ngroups_max` 指定了用户可以成为的补充组的最大数量。默认值为65536,可根据实际需求进行调整。 **应用场景**: - 当用户需要加入大量的组时,以满足访问控制的需求。 - 在高度定制化的环境中,例如大规模集群管理场景。 **注意事项**: - 过大的值可能导致内存使用增加,需根据实际情况合理设置。 #### 5. `kernel.printk_ratelimit_burst` 和 `kernel.printk_ratelimit` **参数描述**: - `kernel.printk_ratelimit_burst`:在短时间内允许通过的信息数量。默认值为10。 - `kernel.printk_ratelimit`:指定在限定时间内允许输出的最小时间间隔(秒)。默认值为5秒。 这两个参数共同作用于内核的日志输出速率限制机制,用于避免在短时间内输出大量日志信息造成不必要的性能开销。 **应用场景**: - 避免在系统出现问题时,大量日志输出导致系统负载增加。 - 在监控系统稳定性时,避免日志信息过多影响分析效率。 **注意事项**: - 不同的应用场景下,合理的配置可能不同,需要根据实际情况进行调整。 #### 6. `kernel.panic_on_oops` **参数描述**: `kernel.panic_on_oops` 控制内核在遇到某些类型错误时的行为。默认值为1,表示当内核检测到错误时会延迟几秒输出klogd日志,并根据其他设置决定是否重启机器。 **应用场景**: - 在开发环境或测试阶段,为了捕捉更多的调试信息。 - 当需要确保系统稳定性和可靠性时,避免潜在的问题导致不可预知的行为。 **注意事项**: - 设置不当可能影响系统的稳定运行,应在理解其行为后再进行修改。 #### 7. `kernel.pid_max` **参数描述**: `kernel.pid_max` 控制着进程标识符(PID)的最大值。默认值为32768,即内核将在PID达到32768时循环回最小PID值。 **应用场景**: - 当系统中进程数量非常大时,需要更高的PID范围。 - 在高度并发的服务器环境中,为了避免PID耗尽。 **注意事项**: - 过高的PID上限可能导致PID空间浪费,需要根据实际情况设置合适的值。 #### 8. `kernel.overflowgid` 和 `kernel.overflowuid` **参数描述**: 这两个参数用于处理旧式文件系统对16位用户标识符和组标识符的支持。默认值为65534,即当用户的UID或GID超过16位表示范围时,将被映射为65534。 **应用场景**: - 在使用旧式文件系统时,确保用户和组标识符的兼容性。 - 当需要迁移旧系统至新系统时,保持用户权限的一致性。 **注意事项**: - 更改这些值可能会影响到系统的兼容性,应当谨慎操作。 #### 9. `kernel.pty.*` **参数描述**: - `kernel.pty.nr`:显示当前正在使用的Unix 98伪终端的数量。 - `kernel.pty.max`:设置最大可创建的Unix 98伪终端数量。 **应用场景**: - 在需要大量伪终端连接的环境中,例如远程管理大量服务器。 - 在进行自动化脚本编写时,需要创建多个伪终端。 **注意事项**: - 过高的`kernel.pty.max`值可能导致资源浪费。 - 应根据实际需求调整这两个参数。 #### 10. `kernel.random.*` **参数描述**: - `kernel.random.uuid`:包含一个随机生成的UUID字符串,在系统启动时生成。 - `kernel.random.boot_id`:每个引导周期都会生成一个新的随机字符串。 - `kernel.random.write_wakeup_threshold`:当熵池中的熵低于这个阈值时,唤醒等待写入`/dev/urandom`的进程。 - `kernel.random.read_wakeup_threshold`:当熵池中的熵低于这个阈值时,唤醒等待读取`/dev/random`的进程。 - `kernel.random.entropy_avail`:显示当前熵池中的可用熵数量。 - `kernel.random.poolsize`:定义熵池的大小。 **应用场景**: - 在加密应用中,确保有足够的随机性来源。 - 在需要高安全性的环境中,确保熵池中有足够的熵。 **注意事项**: - 对于大多数系统而言,无需修改这些参数即可正常工作。 - 调整这些参数可能会影响系统的随机性质量,应谨慎操作。 #### 11. `kernel.threads-max` **参数描述**: `kernel.threads-max` 指定了内核可以使用的线程的最大数量。默认值为139264,可根据系统资源情况进行调整。 **应用场景**: - 在高性能计算或服务器环境中,为了充分利用系统资源。 - 当需要处理大量并发请求时。 **注意事项**: - 过高的值可能导致系统资源过度消耗。 - 需要根据实际情况合理设置。 #### 12. `kernel.cad_pid` **参数描述**: `kernel.cad_pid` 显示当按下Ctrl+Alt+Del组合键时,将触发哪个进程。默认值为1,即`init`进程。 **应用场景**: - 在需要紧急重启系统时,确保正确的进程被触发。 **注意事项**: - 通常情况下无需修改此参数。 #### 13. `kernel.sysrq` **参数描述**: `kernel.sysrq` 控制着系统请求键(System Request Key)是否激活。默认值为0,即禁用。如果设为非0值,将启用sysrq功能,允许用户通过特定的键盘组合来执行内核级别的命令。 **应用场景**: - 在系统无法响应或需要紧急操作时,通过sysrq功能执行特定操作,如重启系统、收集内存转储等。 - 在开发环境中用于调试目的。 **注意事项**: - 使用不当可能会导致系统不稳定,应谨慎使用。 #### 14. `kernel.sem`、`kernel.msgmnb` 和 `kernel.msgmni`、`kernel.msgmax` **参数描述**: - `kernel.sem`:设置信号量的最大数量。 - `kernel.msgmnb`:设置单个消息队列的最大消息数量。 - `kernel.msgmni`:设置消息队列标识的最大数量。 - `kernel.msgmax`:设置单条消息的最大长度。 这些参数控制着进程间的通信机制。 **应用场景**: - 在需要大量进程间通信的环境中,为了优化通信效率。 - 当进程间通信频繁发生时,为了提高性能。 **注意事项**: - 过高的值可能导致系统资源过度消耗。 - 需要根据实际情况合理设置。 ### 总结 以上列出的Linux内核参数涵盖了从系统调度到安全、从进程管理到随机数生成等多个方面。正确理解和使用这些参数对于优化Linux系统的性能和稳定性至关重要。在调整这些参数之前,建议详细了解它们的作用以及可能带来的影响,以避免不必要的问题。
剩余8页未读,继续阅读
- 粉丝: 1
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助