У меня есть Parallels VPS с 1 ГБ оперативной памяти. Хорошо, хостер говорит, что у него 1 ГБ, но я не могу проверить его как «свободный», и другие похожие команды возвращают 13 ГБ, что, как я полагаю, является размером физической памяти.
Когда я выполняю команду top, я вижу следующий вывод:
Как видите, mysql - это единственный процесс, который использует значительный объем оперативной памяти (143 МБ). И общий размер используемой оперативной памяти составляет около 160 МБ. Проблема в том, что я не могу использовать больше памяти: если я расширяю некоторые настройки памяти (например, для mysql), я получаю «недостаточно памяти», «не могу выделить память» и т. Д.
У меня две догадки:
Есть ли другие идеи, как я могу использовать больше памяти для mysql (я хотел использовать около 80% от 1 ГБ)?
У вас есть виртуальный сервер Virtuozzo (или OpenVZ), к которому не применяются обычные правила распределения памяти. Предполагая, что ваш хостинг-провайдер не лжет вам, у вас «есть» 1 ГБ ОЗУ, поскольку «гипервизор» OpenVZ позволит вам выделить 1 ГБ памяти или (что более вероятно, исходя из вашего описания событий) 1 ГБ виртуальный объем памяти.
Тот факт, что вы не видите никакого свопа вверху, не означает, что все ваши данные находятся в физической памяти - правила другие (очень, очень разные) для OpenVZ.
Если вы хотите использовать больше памяти для MySQL, вам придется уменьшить объем памяти, который используют другие устройства вашей виртуальной машины. В вашем главном продукте нет очевидных соперников, но если вы отсортируете его по использованию памяти, вы получите гораздо лучшее представление о том, что является лишним (и даст вам максимальную отдачу от вложенных средств).
Кроме того, я бы рекомендовал уйти от вашего текущего хостинг-провайдера - хотя OpenVZ имеет свое место, его нет на рынке хостинга VPS. Вы, вероятно, выбрали их, потому что они были дешевым поставщиком, но вы понимаете, почему они дешевые - OpenVZ - это очень ограниченная платформа со своим довольно своеобразным набором причуд. Вам будет намного лучше с поставщиком "настоящих" VPS (кто-то, кто использует Xen, KVM, VMWare и т. Д.).
Я также обнаружил, что есть способ уменьшить размер виртуальной памяти, ограничив размер стека по умолчанию. я бы порекомендовал этот статья и этот сообщение на форуме.
В дополнение к тому, что уже было сказано, вы можете проверить / proc / user_beancounters, который содержит информацию о потреблении ресурсов вашим VPS.