Thank you for reading this post, don't forget to subscribe!
Для всех ядер
Использование swap отображается в виде столбцов «Swap» в /proc/[PID]/smaps.
Это указывает на объем подкачки памяти для каждого диапазона памяти, поэтому сумма всех этих значений показывает общее использование процесса подкачки.
Например, простой скрипт, приведенный ниже, рассчитывает общее использование процесса подкачки с PID = 1027:
1 |
# 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.
Например, для сортировки процессов с использованием подкачки по большому, запустите скрипт ниже:
1 |
# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | more |
Значение, которое показано / рассчитано в этом руководстве не указывает точный размер используемого пространства подкачки, а просто указывает приблизительное значение.
Некоторые (например, разделяемая библиотека) могут быть дважды учтены, а другие (например, кэш подкачки) на самом деле не поменяны местами.