У меня есть VPS с VPSnoc, и он ведет себя странно. Когда я суммирую столбец% MEM из «ps faux», я получаю около 23%, но когда я бегу бесплатно, я получаю 419580/524288 = 80% использовано. Это много оперативной памяти, которая будет использоваться непроцессами, намного больше, чем на любом другом сервере, который я администрирую, или даже на VPS моего друга с тем же провайдером.
Я уже пару раз отправлял электронное письмо в службу поддержки VPSnoc, но они, кажется, даже не могут понять, что это очень странная вещь, которая происходит в системе.
Я бы не стал жаловаться, за исключением того, что у меня иногда возникают ошибки памяти (например, когда я пытаюсь настроить рабочих apache2 на> 7 потоков или> 8 одновременных подключений), а это просто неприятно.
Есть ли способ, которым это может быть проблема конфигурации, которую я мог бы исправить / обойти, или каким-либо образом это могло быть нормально? Я теряю надежду, что VPSnoc даже признает проблему.
Они используют OpenVZ, если это помогает.
Изменить: я изменил некоторые настройки MySQL, и это сделало то, что ps сообщает об использовании ОЗУ, увеличилось с 7% до 4%, но объем использования ОЗУ, сообщаемый бесплатным, упал примерно на 20%. Я больше не получаю ошибки нехватки памяти, но все же хотел бы лучше понимать отчеты. Текущий вывод команды free -m:
total used free shared buffers cached
Mem: 512 320 191 0 0 0
-/+ buffers/cache: 320 191
Swap: 0 0 0
Теперь я лучше понимаю различия в буферах / кешах, которые могут существовать, но они не отображаются в этом выводе (или когда-либо показывались в этом поле), и это не должно вызывать фактических ошибок нехватки памяти.
Видеть http://www.linuxatemyram.com/ для объяснения того, что бесплатно отображает.
У вас включен своп?
(Edit) и, пожалуйста, опубликуйте полную версию бесплатно.
После тонны отладки и борьбы с моим хостом я почти уверен, что это просто ошибка либо с OpenVZ, либо с тем, как они его используют. Кажется, что% MEM в ps показывает% фактической физической RAM, тогда как free показывает мой объем выделенной мне VPS RAM, которая у меня свободна.
Я использую этот скрипт для получения дополнительной информации об использовании памяти: http://www.pixelbeat.org/scripts/ps_mem.py
Когда ты бежишь free
, вывод столбца «used» включает буферы и кеши, что нормально для Linux-бокса. В Linux есть один из самых продвинутых менеджеров памяти, поэтому он пытается использовать преимущества «свободной» памяти, чтобы помочь более медленным частям вашей системы, таким как ваши диски. Проверьте этот вывод:
# free
total used free shared buffers cached
Mem: 1048576 924824 123752 0 102444 481004
-/+ buffers/cache: 341376 707200
Swap: 2096472 0 2096472
Отсюда похоже, что система потребляет 88% памяти, но около 52% из них - это кеш ОС, а еще 11% - буферы. К этому нужно привыкнуть, но Linux старается лучше всего использовать «свободную» память.