Назад | Перейти на главную страницу

yum: выделенная память (12 байт) вернула NULL

Я пытаюсь настроить свой первый VPS на CentOS 5.6 (128 МБ ОЗУ) и следил за некоторыми учебниками, найденными в Интернете, но столкнулся с проблемой, которую не могу исправить. 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

128 МБ - это немного для CentOS (и Yum), но возможно. Прежде всего, вы его перезагружали? Это очистит много оперативной памяти. Если это не сработает, почему бы вам не попробовать сделать файл подкачки?

Это просто, требуется всего 3 команды:

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

Размер файла подкачки - 67108864b (1024 * 65536). Не стесняйтесь увеличивать его, так как 64 МБ не уедешь.

Если вы хотите установить его при перезагрузке, добавьте это в /etc/fstab

/swapfile          swap            swap    defaults        0 0

Когда дело доходит до памяти, Yum - жадное солнце оружия. Вам понадобится больше памяти, чем это. Это одна из причин, чтобы убедиться, что вы получаете стабильную оперативную память при аренде виртуальной машины у третьей стороны.

Прошло много времени с тех пор, как я использовал openvz, но я думаю, вам нужно увеличить privvmpages параметр памяти (т.е. если ваш vz имеет идентификатор 100, вы запускаете следующее из то хост-машина (не vz):

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

Затем вы можете убедиться, что он вступил в силу, посмотрев на счетчики, /proc/user_beancounters на хост-машине.

Обновить:
Поскольку вы получаете это от третьего лица, вам нужно изучить разрывной таран или больше памяти. Поскольку это арендованный VZ, они обычно не даст вам место подкачки - так что 128 - это жесткое ограничение на объем памяти, который вы можете выделить за раз.

не могли бы вы попробовать

# ulimit -m unlimited 
# ulimit -v unlimited

и снова запустить yum?