【问题标题】:How can I calculate opendir success or failure time?如何计算 opendir 成功或失败时间?
【发布时间】:2012-06-26 00:36:44
【问题描述】:

我正在编写一个框架来测试CernVM FS 的行为。 基本上,我有一个服务,它通过 http 挂载远程文件系统,并在用户尝试访问配置的挂载点时立即使用自动挂载。

我必须编写的测试之一是检查 cvmfs 是否遵守 dns 请求的超时配置。因此,我将 dns 设置为等待 180 秒,但如果使用代理,则服务必须在 10 秒后停止以尝试挂载文件夹,如果是直接连接,则在 5 秒后尝试挂载。

我已经定义了三个测试(一个具有良好的 dns,另外两个具有带和不带代理的休眠 dns)。所有测试都成功(因此,实际上当 dns 处于睡眠状态时它会失败),但我不知道如何检查 Perl opendir 命令在声明它无法访问该文件夹之前等待多长时间。

我如何衡量这个时间?我知道它必须失败,但我想确保它在 10 或 5 秒后失败(取决于配置)。

我必须在 Perl 中完成,但如有任何建议,我们将不胜感激。

【问题讨论】:

    标签: perl timeout opendir


    【解决方案1】:

    您可以测量发出opendir 和返回(成功或不成功)之间的时间;类似:

    use Carp;
    use Time::HiRes qw(gettimeofday tv_interval);
    my $dir   = '.' #...whatever...'
    my $start = [gettimeofday];
    opendir my $dfh, $dir or carp "opendir() failed: $!\n";
    my $end   = [gettimeofday];
    my $delta = tv_interval $start, $end;
    print "opendir() took $delta seconds\n";
    

    【讨论】:

    • 我用一个简单的time 命令做到了,但你的方法很好。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 2010-09-14
    • 2019-04-21
    相关资源
    最近更新 更多