🕐 Как проверить использование Swap для каждого процесса в Linux

by itisgood

В этом руководстве показано, как проверить использование подкачки каждого процесса, и ответить на вопрос «Как узнать, какой процесс будет занимать наибольшее пространство подкачки?»

Для всех ядер

Использование swap отображается в виде столбцов «Swap» в /proc/[PID]/smaps.

Это указывает на объем подкачки памяти для каждого диапазона памяти, поэтому сумма всех этих значений показывает общее использование процесса подкачки.

Например, простой скрипт, приведенный ниже, рассчитывает общее использование процесса подкачки с PID = 1027:

# echo $((`grep Swap /proc/1027/smaps | awk '{ print $2; }' | tr '\n' '+'`0))

Для ядер UEK2 (2.6.39) или новее

Проще проверить использование подкачки определенного процесса, просто проверив столбец «VmSwap» в /proc/[PID]/status.

Это указывает на общее использование пространства подкачки в качестве одного значения.

Этот столбец не существует в /proc/[PID]/status с ядром <2.6.39.

Например, для сортировки процессов с использованием подкачки по большому, запустите скрипт ниже:

# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | more

Значение, которое показано / рассчитано в этом руководстве не указывает точный размер используемого пространства подкачки, а просто указывает приблизительное значение.

Некоторые (например, разделяемая библиотека) могут быть дважды учтены, а другие (например, кэш подкачки) на самом деле не поменяны местами.

 

You may also like

Leave a Comment