Enquanto isso, eu escrevi meu próprio programa - audria - capaz de monitorar o uso de recursos de um ou mais processos, incluindo dados atuais / médios. Uso da CPU, uso de memória virtual, carga de IO e outras informações.
Estou procurando uma maneira de criar um perfil de um único processo, incluindo o tempo gasto para CPU, E / S, uso de memória ao longo do tempo e, opcionalmente, chamadas do sistema.
Eu já conheço o callgrind
oferecendo alguns recursos básicos de perfil, mas apenas com informações de depuração e sem a maioria das outras informações mencionadas.
Eu sei strace -c
fornecendo um resumo sobre todas as chamadas do sistema e seu tempo de CPU necessário.
Conheço várias ferramentas relacionadas a IOs, como (io)top
, iostat
, vmstat
, mas todas elas não têm estatísticas detalhadas sobre um único processo. Há também /proc/$PID/io
fornecendo algumas estatísticas de IO sobre um único processo, mas eu teria que lê-lo em intervalos fixos para coletar informações de IO ao longo do tempo.
Eu sei pidstat
fornecendo carga de CPU, estatísticas de E / S e utilização de memória, mas sem chamadas do sistema, apenas com alta granularidade e não ao longo do tempo.
Enquanto isso, eu escrevi meu próprio programa - audria - capaz de monitorar o uso de recursos de um ou mais processos, incluindo dados atuais / médios. Uso da CPU, uso de memória virtual, carga de IO e outras informações.
Você já tentou remotetaskmonitor.com ? Você pode selecionar o processo individual ou thread e, em seguida, capturar o uso da CPU para que durante um período de tempo. Ele irá gerar para você os gráficos de uso de memória e CPU.
Outra opção pode ser cpuprofiler.com . Mas com isso, seus dados de CPU são armazenados na nuvem e você pode efetuar login em um navegador da Web para visualizar os relatórios da CPU.
Oprofile , pacotes disponíveis na maioria das repos de distro, fornece eventos opcionais por processo ou em todo o sistema e perfil do processo usando contadores de desempenho de hardware da CPU.