Лучший способ сказать, какое приложение/процесс использует подкачку?

Я имею 16G RAM, и 8G раздел подкачки. Я выполняю Единицу 17.04. У меня есть проблема где мой buff/cache переходит в 11M, и мой swap used переходит приблизительно к 3 500. Ранее я почти никогда не использовал области подкачки, и я никогда не контролировал любителя/кэш.

Я полагаю, что это - приложение с утечкой памяти, но я мог быть неправым.

Простой вопрос. Там какой-либо простой способ состоит в том, чтобы определить с приложением/процессом, или был, с помощью подкачки?

enter image description here

1
задан 28 May 2017 в 01:13

1 ответ

Вы можете узнать, сколько специальный процесс использует раздел подкачки с помощью этой команды:

cat /proc/"PID"/status | grep "^VmSwap"

И вы можете найти PID с помощью этой команды:

ps -A | grep "Application_name"

Но если вы хотите узнать, какие процессы используют раздел подкачки, вы можете использовать этот скрипт:

#!/bin/bash
for i in /proc/*/status ; do
    vmswap=$(cat $i | grep "^VmSwap")
    echo "$vmswap" | grep -qv ' 0 kB'
    if [ $? == 0 ] && [ "$vmswap" != "" ] ; then
        echo "$i : $vmswap"
    fi
done

Затем вы можете найти имя приложения по его PID, который возвращается скриптом.

Обновление : я изменил этот скрипт для создания файла журнала каждые 10 секунд (вы можете изменить время), и в этом файле вы можете увидеть множество процессов с момента запуска этого скрипта до настоящего времени: [ 119]

#!/bin/bash
counter=1
touch ~/swap_process_usage.log
while true ; do
    echo -e "************************************\nSwap's process in count $counter " >> ~/swap_process_usage.log
    for i in /proc/*/status ; do
        vmswap=$(cat $i | grep "^VmSwap")
        echo "$vmswap" | grep -qv ' 0 kB'
        if [ $? == 0 ] && [ "$vmswap" != "" ] ; then
            pid=$(echo "$i" | tr -d /proc/ | tr -d status)
            proc_name=$(ps -p $pid -o comm=)
            echo "$proc_name : $pid : $vmswap" >> ~/swap_process_usage.log
        fi
    done
    sleep 10s
    counter=$((counter+1))
done

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

4
ответ дан 3 December 2019 в 06:53

Другие вопросы по тегам:

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