2017-03-03 3 views
0

J'ai du mal à exécuter mon programme python un peu complexe dans un répertoire distant, monté par SSHFS. Il faut quelques secondes pour effectuer des importations lors de l'exécution dans un répertoire distant et une fraction de seconde dans un répertoire local. Le programme ne doit pas accéder lui-même à tout ce qui se trouve dans le répertoire distant, en particulier pendant la phase d'importation.Script Python très lent dans un répertoire distant

Par défaut, il existe un répertoire (distant) courant I sys.path, mais lorsque je le supprime avant (autres) importations, la vitesse ne change pas. J'ai confirmé avec python -vv que ce répertoire distant n'est pas consulté dans le processus de recherche de modules. Pourtant, je peux voir un flux stable de certaines données du réseau avec un moniteur de réseau externe pendant la phase d'importation.

En outre, je ne peux pas vraiment identifier ce qu'il fait exactement lorsqu'il consomme le plus de temps. Il semble se produire après une importation est terminée, selon mes impressions simples, et avant une importation suivante commence ...

Je cours Fedora Linux 25

+1

Oui, sshfs est lent. Si vous voulez savoir exactement quelles opérations au niveau du système d'exploitation vous font perdre du temps, je vous suggère d'utiliser sysdig ou un outil similaire de traçage de syscall haute performance. strace collectera également des informations sur les syscalls, mais il est tellement surchargé que vous aurez une grosse performance juste en utilisant strace, donc c'est bon pour "ce qui frappe ce système de fichiers?", mais pas si bon pour " quels sont mes points de douleur actuels en termes de performance? ". (Bien que vous n'ayez pas spécifié votre système d'exploitation, nous ne savons pas qu'il s'agit d'un système pour lequel sysdig est disponible ...) –

+0

(... mais sur beaucoup d'endroits où sysdig * n'est pas * disponible, vous avez des concurrents convaincants comme dtrace qui va également combler le créneau). –

+0

Merci, je vais essayer de regarder avec l'outil. En général sshfs me semble être aussi rapide que NFS, etc. quand je fais des opérations de lecture/écriture très exigeantes avec un programme C dans le même répertoire. Alors que l'initialisation du script python est lente. Cela m'a fait me demander ... –

Répondre

-1

Dans mon cas, il était le ROOT Cern bibliothèques d'importation. Lors de l'importation, ils regardent dans le répertoire en cours, peu importe ce que je fais. Donc, la solution est de

  1. magasin le répertoire courant
  2. cd à un répertoire vraiment local, comme «/» ou «/home » avant que les importations
  3. revenir au répertoire stocké après importations