Centos

yum: 記憶體分配(12 字節)返回 NULL

  • February 7, 2013

我正在嘗試在 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

說到記憶,百勝是一個飢餓的太陽。您將需要比這更多的記憶體。這是確保在從第三方租用 VM 時獲得可爆 ram 的原因之一。

我使用 openvz 已經有一段時間了,但我認為您需要增加privvmpages記憶體參數(即,如果您的 vz 是 id 100,您可以從主機(而不是 vz)執行以下命令

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

然後,您可以通過查看主機上的計數器來驗證它是否已生效。/proc/user_beancounters

更新:

由於您是從第 3 方獲得的,因此您需要查看可爆 ram或更多記憶體。由於這是一個租用的 VZ,它們通常不會給您交換空間——因此 128 是您一次可以分配的記憶體量的硬限制。

引用自:https://serverfault.com/questions/297616