简述<o:p></o:p>
本节介绍了一些查看系统信息和监测系统资源与性能的工具,使用性能监测工具对当前系统有一个基本的了解,并根据收集到的信息选择其他相应的工具,进一步分离出性能瓶颈和寻找解决办法。本节根据查看系统信息、磁盘使用和I/O监测、CPU和内存监测、网络监测进行分类,介绍几种性能监测工具和监测手段,供大家在日常工作中选择参考。<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
目录<o:p></o:p>
一、系统信息查看<o:p></o:p>
1、查看系统版本号的几个命令<o:p></o:p>
2、如何在Solaris下获取内存大小 <o:p></o:p>
3、如何在Solaris下获取CPU速率 <o:p></o:p>
<o:p></o:p>
二、磁盘使用和I/O监测<o:p></o:p>
1、检查磁盘使用状况工具df、du<o:p></o:p>
2、iostat 监视磁盘命令<o:p></o:p>
<o:p></o:p>
三、CPU和内存使用监测<o:p></o:p>
1、用vmstat监测CPU和内存,vmstat列出的属性详解<o:p></o:p>
2、prstat给出CPU和内存使用情况的动态注解<o:p></o:p>
3、mpstat命令报告每个处理器的统计信息<o:p></o:p>
4、proc工具报告某单独进程属性<o:p></o:p>
5、pmap命令报告单独进程的内存空间布局情况<o:p></o:p>
6、使用ps命令获取进程的内存、CPU利用状况及排序<o:p></o:p>
7、uptime和w命令查看过去15分钟内系统的负载情况<o:p></o:p>
8、使用top工具监测性能<o:p></o:p>
9、如何增加交换空间<o:p></o:p>
<o:p></o:p>
四、检查网络性能工具<o:p></o:p>
1、snoop诊断网络报文工具<o:p></o:p>
2、nfsstat监测NFS系统<o:p></o:p>
3、netstat监测网络接口<o:p></o:p>
4、Solaris下如何知道哪个进程使用了哪个端口<o:p></o:p>
5、ping 诊断网络连接和阻塞问题<o:p></o:p>
6、ipcs显示与内部进程通信有关的统计信息<o:p></o:p>
7、traceroute显示路由到目的地主机的报文,诊断网络拥堵<o:p></o:p>
8、route get ip获取通过的网关<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
内容<o:p></o:p>
一、系统信息查看<o:p></o:p>
========================================================================<o:p></o:p>
1、查看系统版本号的几个命令<o:p></o:p>
<o:p></o:p>
1)看版本号<o:p></o:p>
# uname -a<o:p></o:p>
SunOS sunserver1 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-280R<o:p></o:p>
<o:p></o:p>
2)看kernel版本号<o:p></o:p>
# showrev<o:p></o:p>
Hostname: sunserver1<o:p></o:p>
Hostid: 8318005d<o:p></o:p>
Release: 5.8<o:p></o:p>
Kernel architecture: sun4u<o:p></o:p>
Application architecture: sparc<o:p></o:p>
Hardware provider: Sun_Microsystems<o:p></o:p>
Domain:<o:p></o:p>
Kernel version: SunOS 5.8 Generic 108528-19 January 2003<o:p></o:p>
相关命令:<o:p></o:p>
#hostid<o:p></o:p>
#hostname<o:p></o:p>
<o:p></o:p>
3)看安装的补丁id<o:p></o:p>
#showrev –p<o:p></o:p>
<o:p></o:p>
4)看是否安装了某个补丁<o:p></o:p>
#pkginfo |grep XXXXX<o:p></o:p>
========================================================================<o:p></o:p>
2、如何在Solaris下获取内存大小 <o:p></o:p>
<o:p></o:p>
有以下几个命令供参考:<o:p></o:p>
/usr/platform/`uname -m`/sbin/prtdiag -v | grep Memory <o:p></o:p>
prtconf -v | grep Memory <o:p></o:p>
如果装了GNU top,也可以直接用top命令看到。<o:p></o:p>
========================================================================<o:p></o:p>
3、如何在Solaris下获取CPU速率 <o:p></o:p>
<o:p></o:p>
有以下几个命令供参考:<o:p></o:p>
# psrinfo -v <o:p></o:p>
# psrinfo | grep on-line | wc -l 简单给出CPU数目 <o:p></o:p>
# /usr/platform/`uname -i`/sbin/prtdiag -v <o:p></o:p>
# /usr/platform/`uname -m`/sbin/prtdiag -v <o:p></o:p>
# /usr/bin/netstat -k cpu_info0 <o:p></o:p>
========================================================================<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
二、磁盘使用和I/O监测<o:p></o:p>
========================================================================<o:p></o:p>
1、检查磁盘使用状况工具df、du<o:p></o:p>
df列出文件系统的块大小,及使用情况<o:p></o:p>
# df<o:p></o:p>
/ (/dev/dsk/c0t0d0s0 ): 745246 块 667064 文件<o:p></o:p>
/proc (/proc ): 0 块 7816 文件<o:p></o:p>
/dev/fd (fd ): 0 块 0 文件<o:p></o:p>
/etc/mnttab (mnttab ): 0 块 0 文件<o:p></o:p>
/var/run (swap ): 1227264 块 54271 文件<o:p></o:p>
/tmp (swap ): 1227264 块 54271 文件<o:p></o:p>
/space (/dev/dsk/c0t0d0s3 ): 2023574 块 1470851 文件<o:p></o:p>
<o:p></o:p>
df –k以字节列出系统使用情况<o:p></o:p>
# df -k<o:p></o:p>
文件系统 千字节 用了 可用 容量 挂接在<o:p></o:p>
/dev/dsk/c0t0d0s0 6191949 5819326 310704 95% /<o:p></o:p>
/proc 0 0 0 0% /proc<o:p></o:p>
fd 0 0 0 0% /dev/fd<o:p></o:p>
mnttab 0 0 0 0% /etc/mnttab<o:p></o:p>
swap 488768 0 488768 0% /var/run<o:p></o:p>
swap 490240 1472 488768 1% /tmp<o:p></o:p>
/dev/dsk/c0t0d0s3 12530787 11518984 886496 93% /space<o:p></o:p>
<o:p></o:p>
列出某一目录所在的设备使用情况<o:p></o:p>
# df -k /slli<o:p></o:p>
文件系统 千字节 用了 可用 容量 挂接在<o:p></o:p>
/dev/dsk/c0t0d0s0 6191949 5819326 310704 95% /<o:p></o:p>
<o:p></o:p>
du列出某一目录的使用大小<o:p></o:p>
# du -s /export/home<o:p></o:p>
852690 /export/home<o:p></o:p>
<o:p></o:p>
# du -ks /export/home<o:p></o:p>
426345 /export/home<o:p></o:p>
<o:p></o:p>
列出某一目录下所有子目录及文件的大小<o:p></o:p>
# du /opt<o:p></o:p>
8 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf/windo<o:p></o:p>
10 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf<o:p></o:p>
12 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing<o:p></o:p>
14 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java<o:p></o:p>
16 /opt/SUNWebnfs/JFileChooser-patch/com/sun<o:p></o:p>
18 /opt/SUNWebnfs/JFileChooser-patch/com<o:p></o:p>
… …<o:p></o:p>
<o:p></o:p>
========================================================================<o:p></o:p>
2、iostat 监视磁盘命令 <o:p></o:p>
<o:p></o:p>
iostat命令报告磁盘的使用情况。表格中的每一行代表一个磁盘的活动信息。常用的选项有这些: <o:p></o:p>
<o:p></o:p>
参数n 按cXtYdZ格式指定磁盘。<o:p></o:p>
# iostat -n 2<o:p></o:p>
tty c0t0d0 fd0 c0t2d0 cpu<o:p></o:p>
tin tout kps tps serv kps tps serv kps tps serv us sy wt id<o:p></o:p>
0 16 476 23 7 0 0 0 0 0 0 2 2 10 86<o:p></o:p>
0 97 170 22 11 0 0 0 0 0 0 0 3 0 97<o:p></o:p>
0 33 24 3 1 0 0 0 0 0 0 0 0 0 100<o:p></o:p>
0 34 12 2 1 0 0 0 0 0 0 0 0 0 100<o:p></o:p>
0 34 0 0 0 0 0 0 0 0 0 0 0 0 100<o:p></o:p>
<o:p></o:p>
参数x 报告扩展统计信息。<o:p></o:p>
# iostat -x<o:p></o:p>
extended device statistics<o:p></o:p>
device r/s w/s kr/s kw/s wait actv svc_t %w %b<o:p></o:p>
dad0 21.2 1.4 465.4 10.9 0.0 0.1 6.5 0 12<o:p></o:p>
fd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0<o:p></o:p>
sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0<o:p></o:p>
<o:p></o:p>
参数z 这个选项在Solaris 8操作环境中是新的。它使得在采样间隔中没有磁盘活动的那些行被省略掉,这样可以让输出简短一些并且突出那些有活动的磁盘。<o:p></o:p>
# iostat -z 2<o:p></o:p>
tty da