Я установил Ubuntu 14.10 на сервере. Сервер основная задача выполняет установку MongoDB наряду с несколькими приложениями NodeJS. Приложения NodeJS будут работать непрерывно и примут запросы снаружи.
Время от времени большие запросы прибудут в то, чтобы заставлять некоторое приложение NodeJS использовать много RAM в течение короткого срока. Я пытался контролировать это, но не уверено, что сделать из моих результатов.
До сих пор я использовал две команды для получения понимания в Использовании оперативной памяти. Это
free -m
и
sudo htop
Первые шоу это:
total used free shared buffers cached
Mem: 3442 3158 283 6 111 1203
-/+ buffers/cache: 1842 1599
Swap: 0 0 0
Когда я смотрю на это, я сказал бы, что приблизительно 280 МБ RAM свободны. Который не походит на много.
htop говорит мне следующее:
1 [||| 0.8%] Tasks: 61, 129 thr; 2 running
2 [||| 1.0%] Load average: 1.16 1.15 0.93
Mem[|||||||||||||||||||||||||||||||||||||1979/3442MB] Uptime: 29 days, 00:23:31
Swp[ 0/0MB]
Я не делаю действительно теперь, как считать это. Кто-либо может помочь мне здесь?
Я предполагаю, что мой вопрос в конце сводится к ним:
TL; DR: Вы не должны волноваться пока -/+ buffers/cache
, строка показывает достаточно свободной памяти. Если это показывает низкую свободную память, и Вы непрерывно swap
плетеная корзинка к диску тогда, Вы должны быть заинтересованы.
Объяснение:
Вы хороши со своим текущим сценарием Использования оперативной памяти. Позволяет берут вывод free -m
для разрушения его:
Все столбцы free -m
сам объяснительные. Важная вещь отметить, что Вы не должны быть предупреждены, когда использование памяти высоко, не видя объема памяти, кэшируемого и буферизированного.
От вывода, Вы использовали 3 158 МБ своей RAM на 3 442 МБ, простое вычитание сказало бы, что у Вас есть только 283 МБ, свободные быть выделенными новым программам. Это не правильно, необходимо посмотреть cached
и buffers
, столбцы также, cached
покажут монтирование дисковых данных, кэшируемых RAM для более быстрого доступа к наиболее часто используемым файлам и buffered
шоу объем данных, который будет записан в диск.
, Как Вы знаете, доступ к диску намного медленнее, что RAM, так для улучшения производительности это - хорошая вещь хранить некоторые дисковые данные в RAM. У Вас есть 1 203 МБ кэшируемых и 111 МБ буферизированных данных. Это - хорошая вещь, что Ваша память кэширует эту сумму, просто не сохраняя эту сумму RAM неактивной. Это улучшит Вашу производительность значительно.
Для получения фактической суммы RAM, которая используется без кэширования/буферизации посмотрите -/+ buffers/cache:
строка. Этот результат показывают, вычитая, кэшировал/буферизовал сумму. Поскольку Вы видите, что у Вас есть свободных 1 599 МБ, таким образом, все кажется хорошо в этом состоянии. Если Вы видите, что значения в этой строке являются низкими, то Вы должны быть заинтересованы и смотреть на Использование оперативной памяти.
Также примечание, что, когда новая программа должна быть запущена и нет достаточной памяти после кэширования, более старые кэши, будет очищено автоматически для создания пространства для новой программы. Так, пока фактическое использование памяти не высоко, и Ваш непрерывно подкачиваются к диску, это - хорошая вещь иметь значительное количество в кэше, поскольку это "использует" Вашу память эффективно.
heemayl уже покрыл хорошую часть информации о фактической доступной памяти. Мое сообщение здесь является просто остротой пары, которую можно добавить к Вашему .bashrc
как псевдоним для использования в качестве быстрого обзора фактического использования:
free -h | awk '/free/ {getline; x=$2; getline; print "Used "$3 " Out of " x }'
И демонстрационный вывод:
$ free -h | awk '/free/ {getline; x=$2; getline; print "Used "$3 " Out of " x }'
Used 1.2G Out of 5.6G
, Если Вы заинтересовали большим количеством всестороннего расследования памяти, используйте cat /proc/meminfo
, который перечисляет всех из информации, и , этот блог поможет Вам понять, как free
команда вычисляет материал из того файла.