2016-02-05 233 views
0

当我打开/保存文件时,我的Linux(Fedora)计算机变得无响应约15分钟。我调查过,它与/ mnt中的Windows挂载目录有关。我可以用一个简单的'ls -al/mnt'重现。所有后续的ls命令都会很快返回。一段时间后,同样的问题显示出来,我不得不采取另一种休息15分钟......lstat()块15分钟

使用strace和ltrace都指向LSTAT():

# strace 
13:37:22 lstat("/mnt/Todo-Dino", 0x211ce40) = -1 EHOSTDOWN (Host is down) 
13:52:24 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 

# ltrace 
13:37:22 __lxstat(1, "/mnt/Todo-Dino", 0x01e1ee40)            = -1 
13:52:24 dcgettext(0, 0x4120ce, 5, 0, 0x1e24850) 

mnt$ ls -al 
ls: cannot access Todo-Dino: Host is down 
total 40 
d????????? ? ? ?  ?   ? Todo-Dino 

Windows机器上用挂载在上面/ mnt/Todo-Dino并没有像报道的那样真的下降。即使它会下来,15分钟是一个相当漫长的等待......

后的15分钟内把目录显示为预期:

mnt$ ls -al 
drwxrwxrwx 2 root root 12288 Feb 4 12:36 Todo-Dino 

fstab文件有:

//192.168.1.1/Todo      /mnt/Todo-Dino   cifs username=XXX,password=XXX,file_mode=0777,dir_mode=0777,auto,users 0 0 

任何想法如何解决这个问题?来自哪里15分钟的神奇延迟?

谢谢。

+0

您可以验证它不是(临时)网络问题吗?即当stat挂起时,你能ping通否则通过网络从linux机器到windows机器进行通信? – nos

+0

@nos我刚刚尝试过。步骤:1)唤醒Windows机器2)从Linux中ping它(192.168.1.1)3)'ls'仍然挂在Linux上。事实上,第2步是多余的 - 我真的通过VNC连接到Windows机器上的Linux机器... Linux只装载了dir,并且需要15分钟才能重新获取它。这是一个4-5岁的Fedora。可能有一个Samba配置需要调整,至少将这15分钟缩短到可以接受的程度。 –

+0

其实我发现有一个服务器故障社区,讨论这些问题。类似的一个问题:http://serverfault.com/questions/622238/linux-cifs-samba-mount-hangs-for-several-minutes。作为一种解决方法,我可以从那里尝试一个建议 - 每分钟执行一次cron作业,以“锻炼”连接。 –

回答

1

我没有深究这个问题的底部,但至少有一个简单的治疗方法。类似于类似的线程所建议的,每5分钟清除一次/ mnt的列表。可能太频繁但谁在乎?现在使用机器时不会被迫中断15分钟!

* * * * /bin/ls -al /mnt > /dev/null 2>&1 
    5 * * * * /bin/ls -al /mnt > /dev/null 2>&1 
    ...