Я использую сервер Linux, который имеет 128 ГБ памяти и 24 ядра. Я использую top, чтобы увидеть, сколько он используется. Его вывод вставляется в конце поста. Вот два вопроса:
(1) Я вижу, что каждый из запущенных процессов занимает очень маленький процент памяти (% MEM не более 0,2%, а чаще всего всего 0,0%), но как общая память почти используется, как в четвертой строке вывода ( "Mem: всего 130766620k, использовано 130161072k, свободно 605548k, буферы 919300k")? Суммарный процент использования памяти во всех процессах вряд ли достигнет почти 100%, не так ли?
(2) как понять среднее значение нагрузки в первой строке («среднее значение нагрузки: 14,04, 14,02, 14,00»)?
Спасибо и всего наилучшего!
Редактировать:
Спасибо!
Мне также очень нравится слышать некоторые грубые цифры, основанные на проценте используемой памяти, чтобы определить, сильно ли загружен сервер, поскольку однажды я стал тем, кто заполнил сервер, не понимая текущей нагрузки.
Считается ли своп почти таким же, как память? Например, когда объем памяти и раздел подкачки почти одинаковы, если объем памяти почти исчерпан, но подкачка по-прежнему в основном свободна, могу ли я просто просмотреть ее, как если бы использованный процент памяти + раздел подкачки все еще не был высоким, и запустить другой новый процессы?
Как вы оцениваете использование процессора или памяти (или памяти + подкачки) вместе? Вы начинаете беспокоиться, если кто-то из них достигает слишком высоко или оба?
Выход топ :
$ top
вверх - 12:45:33 до 19 дней, 23:11, 18 пользователей, средняя загрузка: 14.04, 14.02, 14.00 Задачи: всего 484, 12 запущенных, 472 спящих, 0 остановленных, 0 зомби ЦП: 36,7% сша, 19,7% sy, 0,0% ni, 43,6% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st Память: всего 130766620k, использовано 130161072k, свободно 605548k, буферы 919300k Обмен: всего 63111312 КБ, использовано 500556 КБ, 62610756 КБ свободно, кэшировано 124437752 КБ PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + КОМАНДА 6529 Санчес 18 -2 1075 м 219 м 13 м S 100 0,2 13760: 23 MATLAB 13210 Тимоти 18 -2 48336 37 м 1216 R 100 0,0 3: 56,75 абсурд 13888 Тимоти 18 -2 48336 37 м 1204 R 100 0,0 2: 04,89 абсурд 14542 Тимоти 18 -2 48336 37 м 1196 R 100 0,0 1: 08,34 абсурд 14544 тимоти 18 -2 2888 2076 400 R 100 0,0 1: 06,1 6183 Санчес 18 -2 1133м 195м 13м S 100 0,2 13676: 04 MATLAB 6795 Санчес 18 -2 1079м 210м 13м S 100 0,2 13734: 26 MATLAB 10178 Тимофей 18 -2 48336 37 м 1204 R 100 0,0 11: 33,93 абсурд 12438 Тимофей 18 -2 48336 37 м 1216 R 100 0,0 5: 38,17 абсурд 13661 Тимофей 18 -2 48336 37 м 1216 R 100 0,0 2: 44,13 абсурд 14098 Тимофею 18 -2 48336 37 м 1204 R 100 0,0 1: 58,31 абсурд 14335 Тимоти 18 -2 48336 37 м 1196 R 100 0,0 1: 08,93 абсурд 14765 Тимоти 18 -2 48336 37 м 1196 R 99 0,0 0: 32,57 абсурд 13445 Тимофей 18 -2 48336 37 м 1216 R 99 0,0 3: 01,37 абсурд 28990 корень 20 0 0 0 0 S 2 0,0 65: 50,21 pdflush 12141 тим 18 -2 19380 1660 1024 R 1 0,0 0: 04,04 верх 1240 корень 15 -5 0 0 0 S 0 0.0 16: 07.11 kjournald 9019 root 20 0 296m 4460 2616 S 0 0,0 82: 19,51 kdm_greet 1 корень 20 0 4028 728 592 S 0 0,0 0: 03,11 init 2 root 15 -5 0 0 0 S 0 0.0 0: 00.00 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0: 01.01 миграция / 0 4 корень 15 -5 0 0 0 S 0 0,0 0: 08,13 ksoftirqd / 0 5 root RT -5 0 0 0 S 0 0.0 0: 00.00 сторожевой таймер / 0 6 корень RT -5 0 0 0 S 0 0,0 17: 27,31 миграция / 1 7 корень 15 -5 0 0 0 S 0 0,0 0: 01,21 ksoftirqd / 1 8 root RT -5 0 0 0 S 0 0.0 0: 00.00 сторожевой таймер / 1 9 root RT -5 0 0 0 S 0 0.0 10: 02.56 миграция / 2 10 корень 15 -5 0 0 0 S 0 0,0 0: 00,34 ksoftirqd / 2 11 root RT -5 0 0 0 S 0 0.0 0: 00.00 сторожевой таймер / 2 12 корень RT -5 0 0 0 S 0 0,0 4: 29,53 миграция / 3 13 корень 15 -5 0 0 0 S 0 0,0 0: 00,34 ksoftirqd / 3
Ответы:
Чтобы увидеть, сколько памяти вы сейчас используете, запустите
free -m
. Это обеспечит вывод как:Значение 'used' в верхней строке (1923) почти всегда будет почти соответствовать значению mem в верхней строке (2012). Поскольку Linux любит использовать любую свободную память для кэширования дисковых блоков (515).
Ключевой показатель, используемый для просмотра, - это используемое значение строки буферов / кэша (1316). Это то место, которое ваши приложения используют в настоящее время. Для лучшей производительности это число должно быть меньше вашей общей (2012) памяти. Чтобы предотвратить ошибки нехватки памяти, она должна быть меньше, чем общая память (2012) и пространство подкачки (3153).
Если вы хотите быстро увидеть, сколько свободной памяти, посмотрите на значение свободной строки буфера / кэша (695). Это общий объем памяти (2012) - фактически использованный (1316). (2012 - 1316 = 696, а не 695, это будет просто проблема округления)
Эта статья о средней загрузке использует хорошую аналогию с трафиком и является лучшей из тех, которые я нашел на данный момент: Понимание загрузки процессора Linux - когда вам следует беспокоиться? , В вашем случае, как указали люди:
Таким образом, при средней загрузке 14,00 и 24 ядра ваш сервер далеко не перегружен.
источник
Unix-подобные системы, в том числе Linux, предназначены для максимально эффективного использования доступной оперативной памяти. В общих чертах, есть 3 состояния, в которых каждый МБ ОЗУ может находиться:
3-е состояние используется только как пустое место и предназначено для переназначения при необходимости, т. Е. Ваша общая доступная память для программ действительно свободна + UsedforBuffers. Таким образом, вы действительно не увидите выделенное для буфера пространство, отображаемое как назначенное для какого-либо конкретного процесса.
Ваш вопрос о средней нагрузке немного интереснее, так как его легко можно неправильно истолковать. Для полной истории см. Эту статью linuxjournal . Лучшее суммирование - прямая цитата из статьи,
Это означает, что вы можете думать о своей средней загрузке как (число запущенных процессов) + (число процессов, ожидающих ввода-вывода). Принимая во внимание, что в любой момент времени вы можете иметь число выполняемых процессов $ CORE, я бы сказал, что среднее значение загрузки в 14 довольно низкое.
источник
Со
sar
страницы руководства :Со
uptime
страницы руководства :источник
top
практически бесполезной, обычно сохраняя большую часть памяти машины, выделяемой для различных целей, когда это не требуется пользовательскому процессу.источник
Средняя нагрузка - отличная вещь. Это позволяет понять, что происходит за пределами 100% использования, в основном: http://en.wikipedia.org/wiki/Load_%28computing%29
источник