如何收集trace数据?收集trace数据有什么需要注意的地方?

请问:如何收集trace数据?收集trace数据有什么需要注意的地方?显示全部

请问:

如何收集trace数据?收集trace数据有什么需要注意的地方?

收起
参与5

返回cuizengshun的回答

cuizengshuncuizengshun系统运维工程师民生银行

在收集trace数据前请先注意以下原则:

       ① 收集trace数据会对当前系统的负载有影响,在CPU已经达到99%时,再收集trace有可能把操作系统搞夯。

       ② 一定要等到问题重现时收集trace,由于trace产生的数据量巨大,因此要收集有效时间段的trace。如果不确定问题什么时候重现,可以写个判断脚本,收集循环trace。

       ③ 用root用户进行trace收集

       ④ 需要预估trace数据的大小,然后根据预估的空间,在操作系统上找一个空间较大的地方存放数据。trace数据的大小可以用下列公式算出:

预估数据大小=逻辑CPU的个数 * 10MB

(其中逻辑CPU的个数可以用vmstat | grep -i lcpu命令查看)

       在了解上述原则后,我们开始收集trace数据。

trace -anl -C all -T 20M -L 40M -o /bigFS/trace.raw

sleep 10

trcstop

       在执行完上述收集命令后,会生成trace的raw文件。

下面对trace数据进行转换:

trcrpt -r -C all trace.raw > trace.r

       再用curt进行数据处理:

curt -i trace.r -o curt.out -pest

       此时产生一个curt.out文件,可以直接进行阅读。首先可以从“System Summary”字段看到各种类型的进程分别占用CPU的比例。

然后从“Application Summary”可以看到应用占用CPU的排名。

也可以从“System Calls Summary”可以看到系统函数调用排名情况。

银行 · 2015-10-16
浏览4945

回答者

cuizengshun
系统运维工程师民生银行
擅长领域: 云计算服务器iaas

cuizengshun 最近回答过的问题

回答状态

  • 发布时间:2015-10-16
  • 关注会员:2 人
  • 回答浏览:4945
  • X社区推广