系统级别:
下面这些工具利用内核的计数器在系统软硬件的环境中检查系统级别的活动。
vmstat: 虚拟内存和物理内存的统计,系统级别。
mpstat: 每个CPU 的 使用情况。
iostat: 每个磁盘I/O 使用情况,由块设备接口报告。
netstat: 网络按口的统计,TCP/IP栈的统计,以及每个连按的一些统计信息。
sar: 各种各样的统计,能归档历史数据。
进程级别 :
下面这些工具是以进程为导向的,使用的是内核为每个进程维护的计数器。
PS: 进程状态,显示进程的各种统计信息,包括内存和CPU 的使用。
top: 按一个统计数据(如CPU 使用)排序,显示排名高的进程。基于Solaris 的系
统对应的工具是prstat 。
pmap:将进程的内存段和使用统计一起列出。
一般来说,上述这些工 具是从/proc 文件系统里读取统计信息的。
系统级别 :
利用内核的跟踪设施,下面这些跟踪工具在系统软硬件的环境中检查系统级别的活动。
tcpdump: 网络包跟踪( 用libpcap 库)。
snoop: 为基于Solaris 的系统打造的网络包跟踪工其。
blktrace: 块I/O跟踪(Linux )。
iosnoop: 块I/O 跟踪( 基于DTrace )
execsnoop: 跟踪新进程( 基于DTrace )。
dtruss:系统级别的系统调用缓冲跟踪(基于DTrace)。
DTrace: 跟踪内核的内部活动和所有资源的使用情况(不仅仅是网络和块/O),支持静态和动态的跟踪。
SystemTap: 跟踪内核的内部活动和所有资源的使用情况,支持静态和动态的跟踪。
perf: Linux 性能事件,跟踪静态和动态的探针。
进程级别 :
下面这些跟踪工具是以进程为导向的,基于的是操作系统提供的框架。
strace: 基于Linux 系统的系统调用跟踪。
truss: 基于Solaris 系统的系统调用跟踪。
gdb: 源代码级别的调试器,广泛应用于Linux 系统。
mdb: Solaris 系统的- 一个具有可扩展性的调试器。
调试器能够检查每一个事件的数据,不过做这件事情时需要停止目标程序的执行,然后再
启动。
诸如DTrace、SystemTap和perf这样的工具,虽然更适合归纳到系统级别一类中,但是它
们都支持对单个进程做检查。
图片来源: