Google 云引擎的内存分配(C 编程)限制

memory allocation (C programming) limit on Google cloud engine

Google云引擎的配置是2个vCPU,13GB内存,ubuntu-1604.

似乎 "malloc" 可以分配的最大内存大小略小于 13GB(以下示例中的 12GB 有效,分配 12.5GB 会失败..)。这是因为虚拟内存不知何故没有打开吗?还有其他可能的原因吗?

  unsigned long input_size = 1024*1024*1024*3;
  unsigned int *h_data = (unsigned int *)malloc(input_size*sizeof(unsigned int));

使用free 命令查看您有多少空闲内存。它还将显示您有多少交换 space。

服务器可能配置为 13GB 内存,但肯定其他东西(如 OS)正在使用内存做其他事情,并非所有 13GB 都可用于您的应用程序。

您是否希望使用交换 space 分配比实际可用内存更多的内存?