Como posso saber se uma instalação em pip do Python está funcionando corretamente ou pendurada?

4

Estou tentando instalar o pacote python pandas em um virtualenv usando pip.

Na minha máquina de desenvolvimento, ele foi instalado corretamente, mas agora eu estou tentando no servidor, ele fica tão distante que parece ficar preso:

 warnings.warn(LapackSrcNotFoundError.__doc__)
/apps/PYTHON/2.7.3/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'define_macros'
  warnings.warn(msg)
non-existing path in 'numpy/distutils': 'site.cfg'
non-existing path in 'numpy/lib': 'benchmarks'
Could not locate executable gfortran
Could not locate executable f95
Found executable /apps/modules/wrappers/fortran/ifort

Top mostra ifort rodando em 46% cpu.

Existe alguma maneira de saber se isso está funcionando corretamente (posso verificar os arquivos que estão sendo atualizados, por exemplo) ou se está preso em um loop?

Funciona há 40 minutos até agora.

    
por wobbily_col 06.11.2013 / 10:45

1 resposta

8

Obtenha o pid ( pidof process ou top ou ps , etc) do processo e use strace -p <pid> . Se você vir polling ou continuamente chamar os mesmos syscalls repetidamente, provavelmente ficará preso em um loop infinito. Para determinar se está preso em um loop infinito, você precisa usar os recursos de tempo do strace (embora isso seja apenas uma suposição).

Se você acabou de fazer um antigo strace -p <pid> , você só verá os syscalls, mas não os dados sendo passados entre eles; para ver esses dados, especifique também o parâmetro -s . Se o processo se forçar, você não verá nenhum de seus filhos no strace, portanto, certifique-se de especificar -f para ver quais syscalls os filhos estão fazendo.

Você também pode querer ver quanto tempo demora entre syscalls; Para fazer isso, você pode usar -tt e -r e -T . Se houver polling, pode ser completamente normal se a espera de um arquivo for criada.

    
por 06.11.2013 / 11:24