ipython 内核在 16gb linux 盒子中最大容量为 3gb?

ipython kernel maxes out on 3gb in a 16gb linux box?

一旦我的 ipython 内核在 linux 16GB 机器上达到 3Gb,我就一直得到 MemoryError: cannot allocate memory for array。你能告诉我我错过了什么吗?

顶部:

KiB Mem:  16599788 total,  5128780 used, 11471008 free,   114840 buffers

限制:

ihadanny@ubuntu:~$ ulimit
unlimited

版本:

ihadanny@ubuntu:~$ ipython --version
4.0.1
ihadanny@ubuntu:~$ python --version
Python 2.7.6
ihadanny@ubuntu:~$ cat /etc/*rel*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

违规过程:

ihadanny@ubuntu:~$ cat /proc/2744/status | grep Vm
VmPeak:  2975748 kB
VmSize:  2817768 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:   2864780 kB
VmRSS:   2688496 kB
VmData:  2772776 kB
VmStk:       144 kB
VmExe:      2704 kB
VmLib:     37560 kB
VmPTE:      5436 kB
VmSwap:        0 kB

问题是您在 64 位系统上安装了 Ubuntu 的 32 位版本。 32 位程序无法寻址大于 4GB 的内存。

因此,假设您正在使用 Ubuntu 服务器,您需要 re-download 64 位版本,here. Currently, Ubuntu Server only supports 64bit. If you're using Ubuntu Desktop, go here 并下载“64 位 -- 推荐”版本。

安装正确版本的 Ubuntu 后,将默认安装 64 位 Python。