Я пытаюсь сделать yum update
и получаем "MemoryError". Сервер (коробка OpenVZ) имеет 2 ГБ ОЗУ и сервер Percona MySQL, работающий с настроенным буфером InnoDB 1 ГБ. ОС - CentOS 6.5, ядро 2.6.32-openvz-042stab088.4-amd64.
free -m
вывод:
total used free shared buffers cached
Mem: 2048 728 1319 0 0 21
-/+ buffers/cache: 706 1341
Swap: 2048 0 2048
На главном компьютере конфигурация памяти коробки:
vzctl set 101 --physpages 0:2G --swappages 0:2G --kmemsize unlimited --privvmpages 2000M:2G --vmguarpages 2000M:2G --oomguarpages 2G --save
Когда я останавливаю MySQL, yum update
работает отлично. Зачем MySQL делать yum update
потерпеть неудачу, если остается более 1 ГБ ОЗУ?
Полный вывод ошибок:
yum update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.mel.bkb.net.au
* contrib: mirror.mel.bkb.net.au
* epel: mirror.overthewire.com.au
* extras: mirror.mel.bkb.net.au
* updates: mirror.optus.net
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 285, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 136, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 434, in doCommands
self._getTs(needTsRemove)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs
self._getTsInfo(remove_only)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 110, in _getTsInfo
pkgSack = self.pkgSack
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 887, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 683, in _getSacks
self.plugins.run('exclude')
File "/usr/lib/python2.6/site-packages/yum/plugins.py", line 184, in run
func(conduitcls(self, self.base, conf, **kwargs))
File "/usr/lib/yum-plugins/priorities.py", line 129, in exclude_hook
repopkgs_archless = _pkglist_to_dict(conduit.getPackages(repo), repo.priority)
File "/usr/lib/python2.6/site-packages/yum/plugins.py", line 592, in getPackages
return self._base.pkgSack.returnPackages(arg)
File "/usr/lib/python2.6/site-packages/yum/packageSack.py", line 499, in returnPackages
ignore_case=ignore_case)
File "/usr/lib/python2.6/site-packages/yum/sqlitesack.py", line 1646, in returnPackages
pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
File "/usr/lib/python2.6/site-packages/yum/sqlitesack.py", line 1610, in _buildPkgObjList
po = self._packageByKeyData(repo, x['pkgKey'], x)
File "/usr/lib/python2.6/site-packages/yum/sqlitesack.py", line 754, in _packageByKeyData
po = self.pc(repo, data)
File "/usr/lib/python2.6/site-packages/yum/sqlitesack.py", line 187, in __init__
self._loadedfiles = False
MemoryError
Аналогичный вопрос Вот но бесполезно, так как у меня намного больше оперативной памяти.
Сначала я рекомендую вам включить модель памяти vSwap, потому что она проще и надежнее, чем старая система в стиле UBC. С его помощью вы можете заменить это vzctl set 101 --physpages 0:2G --swappages 0:2G --kmemsize unlimited --privvmpages 2000M:2G --vmguarpages 2000M:2G --oomguarpages 2G --save
по vzctl set 101 --physpages 2G --swappages 2G --save
После этого, пожалуйста, покажите мне результат этой команды: cat /proc/user_beancounters
Эта проблема выглядит как проблема с памятью, но связана с дополнительными ограничениями памяти, которые не могут отображаться по свободному или верхнему уровню (только с cat / proc / user_beancounters).