2017-03-03 70 views
0

我无法在远程目录中运行我的一点点复杂python程序,由SSHFS装载。在远程目录中执行导入时需要几秒钟的时间,而在本地目录中则需要几分之一秒的时间。程序不应该访问远程目录中的任何内容,特别是在导入阶段。远程目录中的Python脚本非常慢

默认情况下,当前(远程)目录是我的sys.path,但是当我在(其他)导入之前删除它时,速度不会改变。我用python -vv确认这个远程目录在寻找模块的过程中没有被访问。尽管如此,在导入阶段,我仍可以通过外部网络监视器看到网络中某些数据的稳定流动。

此外,我无法真正确定它在消耗大部分时间时的表现。似乎一个导入之后发生的,根据我的简单的打印输出,并且下一个导入开始前...

我运行Fedora 25的Linux

+1

是的,sshfs很慢。如果您想知道哪些操作系统级别的操作正在耗尽您的时间,我建议使用sysdig或类似的高性能系统跟踪工具。 strace也会收集关于系统调用的信息,但是它有很多开销,只是使用strace会带来很大的性能损失,所以对于“这个文件系统有什么影响?”是很好的,但对于“我在表现方面的实际痛点是什么?“。 (虽然因为你没有指定你的操作系统,我们实际上并不知道它是一个可用的sysdig ...) –

+0

(...但是,在很多sysdig *不是的地方*可用的,你有像dtrace那样引人注目的竞争对手,这也将填补利基)。 –

+0

谢谢,我会试着用这个工具来看看。一般来说,对于我来说,当我在同一个目录下用C程序进行一些非常苛刻的读/写操作时,sshfs的速度与NFS等一样快。虽然只是初始化python脚本是死缓。这让我想知道... –

回答

-1

对我来说,它是在欧洲核子研究中心ROOT库导入。导入时,无论我做什么,它们都会查看当前目录。所以,解决的办法是

  1. 店当前目录
  2. cd到一些真正的本地目录,如“/”“/家”进口
  3. 回来存储目录前后进口