首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dtrace中,“动态变量丢弃非空脏列表”是什么意思?

在dtrace中,“动态变量丢弃非空脏列表”是什么意思?
EN

Stack Overflow用户
提问于 2018-03-16 16:16:54
回答 1查看 1.2K关注 0票数 4

我正在使用dtruss跟踪OSX10.13上的一个进程,试图了解为什么它在进行套接字连接时冻结。但是,当它到达connect时,跟踪程序冻结,然后在屏幕上显示783 dynamic variable drops with non-empty dirty list。因此,这对理解进程冻结的原因没有太大帮助!

“动态变量丢弃非空脏列表”是什么意思?如何使用dtruss/dtrace深入了解我的进程冻结的原因?

我在osx 10.13上

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 04:55:09

你有没有尝试评论中提到的-b bufsize选项?

在一个自定义的DTrace脚本(不是dtruss包装器)中,我能够通过调整'cleanrate‘和'dynvarsize’选项来解决类似的问题:

代码语言:javascript
复制
#pragma D option cleanrate=50hz
/*
    "dirty" variable drops per <my use case>
    default -> ~20k
    10 Hz -> ~15k
    20 Hz -> ~10k
    30 Hz -> ~2k
    40 Hz -> ~1k
    50 Hz (max) -> < 200
*/

#pragma D option dynvarsize=400000     
/*
     10,000 @ 50 Hz -> ~25k+
    100,000 @ 50 Hz -> ~20k  
    200,000 @ 50 Hz -> ~3k
    300,000 @ 50 Hz -> ~1k
    400,000 @ 50 Hz -> 0
    400,000 @ 25 Hz -> ~2k
    500,000 @ 25 Hz -> ~1k
*/

我通过阅读http://blogs.sun.com/roller/resources/bmc/dtrace_tips.pdf发现了这一点。

https://community.oracle.com/thread/1921528指的是相同的问题和文档。

查看macOS上的/usr/bin/dtruss,

代码语言:javascript
复制
          -b bufsize      # dynamic variable buf size

对应于dynvarsize

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49315934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档