1、第二章 调试工具,2.1 sunos所提供的调试工具1、sar (system activity reporter) 命令sar 命令提供覆盖系统大部分范围的系统测量信息。options:- a: 报告DNLC(directory name lookup cache) 信息;- A: 包含所有的参数;- c: 报告系统调用和读/写传输;- d: 报告block设备(disk、tape)的情况;- g: 报告页面调度的情况;- k: 报告kernel 、memory的分配情况;- p: 报告页面调度的错误;,第二章 调试工具,- r: 有效的memory页面和swap空间;- u: CPU的利用
2、率;- w:系统swap和进程交换的状态;- y: TTY设备状态。# sar c 10 Sunos sun250 5.8 Genric_105181_26 sun4u 07/31/02 18:38:03 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 18:38:13 306 27 31 0.00 0.00 5643 5942,第二章 调试工具,2、vmstat (virtual memory statistics)命令vmstat命令报告虚拟内存的统计信息。options:-c 报告缓存刷新的信息;-i 报告每个设备的中断数目;-
3、s 显示系统引导之后的系统事件统计;-S 报告交换行为而非分页行为。 # vmstatprocs memory page disk faults cpur b w swap free re mf pi po fr de sr s0 s1 - - in sy cs us sy id0 0 0 217352 60448 0 5 6 0 0 0 0 1 0 0 0 115 114 55 1 3 96,第二章 调试工具,procs: 报告进程的状态及其数目r: 运行的队列里的进程b: I/O、分页被阻隔的进程w: 可运行但被交换的进程memory: 报告虚拟内存和真实的内存swap: 当前可用的交换空
4、间free: 闲置的空间page: 报告页面活动数量的信息re: 被回收的页面mf: 次要错误,地址空间或硬件地址转换错误pi: 页面调入(K bytes),第二章 调试工具,po: 页面调出(K tybes)fr: 被释放的空间(K tybes)de: 预期的内存缺乏(K tybes)sr: 被扫描的页面disk :报告每秒钟内磁盘操作的总数S:SCSI I:IDEfaults: 报告中断的比率in: (无时钟)设备的中断sy:系统调用cs: cpu的上下文交换cpu :使用cpu的时间百分比,第二章 调试工具,us: 用户时间sy: 系统时间id:空闲时间3.iostat (I/O sta
5、tistics) 报告disk 和TTY设备的I/O性能options:- c: cpu状态- d: disk数据传输以及平均服务时间- D: disk每秒钟的读写次数及使用百分比- e: 设备错误统计(硬错误、软错误)- E: 所有设备的错误及其详细信息- M: 以m为单位报告I/O的吞吐量,第二章 调试工具,- x: 显示磁盘扩展的统计信息- t: 显示终端设备信息# iostat xtc 5 2extended device statistics tty cpudevice r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt
6、 id sd0 1.6 0.3 23.0 2.7 0.0 0.1 0.1 0 1 0 761 0 1 2 97sd6 0.0 0.0 0.0 0.0 0.0 0.0 12.5 0 0 disk: 磁盘名r/s: 每秒读盘次数w/s: 每秒写盘次数,第二章 调试工具,kr/s: 每秒读的字节数(K bytes)kw/s: 每秒写的字节数(K bytes)wait: 队列的长度actv: 正在接收服务的平均事务数svc_t: 平均服务时间%w: 有事务在等待服务的时间(百分比)%b: 磁盘繁忙时间(百分比)tin: 终端输入tout: 终端输出us: 用于处理user的百分比sy: 用于处理sys
7、tem的百分比wt: 用于等待I/O的百分比id: 空闲百分比,第二章 调试工具,4、mpstat 报告每个处理器的统计信息#mpstat 5cpu minf mjf xcal intr ithr csw icsw migr smtx srw syscal usr sys wt idl0 1 0 368 102 102 36 0 0 0 0 420 0 1 2 961 1 0 186 420 220 39 0 0 6 0 82 0 0 2 98cpu: 处理器IDminf: 次要的故障mjf: 主要的故障xcal: 跨处理器的调用intr: 中断ithr: 线程中断,第二章 调试工具,csw:
8、 上下文交换icsw:强制的上下文交换migr: 向另一处理器的线程传递smtx: 互斥信号的转换srw: 读写锁的转换syscal: 系统调用usr: 用户时间百分比sys: 系统时间百分比wt: 等待时间百分比idl: 空闲时间百分比,第二章 调试工具,5、netstat 报告网络利用信息,包括DHCP(动态主机配置协议),arp信息和传输情况。options:-a : 显示所有的套接字(sockets)和路由表信息;-d :显示所有的运用DHCP协议的接口状态;-D: 显示DHCP 配置接口;-i: 显示所有的TCP/Ip接口状态;-k: kernel memory 分配的细节;-n:
9、显示所有的网络地址;-p: 显示arp列表;-r: 显示路由表;-s: 显示每种协议的状态。,第二章 调试工具,#netstat iname mtu net/dest address ipkts iperrs opkts oerrs collis queuelo0 8232 lookback localhost 1780 0 1780 0 0 0hme0 1500 sun250 sun250 161636 0 230771 0 0 0#netstat pdevice ip address mask flags phys addr hme0 192.168.1.27 255.255.255.25
10、5 00:40:d0:1d:00:1ehme0 192.168.1.37 255.255.255.255 00:00:e8:7b:f7:39,第二章 调试工具,6、nfsstat : 报告系统nfs 状态的详细信息,包含server 和client 的信息,帮助寻找问题的位置。options:-c : 只显示client的信息;-m: 显示nfs 挂接的状态;-n: 显示nfs的信息,包括server 和client的信息;-r: 显示rpc的信息;-s: 只显示server信息,第二章 调试工具,2.2 其它的工具1、/usr/proc/bin (/usr/bin) 目录/usr/proc/
11、bin目录中的工具与/proc文件系统相关联,允许报告进程 的细节信息。/usr/proc/bin/ptree: 列出与当前进程相关的父进程与子进程,以及 提供进程运行的文件信息。 #ptree /usr/sbin/inetd -s t565 rpc.ttdbserverd571 rpc.rstatd ,第二章 调试工具,/usr/proc/bin/pcred: 显示进程的凭证(有效、真实的UID、GID) /usr/proc/bin/pmap: 显示进程的地址空间图。 /usr/proc/bin/pldd: 列出每个进程的动态数据库连接,包括共 享目录。 /usr/proc/bin/psig
12、: 列出每个进程的信号的作用。 /usr/proc/bin/pstack: 显示进程的堆栈。 /usr/proc/bin/pwdx: 显示每个进程当前的工作目录。 /usr/proc/bin/pstop: 停止指定的进程。 /usr/proc/bin/prun: 运行指定的进程。 /usr/proc/bin/pwait: 等待指定的所有进程结束。,第二章 调试工具,2.3进程管理器(process manager)进程管理器能查找有问题的进程,并且跟踪当前系统资源的运用 情况。 #/usr/dt/bin/sdtprocess & 它所显示的信息是从ps 命令和/proc文件系统得到的。这包括:
13、 1、cpu的利用率2、I/O的利用率3、memory利用率4、进程的凭证5、跟踪与反向跟踪6、调度参数,第二章 调试工具,第二章 调试工具,2.4显示调度参数1、sysdef命令可以显示近60个运行的调度参数。#sysdefsystem configurationswapfile dev swaplo blocks free /dev/dsk/c0t0d0s1 32,1 16 2101536 2101536tunable parameters 10362880 maximum memory allowed in buffer cache7914 maximum number of proce
14、sses ,第二章 调试工具,2、adb命令,内核调试器。允许你察看并改变调整参数的值。 3、ndd 命令,能察看并且改变网络设备和协议栈的参数。 # ndd get /dev/ip ip_forwarding 1 #ndd set /dev/ip ip_forwarding 0 关闭ip转发。# ndd set /dev/ip ip_respond_to_echo_broadcast 0 关闭echo广播响应,防止dos攻击,第二章 调试工具,2.5 一些有用的命令1、/usr/platform/sun4u/sbin/prtdiag 显示系统的配置信息,包括cpu的频率、ecache大小、存
15、储器的大小以及外围设备的配置。2、psrinfo 显示处理器的配置与诊断信息。#psrinfo0 on-line since 09/22/02 17:38:181 off-line since 09/22/02 17:38:18-v选项还可以显示处理器的类型与时钟速率信息。3、psradm命令可以设置处理器在线或离线。#psradm -f 1 ;将cpu 1 设置位离线。#psradm -n 1 ;将cpu 1 设置位在线。,第二章 调试工具,2.6 设置调试参数在/etc/system文件里可以改变调试参数,内核被加载到memory之后 会读一次/etc/system文件。在/etc/system文件中所定义的参数被放置 在kernel里的合适的位置,然后系统继续初始化。因此,在改变 /etc/system文件后,必须reboot系统。# vi /etc/system set maxusers=40forceload: /drv/foo,第二章 调试工具,/etc/system 文件能用来设置常驻在kernel 里的调试和一些选项参数 的值,如果/etc/system 文件中的参数改变不正确,可能会导致系统无 法启动。,