首页 / Linux / linux – 为什么strace输出中的brk()需要几秒钟?

linux – 为什么strace输出中的brk()需要几秒钟?

在迁移到Ubuntu Hardy,amd64时,我们注意到我们的一个应用程序显着减速.它在Debian Sarge i386上运行得非常好.

对(Apache 1.3)httpd进程运行’strace -r’显示了以下令人不安的部分:

     0.000083 poll([{fd=8,events=POLLIN|POLLERR,revents=POLLIN}],1,-1) = 1
     0.000026 recvfrom(8,"_323-412D\0\0\0000\0\2\0\0\0\17recueil-cours"...,32727,NULL,NULL) = 8192
     0.000061 poll([{fd=8,"\0\0\0000\0\2\0\0\0\17recueil-courses\0\0\0\23er2"...,32767,NULL) = 2369
     0.117422 brk(0x397a000)            = 0x397a000
     0.140721 brk(0x399b000)            = 0x399b000
     4.457037 brk(0x39bc000)            = 0x39bc000
     0.078792 stat("/opt/semantico/slot/nijhoff/3/sitecode/live/public_home.html",{st_mode=S_IFREG|0644,st_size=2194,...}) = 0

注意最后一行的brk – 暗示brk(0x399b000)花了4.45秒!

我已经查看了brk的手册页,它指出它用于请求更大的数据段/堆,但我找不到任何理由为什么需要这么长时间.

有人有任何想法吗?

解决方法

事实证明,这个问题主要归结于我对strace -r输出的误解.

‘-r’选项给出自上次系统调用以来的时间(以秒为单位),而不是上次系统调用执行的时间.

在这种情况下,CPU正在进行一些计算而不是处理brk().

这里的问题现在已经解决了 – 它是由升级到perl 5.8.9(来自perl 5.8.8)引起的.我们退出了perl升级,并将在稍后调查perl 5.8.9减速的原因.

本文来自网络,不代表糖果站长网立场,转载请注明出处:https://www.1tg.com.cn/html/server/linux/2021/0525/5767.html

dawei作者

【声明】:糖果站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
上一篇
下一篇

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息
返回顶部

【免责声明】本站内容转载自互联网,其发布内容言论不代表本站观点,如果其链接、内容的侵犯您的权益,烦请提交相关链接至邮箱xwei067@foxmail.com我们将及时予以处理。

Copygight © 2013-2023 https://www.1tg.com.cn All Rights Reserved.糖果站长网

站长:xwei067#foxmail.com(请把#换成@)