strace(->System Call Interface)
一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。
strace 的最简单的用法就是执行一个指定的命令, strace 会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值。
语法
strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...
[ -ofile ] [-ppid ] ... [ -sstrsize ] [ -uusername ]
[ -Evar=val ] ... [ -Evar ]...
[ command [ arg ... ] ]
strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ]
[ command [ arg... ] ]
常用参数
- -c:统计每一系统调用的所执行的时间,次数和出错的次数等.
- -o:重定向输出
strace -c -o xxx.txt ./test
- -T:对每个系统调用的时间进行统计
strace -T ./test
- -t/-tt/-ttt:统计系统调用的时间点,分别精确到秒/微秒/时间戳
- -s:截断输出,指定每一行的最大输出长度
- -p:追踪一个现有的进程
strace -p pid
netstat(->Sockets/TCP/UDP/IP)
用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况
语法
netstat(选项)
常用参数
“`
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
netstat -s #显示所有端口的统计信息
netstat -st #显示TCP端口的统计信息
netstat -su #显示UDP端口的统计信息
netstat -pt #显示PID和进程名称
netstat -an #不显示host,port和user
netsat -a –numeric-ports
netsat -a –numeric-hosts
netsat -a –numeric-users
netstat -c #持续输出
netstat -r #显示核心路由信息
netstat -i #显示网络接口列表
perf
Perf – Linux下的系统性能调优工具-1
Perf – Linux下的系统性能调优工具-2
用来进行软件性能分析的工具。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。