Melhor maneira de saber qual aplicativo / processo está usando swap?

1

Eu tenho 16G de RAM e 8G de partição de swap. Estou executando o Unity 17.04. Eu tenho um problema onde meu buff/cache vai para 11M, e meu swap used vai para cerca de 3500. Anteriormente eu quase nunca usei nenhum espaço de troca, e eu nunca monitorei o buff / cache.

Acredito que seja um aplicativo com vazamento de memória, mas posso estar errado.

pergunta simples. Existe alguma maneira fácil de determinar com o aplicativo / processo é, ou tem sido, usando swap?

    
por heynnema 28.05.2017 / 00:06

1 resposta

3

Você pode descobrir o quanto o processo especial usa a partição swap por este comando:

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

E você pode encontrar PID com este comando:

ps -A | grep "Application_name"

Mas se você quiser descobrir quais processos estão usando a partição swap, você pode usar este script:

#!/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

Em seguida, você pode encontrar o nome do aplicativo a partir do PID retornado pelo script.

Atualizar : Eu mudei este script para criar um arquivo de log a cada 10 segundos (você pode alterar o tempo) e nesse arquivo você pode ver muitos processos a partir do momento que você executa este script até agora:

#!/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

E você pode definir esse script para ser executado em startup para que ele crie log todas as vezes.

    
por Ali Razmdideh 28.05.2017 / 00:33