linux– 我怎么知道为什么我的Perl代码在内核空间花了这么多时间(顶部的“sy”)?

linux– 我怎么知道为什么我的Perl代码在内核空间花了这么多时间(顶部的“sy”)?,第1张

概述当我运行我的程序“top”报告我在“sy”(内核空间)中花费了30%.我怎样才能获得更多相关信息?什么系统调用正在吞噬所有这一次,等等谢谢响应者:>听起来像Devel :: NYTProf很适合分析整个程序 - 但我在亚马逊Linux上安装它时遇到了麻烦.>如果我只想要一个系统调用快照,那么strace似乎很棒.更新:我这样做了,系统调用花费的时

当我运行我的程序“top”报告我在“sy”(内核空间)中花费了30%.

我怎样才能获得更多相关信息?什么系统调用正在吞噬所有
这一次,等等

谢谢响应者:

>听起来像Devel :: NYTProf很适合分析整个程序 – 但我在亚马逊Linux上安装它时遇到了麻烦.
>如果我只想要一个系统调用快照,那么strace似乎很棒.

更新:我这样做了,系统调用花费的时间实际上可以忽略不计.我最好的猜测是线程在某些资源上等待.答案仍然很好,但任何建议都会有所帮助.最佳答案您可以使用strace(1) – 跟踪系统调用和信号.
-c标志将生成由syscall分组的聚合结果. -p NUM是要附加的运行进程的PID.
监视爬虫(例如)如下所示:

stas@crawler2:~/ScrapMe$strace -c -p 32184                                                                                                                                                                                              Process 32184 attached - interrupt to quit^CProcess 32184 detached% time     seconds  usecs/call     calls    errors syscall------ ----------- ----------- --------- --------- ---------------- 48.00    0.000024           0       128           sendto 26.00    0.000013           0        76           write 26.00    0.000013           0      2652      2652 stat  0.00    0.000000           0        24           close  0.00    0.000000           0       226           poll  0.00    0.000000           0        78           rt_sigaction  0.00    0.000000           0        26           rt_sigprocmask  0.00    0.000000           0        52           alarm  0.00    0.000000           0        26           socket  0.00    0.000000           0        26        26 connect  0.00    0.000000           0        75           recvfrom  0.00    0.000000           0        26           getsockname  0.00    0.000000           0        26           getpeername  0.00    0.000000           0        26           getsockopt  0.00    0.000000           0       310           fcntl  0.00    0.000000           0        13           epoll_wait  0.00    0.000000           0        26           epoll_ctl------ ----------- ----------- --------- --------- ----------------100.00    0.000050                  3816      2678 total
总结

以上是内存溢出为你收集整理的linux – 我怎么知道为什么我的Perl代码在内核空间花了这么多时间(顶部的“sy”)?全部内容,希望文章能够帮你解决linux – 我怎么知道为什么我的Perl代码在内核空间花了这么多时间(顶部的“sy”)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1047242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存