yum:内存分配(12 字节)返回 NULL

yum:内存分配(12 字节)返回 NULL

我正在尝试在 CentOS 5.6(128 MB RAM)上设置我的第一个 VPS,并按照网上找到的一些教程进行操作,但遇到了一个无法解决的问题。VPS 是从托管商那里购买的,所以我无法给自己增加内存 :)

跑步yum -y update让我

[root@vps ~]# yum -y update
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.5-58.el5_6.4 set to be updated
---> Package glibc-common.i386 0:2.5-58.el5_6.4 set to be updated
---> Package nscd.i386 0:2.5-58.el5_6.4 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================
 Package                                       Arch                                  Version                                            Repository                                Size
=======================================================================================================================================================================================
Updating:
 glibc                                         i686                                  2.5-58.el5_6.4                                     updates                                  5.3 M
 glibc-common                                  i386                                  2.5-58.el5_6.4                                     updates                                   16 M
 nscd                                          i386                                  2.5-58.el5_6.4                                     updates                                  167 k

Transaction Summary
=======================================================================================================================================================================================
Install       0 Package(s)
Upgrade       3 Package(s)

Total size: 22 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
memory alloc (12 bytes) returned NULL.

我发现这可能与内存不足有关,但事实似乎并非如此:

[root@vps ~]# cat /proc/meminfo
MemTotal:       131072 kB
MemFree:        110356 kB

[root@vps ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           128         20        107          0          0          0
-/+ buffers/cache:         20        107
Swap:            0          0          0

尝试了 TiZon 的建议后:

[root@vps ~]# dd if=/dev/zero of=/swapfile bs=1024 count=65536
65536+0 records in
65536+0 records out
67108864 bytes (67 MB) copied, 0.222831 seconds, 301 MB/s
[root@vps ~]# mkswap /swapfile
Setting up swapspace version 1, size = 67104 kB
[root@vps ~]# swapon /swapfile
swapon: /swapfile: Operation not permitted

答案1

说到内存,Yum 简直就是饥不择食。你需要的内存肯定比这个多。这也是在从第三方租用虚拟机时,确保获得可突发内存的原因之一。

我已经有一段时间没有使用 openvz 了,但我认为你需要增加privvmpages内存参数(例如,如果你的 vz 是 id 100,你可以从主机(不是 vz):

vzctl set 100 --privvmpages 512m:1024m --save

然后您可以通过查看计数器/proc/user_beancounters在主机上。

更新:
由于您是从第三方获得此信息的,因此您需要调查可爆破内存或更多内存。由于这是租用的 VZ,因此他们通常不会给你交换空间——因此 128 是您一次可以分配的内存量的硬性限制。

答案2

对于 centOS(和 Yum)来说,128MB 不算多,但还是可以的。首先,你试过重启它吗?这会清除大量 RAM。如果这不管用,为什么不尝试创建交换文件呢?

这很简单,只需 3 个命令:

dd if=/dev/zero of=/swapfile bs=1024 count=65536
mkswap /swapfile
swapon /swapfile

交换文件的大小为 67108864b (1024*65536)。您可以随意将其增大,因为 64MB 并不够。

如果要在重启时安装它,请将其添加到/etc/fstab

/swapfile          swap            swap    defaults        0 0

答案3

你能试试吗

# ulimit -m unlimited 
# ulimit -v unlimited

然后再次重新运行 yum?

相关内容