【问题标题】:Erlang causes page faultsErlang 导致页面错误
【发布时间】:2011-08-10 17:47:21
【问题描述】:

当我和我的用户一起运行here 描述的脚本时,一切都很好:

lorenzo@enzo:~/erlang/pei$ time erl -noshell -smp enabled -S 4 -s fib4 main 10000000

real    0m54.952s
user    1m16.090s
sys 0m0.070s

当我以 root 身份运行它时,它崩溃了:

lorenzo@enzo:~/erlang/pei$ sudo time erl -noshell -smp enabled -S 4 -s fib4 main 10000000
[sudo] password for lorenzo: 
74.68user 0.04system 0:53.56elapsed 139%CPU (0avgtext+0avgdata 66064maxresident)k
0inputs+0outputs (0major+8306minor)pagefaults 0swaps

错误是可重现的。

我的问题是:

  • 有人能解释一下那里发生了什么吗?

  • 是 erlang 运行时问题还是我的操作系统问题?

  • 谁能重现这个错误?

我在带有内核的 ubuntu natty 上运行 erlang 5.7.4

Linux enzo 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

在飞鸿 X4 上。

【问题讨论】:

    标签: erlang page-fault


    【解决方案1】:

    你认为它为什么会崩溃? time 仅在以 root 身份运行时显示更多信息。 Page fault 不是错误,而是 virtual memory 的工作方式。

    【讨论】:

      【解决方案2】:

      两次运行之间的区别在于,在第一次运行中,您运行的是内置的 shell time,但在第二次运行中,您运行的是 sudo 在路径中找到的任何内容,即 @987654323 @。这两个工具有不同的输出格式。

      $ type time
      time is a shell keyword
      $ time echo
      
      
      real    0m0.000s
      user    0m0.000s
      sys     0m0.000s
      $ type /usr/bin/time
      /usr/bin/time is /usr/bin/time
      $ /usr/bin/time echo
      
      0.01user 0.00system 0:00.00elapsed 1000%CPU (0avgtext+0avgdata 2784maxresident)k
      0inputs+0outputs (0major+217minor)pagefaults 0swaps
      

      【讨论】:

        猜你喜欢
        • 2011-08-06
        • 1970-01-01
        • 2011-04-02
        • 2017-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-27
        • 1970-01-01
        相关资源
        最近更新 更多