+ Responder ao Tópico



  1. #1

    Padrão Monitorando memoria utilizada

    Pessoal,

    Procurei alguma informação consistente sobre isso no forum mas nao encontrei...

    Ambiente :
    - Linux RH 7.3
    - Servidor com 1GB de memoria
    - Java rodando..
    - Banco de dados rodando... (configurado e realmente utilizando 500MB de memoria)

    Situação:
    Preciso conseguir identificar qto realmente esta cada programa utilizando de memoria, o "ps" possui tantas colunas sobre memoria e nenhuma explicação sobre oq é realmente cada uma. E baseado em algumas configurações que fiz e que sei realmente o qto certo programa esta utilizando de memoria não estou dando muito crédito para o "top", coluna %MEM, SHARE, RSS, SIZE, DSIZE e /proc/meminfo

    Agora estou utilizando o comando "ps v -eH | sort -nk 7" para identificar os processos que estao alocando mais memoria, baseando na coluna DRS (Data Resident Size) que bate exatamente com qto estou utilizando no Banco de Dados. Porem atavés desta coluna descobri que o Java executando uma classe de 10KB o desgraçado esta me ocupando 200MB de memoria, sei que o JVM é pesado mesmo, mas ao ponto de alocar tudo isso? (se esta coluna estiver correta.. )

    Bem.. em outras palavras preciso de um comando para verificar qto um programa esta alocando de memoria realmente... e um comando confiavel! não me fale para ver com "top" + M pq isso na minha opniao tá furado.. até que me provem o contrario..

    César

  2. #2
    fricardo
    Visitante

    Padrão Monitorando memoria utilizada

    Já tentou usar o comando vmstat? Dê uma olhada na man page para ver o q os campos de saída querem dizer ...

    fricardo

  3. #3

    Padrão Monitorando memoria utilizada

    É só usar no seu konsole o comando "top" sem as aspas

  4. #4

    Padrão Monitorando memoria utilizada

    Ricardo,
    O vmstat eu já havia olhado ele e como ele não detalha por processo não ajuda muito...

    Pedro, como eu disse antes... o top não esta ajudando.. se vc ler oq escrevi , as colunas que tem disponivel no top são justamente as que não estou confiando pois não batem com a realidade (considerando o processo que utilizo como base de comparação)
    ah.. outro detalhe, tudo isso é via console, não tenho nenhum ambiente visual inicializado.

  5. #5
    Visitante

    Padrão Monitorando memoria utilizada

    cara o comando top não tem erro nenhum, ele realmente envia a inforamação do que está acontecendo com o cpu.

    O que você deveria ter feito é, man top, assim saberia que você pode desviar a saida dela para um arquivo qq ou para uma variável.

    tente a linha:

    top -b -n 1

    caso vc ache q o top demora a se adaptar, o q é verdade, use:

    top -b -n 5

    jogue para um arquivo ou para uma variável e usando o awk faça um script q possa t dar maiores inforamações.

    e vc pode definir tanto na configuração do linux quando na configuração do java o máximo q um executável pode rodar

  6. #6

    Padrão Monitorando memoria utilizada

    O Problema não é que o cara não sabe usar o top eu acho que ele não acredita nele, pois como ele disse olhando nos processos da uma coisa diferente, entao acho que primeiro ele tem de confiar no top depois começar a usar.

    Falows

  7. #7

    Padrão Monitorando memoria utilizada

    vcs não estao entendendo...

    eu nao quero utilizar o top pq os campos que ele tem disponivel para memoria nao bate com processo que utilizo como base de comparação
    (eu sei que da para selecionar outros compos com a opcao f)

    Alem que tem muita informação que não esta disponivel no top, e no ps tem tudo e mais um pouco.
    tanto que encontrei a coluna DRS, que pode ser vista da seguinte maneira
    ps vax
    ps v -eH
    ps -eo "pid drs args"

    ordene por ela com o sort para facilitar a visualização...


    Vou tentar explicar sobre esse processo que utilizo de base :
    Configurei o banco de dados (informix) para trabalhar com 500MB alocado e residente (o linux não pode fazer swap desta memoria)
    Atraves de comandos do BD sei que ele está utilizando 500MB.
    No top , nenhuma coluna exibe 500MB, sempre menos. Como sei que o banco trabalha com threads e memoria compartilhada entre eles desconfio que isso seja o motivo , assim como deve acontecer com o java (que tb trabalha com threads e memoria compartilhada no JVM) .
    Na coluna DRS (atraves do ps) bate exatamente(500MB), porem em um processo que roda java (uma classe de 10kb) ele acusa que tem alocado mais 200MB (que acredito ser do JVM)

    enfim, se tiver alguem que tenha entendido oq quero dizer, tiver testado os comandos e visto no ambiente a diferença
    que ocorre entre as colunas demonstrada no top e no ps (DRS) , se pode confirmar ou no minimo indicar alguma documentação que descreva sobre todas essas colunas , não me fale para procurar no man que la não fala nada..