常用linux命令记录

=========================================================================================
strace
常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备
(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace
可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
演示:
strace cat /dev/null 

strace -o output.txt -T -tt -e trace=all -p 28979
跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),
最后将记录结果存在output.txt文件里面

strace -o whoami-strace.txt whoami
strace 可以很容易定位缺少动态库,缺少哪个动态库错误的错误

内核态的函数调用跟踪用「strace」,用户态的函数调用跟踪用「ltrace」
strace -cp 8527
用strace查找进程卡死原因
=========================================================================================
tcpdump 网络上的数据包进行截获的包分析工具
博客地址:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
=========================================================================================
Perf
perf 是 Linux 系统下非常强大的性能工具,由 Linux 内核开发人员在不断演进和优化。除了可以分析  
PMU (Performance Monitoring Unit) 硬件事件,内核事件等通用功能外,perf 还提供了其他“子模块”,
比如 sched 分析调度器,timechart 根据负载特征可视化系统行为,c2c 分析可能存在的 false sharing 
(RedHat 在大量 Linux 的应用上,测试过这套 c2c 的开发原型,成功地发现了很多热点的伪共享缓存行问题。)等

演示:
调用 syscall 数量的 top 排行榜 
perf top -F 49 -e raw_syscalls:sys_enter --sort comm,dso --show-nr-samples

显示超过一定延迟的系统调用信息
perf trace --duration 200
从输出中可以看到进程名称、pid ,超过 200 ms 的具体系统调用参数和返回值。

统计某个进程一段时间内系统调用的开销
perf trace -p $PID  -s
从输出中可以看到各系统调用的次数,返回错误次数,总延迟,平均延迟等信息

我们也可以进一步分析高延迟的调用栈信息
perf trace record --call-graph dwarf -p $PID -- sleep 10
=========================================================================================
pstack命令可显示每个进程的栈跟踪
gstack -打印正在运行的进程的堆栈跟踪
root# pstack PID
root# gstack PID
跟踪死循环位置
=========================================================================================
内存泄漏检查工具
valgrind
Valgrind包括以下一些工具:
1.Memcheck:这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够给发现开发中绝大多数的内存错误使用的情况,比如:使用未初始化
2.callgrind:它主要用来检查程序中函数中调用过程中出现的问题
3.cachegrind:它主要用来检查程序中缓存使用出现的问题
4.Helgrind:它主要用来检查多线程中出现的竞争问题
5.Massif:它主要用来检查程序中堆栈使用中出现的问题
6.Extension:可以使用core提供的 功能,自己编写特定的内存调试 工具

mtrace每一对malloc-free的执行,若每一个malloc都有相应的free,则代表没有内存泄露,
对于任何非malloc/free情況下所发生的内存泄露问题,mtrace并不能找出来
使用方法:https://www.jianshu.com/p/d9e12b66096a
=========================================================================================


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值