我正在尝试在Oracle Linux 7.6计算机上安装Oracle 11g。因此,作为前提条件检查的一部分,如何定义内核参数的值。因为我可以看到最大段大小的意外值。
将在什么基础上将值分配给那些参数。
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
我的笔记本电脑RAM大小为8GB。
请帮助我。
谢谢, Chy
[chy@myserver ~]$ ipcs -l
------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767
答案 0 :(得分:0)
您看到的ipcs -l
输出中的数字是这些参数的默认值(未更改),这些值在内核本身中进行了硬编码。
当内核creates the IPC namespace(这些参数是按名称空间定义的)时,它分别由initializes it定义的sets the limits to defaults和here如下:
#define SHMMIN 1 /* min shared seg size (bytes) */
#define SHMMNI 4096 /* max num of segs system wide */
#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */
#define SHMALL (ULONG_MAX - (1UL << 24)) /* max shm system wide (pages) */
#define SHMSEG SHMMNI /* max shared segs per process */
如您所见,这些默认值不取决于RAM的实际大小。关于最大共享段大小的默认值SHMMAX-定义为ULONG_MAX - (1UL << 24)
(即仅取决于unsigned long
的最大大小),在评估后(在x86_64框上) 18446744073692774399
以字节为单位,即18014398509465599
以千字节为单位,而这恰好是您在max seg size (kbytes)
输出的ipcs -l
行中看到的数字。
此值大于您的物理 RAM大小,您不会感到困惑-它全部与虚拟内存有关,该内存远大于物理RAM。