Сервер CentOS. Что означает то, когда общая используемая RAM не равняется сумме RES?

Я изменил свой командный файл для сходства следующего:

#! /bin/bash

echo 'connecting...'
/etc/netlock/cvc -c connection:account:password

read -p "Press a key to disconnect."

echo 'disconnecting...'
/etc/netlock/cvc -d
2
задан 25 June 2011 в 13:45
2 ответа

"Используемое" поле в top отражает общую сумму используемой RAM, включая это процессами, буферами файлов и кэшем. Но число RES показывает только сумму RAM, используемой процессом, эксклюзивным из буферов файлов.

Для реального наблюдения, сколько RAM используется без буферов используйте free команда и взгляд на -/+ buffers/cache строка. Число в "используемом" столбце показывает, сколько RAM на самом деле используется процессами.

Вот пример:

$ free
             total       used       free     shared    buffers     cached
Mem:       2057196    1812352     244844          0     344768     833660
-/+ buffers/cache:     633924    1423272
Swap:      2097148          0    2097148

Этот вывод показывает, что система имеет 2 ГБ RAM, которых 1.8 ГБ используется. Однако 344 МБ из этого используются буферами, и 833 МБ используется кэшем. Вычитание, которое оставляет только 633 МБ, используемые процессами и ядром.

Работайте free команда прежде и после запуска Вашего приложения Java для получения лучшее представление о том, что продолжается.

Править: удаленные ссылки на память ядра, о которой не сообщают эти инструменты.

4
ответ дан 3 December 2019 в 09:44

Не позволяйте кэшу, и подкачка обнуляет, волнуют Вас, так как это - хост VPS.

Кэширование ввода-вывода и свопинг, вероятно, обрабатываются базовым хостом виртуализации, и они, вероятно, решили, что свопинг и кэширование i/o в гостях, с их установкой, налагают потерю производительности или что-то, которое могло бы быть хорошей вещью, так как это означает, что Вы добираетесь, 2 ГБ РАБОТАЛИ только за Вашими процессами. Обычно инженеры поставщика услуг хостинга знают то, что они делают.

Это может также быть причиной, почему вещи не вполне складывают с тех пор, из-за способа, которым Ваш VPS заключен в тюрьму (если они используют что-то как OpenVZ), Вы не могли бы видеть все вещи, которые израсходовали Вашу RAM в вершине, но требуются, чтобы Ваши процессы выполнили и таким образом считаются против Вашей квоты.

Также Вы не получаете целое изображение, если все, с чем Вы выдерживаете сравнение, является Вашим одним процессом Java, так как Ваше приложение могло бы запустить дополнительные процессы, даже набор их, которые складывают. Столько памяти, не составляемой, tho, могла легко быть утечкой памяти приложения Java. Это порождает процессы и выделяет RAM, не возвращая их назад ОС правильно по всей вероятности.

Ваше приложение запускает или использует какой-либо собственный процесс? Это порождает другие процессы или потоки?

1
ответ дан 3 December 2019 в 09:44

Теги

Похожие вопросы