我有64位REHL
linux,
Linux ipms-sol1 2.6.32-71.el6.x86_64#1 SMP x86_64 x86_64 x86_64 GNU / Linux
RAM大小= ~38GB
我在/etc/sysctl.conf和amp;中更改了默认共享内存限制,如下所示.在内存中加载已更改的文件为sysctl -p
kernel.shmmni = 81474836
kernel.shmmax = 32212254720
kernel.shmall = 7864320
仅仅为了实验性的基础,我已经将shmmax大小改为32GB,并尝试使用shmget()在代码中分配10GB,如下所示,但是单次拍摄无法获得10GB的共享内存,但是当我将共享空间的需求减少到8GB时就成功了关于我可能在哪里出错的任何线索?
#include
#include
#include
#include
#define SHMSZ 10737418240
main()
{
char c;
int shmspaceid;
key_t key;
char *shm, *s;
struct shmid_ds shmid;
key = 5678;
fprintf(stderr,"Changed code\n");
if ((shmspaceid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) {
fprintf(stderr,"ERROR memory allocation failed\n");
return 1;
}
shmctl(shmspaceid, IPC_RMID, &shmid);
return 0;
}
问候
人士Himanshu