Кому-нибудь повезло, что mongodb работает над openvz?
Искал несколько советов, хитростей, хаков, чтобы избавиться от нехватки памяти
Я использую centos в медиа-храме, и на серверах очень быстро заканчивается память
Я знаю, что запускать mongo на openvz не рекомендуется, но мне интересно, знает ли кто, как заставить его работать
Спасибо
Одна из ключевых проблем OpenVZ с точки зрения гостевой ОС заключается в том, что хост-ОС может чрезмерно использовать свою оперативную память, что позволяет виртуальной машине временно использовать больше гарантированного объема. Это проблема для процессов, которые используют много оперативной памяти и предполагают, что после ее выделения они могут просто сохранить ее в целях кэширования.
IIRC способ, которым Mongo использует файлы и память, не позволяет ограничить объем памяти, который он может попытаться использовать. Если он сочтет нужным, он попытается взять всю доступную память, поменьше для остальной части ОС, и в OpenVZ это будет максимальная выделенная сумма, а не ваша гарантированная сумма.
Я видел разговоры о способе его ограничения в Windows 2008r2 (посмотреть здесь), но это не поможет вам с CentOS, работающим под OpenVZ. Один из вариантов, который вы можете попробовать, - установить максимальное выделение ОЗУ виртуальным машинам таким же, как их гарантированное выделение (или перейти к решению виртуализации, которое не выполняет избыточную фиксацию всей памяти) - это должно препятствовать Mongo и ядру создавать нестабильный OOM. ситуация.
Virtuozzo / OpenVZ - фантастическая система, позволяющая выжать максимум производительности из вашего оборудования. Однако компромисс состоит в том, что он требует от вас большего количества настроек, чем системы гипервизора. Самое главное, привыкните к просмотру "счетчиков пользовательских компонентов", чтобы знать, когда вам нужно что-то подправить.
Лучший способ начать - создать виртуальную машину «без ограничений», а затем ограничить только дисковое пространство и привилегии. Это предотвратит некоторые из глупых проблем, таких как исчерпание сетевых буферов или гарантированных страниц OOM. Такая установка должна удовлетворять 99% ваших потребностей.
Просто убедитесь, что у вашего реального хоста есть приличный объем свопа «на всякий случай», и я не могу не подчеркнуть, насколько важно настроить хорошую систему мониторинга.