在Linux系统中,内核参数kernel.shmall
和kernel.shmmax
与共享内存(System V共享内存)有关,它们分别定义了系统可以分配的共享内存段的最大页数和单个共享内存段的最大字节数。以下是一些关于这些参数的推荐设置:
-
kernel.shmall:这个参数控制可以使用的共享内存的总页数。Linux共享内存页的大小通常是4KB。因此,
kernel.shmall
的值通常设置为系统的物理内存大小除以页的大小。例如,如果系统有16GB的内存,那么kernel.shmall
可以设置为16GB * 1024 * 1024 / 4KB = 4194304
页3。 -
kernel.shmmax:这个参数定义了单个共享内存段的最大字节数。对于32位系统,最大值通常是4GB(
4294967295
字节);对于64位系统,理论上可以设置为物理内存大小减去1字节。但是,实际设置时,建议值通常大于SGA_MAX_SIZE或MEMORY_MAX_TARGET的值,特别是对于安装了Oracle数据库的系统,kernel.shmmax
的值应该比内存的一半大一些28。