内核参数要求 (Linux)
数据库管理器使用公式来自动调整内核参数设置,从而不再需要手动更新这些设置。
进程间通信内核参数
启动实例时,如果进程间通信 (IPC) 内核参数小于最小强制值,那么数据库管理器会将其更新为最小强制值。 当启动 Db2® 实例时, IPC 内核参数值会更改。
注意: 在启动 Db2 实例时更改的 IPC 内核参数值在重新引导系统时不会持久存储。 重新启动后,内核设置可能低于强制值,直到 Db2 实例启动为止。 通过调整任何内核参数设置,数据库可以防止发生不必要的资源错误。
| IPC 内核参数 | 最小强制设置 |
|---|---|
| kernel.shmmni (SHMMNI) | 256 * <size of RAM in GB> |
| kernel.shmmax (SHMMAX) | <size of RAM in bytes>1 |
| kernel.shmall (SHMALL) | 2 * <size of RAM in the default system page size>2 |
| kernel.sem (SEMMNI) | 256 * <size of RAM in GB> |
| kernel.sem (SEMMSL) | 250 |
| kernel.sem (SEMMNS) | 256 000 |
| kernel.sem (SEMOPM) | 32 |
| kernel.msgmni (MSGMNI) | 1 024 * <size of RAM in GB> |
| kernel.msgmax (MSGMAX) | 65 536 |
| kernel.msgmnb (MSGMNB) | 65 536 3 |
|
|
实施的最小内核参数设置
启动实例时,如果内核参数低于强制最小值,那么数据库管理器会将其更新为强制最小值。 启动 Db2 实例时,内核参数值会更改。
注意: 启动 Db2 实例时更改的内核参数值不会在系统重新引导时持久存储。 重新引导后,内核设置可能低于强制实施的值,直到 Db2实例启动为止。 通过调整内核参数设置,数据库管理器可以防止发生不必要的资源错误。
| 内核参数 | 实施的最小值 |
|---|---|
| fs.file-max | 16384 |
| vm.max_map_count | <size of RAM in bytes> / 4096 |
| kernel.panic_on_oops | 51 |
|
|
其他建议内核参数设置
下表列示了其他建议内核参数设置。
| 建议内核参数设置 | 为 Db2 数据服务器配置内核参数 |
|---|---|
| vm.swappiness=5 | 此参数定义内核交换出物理随机存取存储器 (RAM) 中的应用程序的倾向性。 缺省设置为 vm.swappiness=60。 建议的内核参数设置 vm.swappiness=5 将优先使用 RAM 找到应用程序内存,而不是分配更多内存用于文件高速缓存。 |
| vm.overcommit_memory=0 | 此参数影响内核允许分配的虚拟内存量。 缺省设置为 vm.overcommit_memory=0。 此设置意味着所分配的虚拟内存不受限制。 具有无限虚拟内存对于 Db2 数据服务器很重要,这些服务器保留额外的未使用虚拟内存分配用于动态内存管理。 Linux 系统上的 RAM 或调页空间不支持未引用的已分配内存。 应避免设置 vm.overcommit_memory=2,因为此设置会限制可分配的总虚拟内存量,这会导致意外错误。 |
| ipcmni_extend | 建议在较新的 Linux Red Hat 内核上使用此参数,因为这些内核可能会将某些参数 (例如 SHMMNI, SEMMNI 和 MSGMNI ) 限制为 32768。 如果用户具有超过 128GB 的 RAM ,那么除非设置了 ipcmni_extend 参数,否则建议将不起作用。 有关更多信息,请参阅 db2start 失败,因为在较新的 Linux Kernels上实施了最大信号量阵列。 |