Google云引擎的配置为2个vCPU,13 GB内存,ubuntu-1604。
似乎“ malloc”可以分配的最大内存大小略小于13GB(以下示例中为12GB,malloc 12.5GB会失败..)。这是因为虚拟内存无法打开吗?还有其他可能的原因吗?
unsigned long input_size = 1024*1024*1024*3;
unsigned int *h_data = (unsigned int *)malloc(input_size*sizeof(unsigned int));
答案 0 :(得分:2)
使用free
命令查看您有多少可用内存。它还将显示您有多少可用交换空间。
服务器可能配置为具有13GB的内存,但是可以肯定的是,其他事物(如操作系统)正在将内存用于其他事物,并且并非所有13GB都可用于您的应用程序。
您是否希望使用交换空间能够分配比实际可用空间更多的内存?