Unix平台下的常用命令技巧之五 资源与性能

来源:互联网 发布:windows清理助手32位 编辑:程序博客网 时间:2024/04/30 00:34

简述

本节介绍了一些查看系统信息和监测系统资源与性能的工具,使用性能监测工具对当前系统有一个基本的了解,并根据收集到的信息选择其他相应的工具,进一步分离出性能瓶颈和寻找解决办法。本节根据查看系统信息、磁盘使用和I/O监测、CPU和内存监测、网络监测进行分类,介绍几种性能监测工具和监测手段,供大家在日常工作中选择参考。

 

 

目录

一、系统信息查看

1、查看系统版本号的几个命令

2、如何在Solaris下获取内存大小

3、如何在Solaris下获取CPU速率

 

二、磁盘使用和I/O监测

1、检查磁盘使用状况工具df、du

2、iostat 监视磁盘命令

 

三、CPU和内存使用监测

1、用vmstat监测CPU和内存,vmstat列出的属性详解

2、prstat给出CPU和内存使用情况的动态注解

3、mpstat命令报告每个处理器的统计信息

4、proc工具报告某单独进程属性

5、pmap命令报告单独进程的内存空间布局情况

6、使用ps命令获取进程的内存、CPU利用状况及排序

7、uptime和w命令查看过去15分钟内系统的负载情况

8、使用top工具监测性能

9、如何增加交换空间

 

四、检查网络性能工具

1、snoop诊断网络报文工具

2、nfsstat监测NFS系统

3、netstat监测网络接口

4、Solaris下如何知道哪个进程使用了哪个端口

5、ping 诊断网络连接和阻塞问题

6、ipcs显示与内部进程通信有关的统计信息

7、traceroute显示路由到目的地主机的报文,诊断网络拥堵

8、route get ip获取通过的网关

 

 

 

 

内容

一、系统信息查看

========================================================================

1、查看系统版本号的几个命令

 

1)看版本号

# uname -a

SunOS sunserver1 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-280R

 

2)看kernel版本号

# showrev

Hostname: sunserver1

Hostid: 8318005d

Release: 5.8

Kernel architecture: sun4u

Application architecture: sparc

Hardware provider: Sun_Microsystems

Domain:

Kernel version: SunOS 5.8 Generic 108528-19 January 2003

相关命令:

#hostid

#hostname

 

3)看安装的补丁id

#showrev –p

 

4)看是否安装了某个补丁

#pkginfo |grep XXXXX

========================================================================

2、如何在Solaris下获取内存大小

 

有以下几个命令供参考:

/usr/platform/`uname -m`/sbin/prtdiag -v | grep Memory

prtconf -v | grep Memory

如果装了GNU top,也可以直接用top命令看到。

========================================================================

3、如何在Solaris下获取CPU速率

 

有以下几个命令供参考:

# psrinfo -v

# psrinfo | grep on-line | wc -l 简单给出CPU数目

# /usr/platform/`uname -i`/sbin/prtdiag -v

# /usr/platform/`uname -m`/sbin/prtdiag -v

# /usr/bin/netstat -k cpu_info0

========================================================================

 

 

二、磁盘使用和I/O监测

========================================================================

1、检查磁盘使用状况工具df、du

df列出文件系统的块大小,及使用情况

# df

/                  (/dev/dsk/c0t0d0s0 ):  745246 块   667064 文件

/proc              (/proc             ):       0 块     7816 文件

/dev/fd            (fd                ):       0 块        0 文件

/etc/mnttab        (mnttab            ):       0 块        0 文件

/var/run           (swap              ): 1227264 块    54271 文件

/tmp               (swap              ): 1227264 块    54271 文件

/space             (/dev/dsk/c0t0d0s3 ): 2023574 块  1470851 文件

 

df –k以字节列出系统使用情况

# df -k

文件系统              千字节    用了    可用 容量      挂接在

/dev/dsk/c0t0d0s0    6191949 5819326  310704    95%    /

/proc                      0       0       0     0%    /proc

fd                         0       0       0     0%    /dev/fd

mnttab                     0       0       0     0%    /etc/mnttab

swap                  488768       0  488768     0%    /var/run

swap                  490240    1472  488768     1%    /tmp

/dev/dsk/c0t0d0s3    12530787 11518984  886496    93%    /space

 

列出某一目录所在的设备使用情况

# df -k /slli

文件系统              千字节    用了    可用 容量      挂接在

/dev/dsk/c0t0d0s0    6191949 5819326  310704    95%    /

 

du列出某一目录的使用大小

# du -s /export/home

852690  /export/home

 

# du -ks /export/home

426345  /export/home

 

列出某一目录下所有子目录及文件的大小

# du /opt

8       /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf/windo

10      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf

12      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing

14      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java

16      /opt/SUNWebnfs/JFileChooser-patch/com/sun

18                     /opt/SUNWebnfs/JFileChooser-patch/com

… …

 

========================================================================

2、iostat 监视磁盘命令

 

iostat命令报告磁盘的使用情况。表格中的每一行代表一个磁盘的活动信息。常用的选项有这些:

 

参数n    按cXtYdZ格式指定磁盘。

# iostat -n 2

   tty       c0t0d0         fd0          c0t2d0          cpu

 tin tout kps tps serv  kps tps serv  kps tps serv   us sy wt id

   0   16 476  23    7    0   0    0    0   0    0    2  2 10 86

   0   97 170  22   11    0   0    0    0   0    0    0  3  0 97

   0   33  24   3    1    0   0    0    0   0    0    0  0  0 100

   0   34  12   2    1    0   0    0    0   0    0    0  0  0 100

   0   34   0   0    0    0   0    0    0   0    0    0  0  0 100

 

参数x   报告扩展统计信息。

# iostat -x

                  extended device statistics

device       r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b

dad0        21.2    1.4  465.4   10.9  0.0  0.1    6.5   0  12

fd0          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0

sd0          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0

 

参数z   这个选项在Solaris 8操作环境中是新的。它使得在采样间隔中没有磁盘活动的那些行被省略掉,这样可以让输出简短一些并且突出那些有活动的磁盘。

# iostat -z 2

   tty        dad0          fd0           sd0            cpu

 tin tout kps tps serv  kps tps serv  kps tps serv   us sy wt id

   0   16 476  23    7    0   0    0    0   0    0    2  2 10 86

   0   97  12   1    7    0   0    0    0   0    0    0  0  0 100

 

参数p和P 报告分区前(per-partition)的I/O统计信息,当察看内存交换设备的时候有用。

# iostat -p 2

   tty        dad0         dad0,a        dad0,b        dad0,c          cpu

 tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv   us sy wt id

   0   16 476  23    7    1   0   28    0   0   27    0   0    0    2  2 10 86

   0  117  12   1    1    0   0    0    0   0    0    0   0    0    0  0  0 100

 

参数E   对于找出产生错误的磁盘有用。

# iostat -nE

c0t0d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0

Model: ST320011A        Revision: 3.19     Serial No: 3HT3XQ9X

Size: 20.02GB <20019879936 bytes>

Media Error: 0 Device Not Ready: 0  No Device: 0 Recoverable: 0

Illegal Request: 0

c0t2d0          Soft Errors: 0 Hard Errors: 2 Transport Errors: 0

Vendor: LG       Product: CD-ROM CRD-8483B Revision: 1.02 Serial No:

Size: 18446744073.71GB <-1 bytes>

Media Error: 0 Device Not Ready: 2 No Device: 0 Recoverable: 0

Illegal Request: 0 Predictive Failure Analysis: 0

 

 

此外,对于磁盘镜像,可能也会影响到一些I/O性能。

========================================================================

 

 

三、CPU和内存使用监测

========================================================================

1、用vmstat监测CPU和内存,vmstat列出的是些什么属性?

 

# vmstat 2

 procs     memory            page            disk          faults      cpu

 r b w   swap  free  re  mf pi po fr de sr 1m 1m 1m 2m   in   sy   cs us sy id

 0 0 0 5235888 387408 20 135 10 2  1  0  0  0  0  0  0  170  599  286  0  2 98

 0 0 0 5192424 506360 2   4  0  0  0  0  0  0  0  0  0  152   67  173  0  0 100

 0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  149  138  175  0  0 99

 0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  131   36  146  0  0 100

 0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  156   45  161  0  0 100

 0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  157  101  172  0  0 100

 

vmstat各项:

procs:

r-->在运行队列中等待的进程数

b-->在等待io的进程数

w-->可以进入运行队列但被替换的进程

memoy

swap-->现时可用的交换内存(k表示)

free-->空闲的内存(k表示)

pages

re--》回收的页面

mf--》非严重错误的页面

pi--》进入页面数(k表示)

po--》出页面数(k表示)

fr--》空余的页面数(k表示)

de--》提前读入的页面中的未命中数

sr--》通过时钟算法扫描的页面

disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号

fault 显示每秒的中断数

in--》设备中断

sy--》系统中断

cy--》cpu交换

cpu 表示cpu的使用状态

cs--》用户进程使用的时间

sy--》系统进程使用的时间

id--》cpu空闲的时间

如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。

如果pi,po 长期不等于0,表示内存不足。

如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。

 

 

CPU能力不足的例子。

# vmstat 15

procs       memory page        disk        faults cpu

r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id

45 0 0 2887216 182104 3 707 449 6 455 0 80 2 6 1 0 1531 5797 983 61 30 9

58 0 0 2831312 46408 5 983 582 56 3211 0 492 0 0 0 0 1413 4797 1027 69 31 0

55 0 0 2830944 56064 2 649 656 3 806 0 121 0 0 0 0 1441 4627 989 69 31 0

57 0 0 2827704 48760 4 818 723 6 800 0 121 0 0 1 0 1606 4316 1160 66 34 0

56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0

58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0

60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0

58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0

 

在"procs"下面标着"r"的一列是等待获得CPU的进程运行队列中的进程数。"id"列是CPU空闲时间。这台机器没有足够的CPU资源以满足进程运行的需要,这可以从它的大部分CPU时间花在用户空间里看出来(看"us"列)。

 

这种情况解决办法,增加更多的CPU,或者,配合使用其他相关工具查出资源耗费较多的进程,对应用程序的代码作性能分析,看是否可以优化。

 

vmstat中的"fr"列确实反映了空闲并且没有被页面缓存所使用的内存。使用-p选项,给出更准确的页面调度行为细节。

 

为了确定是否有内存不足的情况存在,同时检查 ("sr",也就是扫描率)和交换分区的磁盘I/O流量(用iostat -P)。如果大量的I/O活动由文件系统产生并且需要运行页面扫描程序为I/O释放页面,"sr"列会有比较大的数值。

 

保存如何正常运转的样例。这样可以很容易地收集和保存每月的性能数据进行比较,如 vmstat, mpstat, iostat

 

========================================================================

2、prstat给出CPU和内存使用情况的一个动态注解

 

示例:

#prstat -cvm的输出结果非常有用。

 

========================================================================

3、mpstat命令报告每个处理器的统计信息

 

mpstat命令报告每个处理器的统计信息,表格中的每一行代表一个处理器的活动情况。

#  mpstat 5

CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl

  0    3  19    0   451  327  300   11    0    0    0   322    2   2  10  86

  0    1   0    0   405  303  258    3    0    0    0   176    0   0   0 100

  0    0 134    0   711  456  559   21    0    0    0   622    9   8  34  49

  0    2  28    0   644  434  703  143    0    0    0  1392   28  12  15  45

  0    0  23    0   624  412  478   35    0    0    0   941   10  18  14  57

 

mpstat可以确定每一个CPU都在花时间做什么:比如,分配给系统、用户、等待、空闲时间、系统调用、锁竞争、中断、错误、交叉调用。

mpstat的"wt"列表明等待时间过多。 用户任务花时间太长。 作为你积极的维护计划的一部分,检查/var/adm/messages中有没有比如磁盘重试之类的硬件问题或者有没有额外的消息产生也是很有价值的。

 

大百科CPU 100%案例:

大百科SUN系统经常报CPU 100%,CPU占用最高的进程有时竟然是一些僵尸进程,杀掉后CPU立刻降下来,在/var/adm/messages中疯狂报如下信息:

Mar  3 16:45:15 dbksvr unix: [ID 340762 kern.notice] from Memory Module 1901
Mar  3 16:45:15 dbksvr unix: [ID 221138 kern.notice]  CONSIDER REPLACING THE MEMORY MODULE.
Mar  3 16:45:15 dbksvr unix: [ID 547813 kern.notice] Multiple Softerrors: 
Mar  3 16:45:15 dbksvr unix: [ID 356634 kern.notice] 256 Intermittent, 0 Persistent, and 0 Sticky Softerrors accumulated

怀疑时硬件内存条问题,当事务量小时,内存用不到这条有问题的,当事务量大时,开始使用此有问题的内存造成死锁,CPU高居100%.

 

========================================================================

4、proc工具报告进程属性

 

proc是一个利用/proc的特性来报告比如这样一些进程属性的实用工具:

1)pstack -调用栈

2)pfiles -打开的文件描述符列表

3)pldd -正在运行中的进程使用的动态链接库的列表

 

 

示例:

#ps -ef

root  1838     1  0   3月 03 ?        0:00 /usr/sbin/syslogd

root  1479     1  0   3月 03 ?        0:01 ocfserv

… …

 

# pstack 1838

1838:   /usr/sbin/syslogd

-----------------  lwp# 1 / thread# 12  --------------------

 ff217ac8 poll     (ff03bd0c, 1, ffffffff)

    ff15b35c poll     (c, ff174780, 1, 2a8c8, 2b164, fe401000) + 34

    ff15bc08 _thread_start (0, 0, 0, 0, 0, 0) + 40

-----------------  lwp# 2 / thread# 2  --------------------

… …

 

# ptree 1838

1933  /usr/dt/bin/dtlogin -daemon

  6359  /usr/dt/bin/dtlogin -daemon

    6380  /bin/ksh /usr/dt/bin/Xsession

6390       /usr/openwin/bin/fbconsole

… …

 

# pfiles 1838

1838:   /usr/sbin/syslogd

  Current rlimit: 1024 file descriptors

   0: S_IFCHR mode:0600 dev:136,0 ino:749016 uid:0 gid:3 rdev:97,0

      O_WRONLY|O_APPEND

   1: S_IFCHR mode:0666 dev:136,0 ino:749009 uid:0 gid:3 rdev:13,2

      O_RDONLY|O_LARGEFILE

    … …

 

# pldd 1838

1838:   /usr/sbin/syslogd

/usr/lib/libnsl.so.1

/usr/lib/libpthread.so.1

/usr/lib/libdoor.so.1

/usr/lib/libc.so.1

… …

 

========================================================================

5、pmap命令报告单独进程的内存空间布局情况

 

对于单独的进程,pmap命令报告单独进程的内存空间布局情况(-x选项比较有用)。

示例:

#ps –ef|grep httpd

    root  1158     1  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd

  daemon  1064  1063  0   3月 03 ?        0:00 /usr/lib/ab2/dweb/sunos5

tpd /usr/lib/ab2/dweb/data

  nobody  1704  1158  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd

  nobody  1705  1158  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd

… …

 

#pmap –x 1710

1710:   /opt/IBMHTTPD/bin/httpd

00010000    584K read/exec         /opt/IBMHTTPD/bin/httpd

000B0000     40K read/write/exec   /opt/IBMHTTPD/bin/httpd

000BA000    208K read/write/exec     [ heap ]

FECA0000     24K read/exec         /usr/lib/nss_files.so.1

FECB6000      8K read/write/exec   /usr/lib/nss_files.so.1

FECC0000    368K read/write/shared   [ anon ]

FED20000    136K read/exec         /opt/WebSphere/AppServer/bin/libascommon.so

… …

========================================================================

6、使用ps命令获取进程的内存、CPU利用状况及排序

 

ps命令显示正在运行进程某一时刻的相关数据,使用ps命令获取进程的内存、CPU利用状况。用这些命令可以看到使用CPU和内存最多的进程:

 

1)# ps -eo pid,pcpu,args | sort +1n

CPU百分比

 

2)# ps -eo pid,vsz,args | sort +1n

K字节的虚拟内存

 

3)# /usr/ucb/ps -aux |more

# /usr/ucb/ps -aux | head

输出被排序,使用CPU和内存最多的进程排在上面。

 

注意:/usr/bin/ps和/usr/ucb/ps时两个不同的工具。

/usr/ucb/ps中,stat列显示了各进程的状态:

R   进程可运行

s   睡眠,不可中断

S   睡眠

I   空闲

T   停挂

H   挂起

W   被换出到磁盘上

?                   进程超过了内存的软限制

+   带有一个控制端的进程领导者

N   进程在优先级降低的情况下运行

<   进程在优先级升高情况下运行

========================================================================

7、uptime和w命令查看过去15分钟内系统的负载情况

 

uptime 可以很开的制导系统一运行了多长时间,以及在过去15分钟内系统的负载情况。W命令(谁在系统中)和uptime相似,第一行给出了uptime的信息,后面给出用户信息。

示例:

# uptime

 下午 2点54分  运行 7 天 16 分钟  7 users,  平均负载:0.02, 0.06, 0.06

 

# w

 下午 2点54分  运行 7 天 16 分钟  7 users,  平均负载:0.02, 0.06, 0.06

用户名   终端号           登入时间  闲置   JCPU   PCPU  执行命令

root     console      周五上午10点 3天   3:11     27  /usr/dt/bin/dtexec

root     pts/11       周五上午11点 3天                -sh

root     pts/13       周五上午11点 3天                -sh

root     pts/15       下午 1点21分  1:07              telnet 162.105.183.8

root     pts/12       周二上午11点     9  13:00       tcsh

 

========================================================================

8、使用top工具监测性能

 

top是第三方软件,需要另外安装,Solaris 8的top安装版本在sunserver1的/SoftWare下。top列出消耗CPU最多的15个进程,并不断更新。

 

1)top命令有几个参数选项,仅介绍以下几种,其他的请参考文档:

I           不显示空闲进程

d count     更新结果count次退出,缺省无限大,ctl+c或ctl+d退出

d time      连续两次刷新时间间隔,缺省5秒

U username  只显示属于用户username的进程

 

示例:

# top

列出消耗CPU最多的15个所有进程

 

# top -I

last pid:  8671;  load averages:  0.02,  0.02,  0.03                   17:28:1

112 processes: 108 sleeping, 2 zombie, 1 stopped, 1 on cpu

CPU states: 99.8% idle,  0.0% user,  0.2% kernel,  0.0% iowait,  0.0% swap

Memory: 512M real, 162M free, 274M swap in use, 599M swap free

 

   PID USERNAME THR PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND

  8671 root       1  59    0 2624K 1656K cpu      0:00  0.27% top

  6358 root       1  59    0   30M   21M sleep    7:42  0.03% Xsun

  8670 oracle     1  59    0  105M   80M sleep    0:00  0.03% oracle

  8669 oracle     4  59    0 9536K 5496K sleep    0:00  0.02% sqlplus

  1270 root      13  58    0   39M   17M sleep    2:04  0.02% java

 

 

# top -U oracle

last pid:  8673;  load averages:  0.02,  0.02,  0.03                   17:29:40

112 processes: 108 sleeping, 2 zombie, 1 stopped, 1 on cpu

CPU states: 99.8% idle,  0.0% user,  0.2% kernel,  0.0% iowait,  0.0% swap

Memory: 512M real, 162M free, 274M swap in use, 599M swap free

 

   PID USERNAME THR PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND

  2294 oracle     1  48    0  105M   78M sleep    0:09  0.00% oracle

  2306 oracle     1  52    0   12M 6664K sleep    0:07  0.00% tnslsnr

  2292 oracle    11  59    0  107M   76M sleep    0:06  0.00% oracle

  8425 oracle    11  58    0  108M   84M sleep    0:01  0.00% oracle

  2288 oracle    29  59    0  108M   77M sleep    0:01  0.00% oracle

… …

仅列出oracle用户的进程

 

2)和top一起使用交互命令

d   改变显示数,如开始使用top –d 命令显示,按d可以改变显示数

n   改变显示的进程数

s   改变刷新的时间间隔

k   杀掉指定的PID

I或i    切换是否显示空闲进程

========================================================================

9、 如何增加交换空间

 

安装完系统后无法改变分区大小,但是可以增加/删除交换文件,效果类似交换分区。下列命令在根目录下创建一个500MB的交换文件,名为swapfile

# mkfile 500m /swapfile

 

使之生效

# swap -a /swapfile

现在你有了额外的500MB交换空间,为了每次重启后依旧有效,编辑/etc/vfstab文件,增加如下行

/swapfile - - swap - no –

 

# swap -l

这里"-l"意味着"list",显示所有交换空间。仔细阅读"swap"和"mkfile"的手册页。

 

========================================================================

 

 

 

 

四、检查网络性能工具

========================================================================

1、snoop诊断网络报文工具

 

snoop捕获并显示诊断网络问题发出的网络报文

示例:

# snoop

# snoop –r |grep 162.105.183.49

此命令锁定某一ip传输过来的所有网络报文,可以捕获输入和回显,甚至口令的明码,很恐怖吧:)

========================================================================

2、nfsstat监测NFS系统

 

nfsstat显示了客户机和服务器的NFS统计信息,包括超时、重传、等待错误及有关cache命中和失效的信息。可以判断是否是NFS造成网络性能下降。

示例:

# nfsstat |more

 

参见nfsstat的帮助文档和参数。

========================================================================

3、netstat监测网络接口

 

1)# netstat –a

显示关于internet协议套接字状态的统计结果

 

2)# netstat –i 2

显示关于网络接口的统计结果,此命令很重要。2为间隔时间参数,可调。

# netstat -i 2

    input   lo0:1     output           input  (Total)    output

packets errs  packets errs  colls  packets errs  packets errs  colls

0       0     0       0     0      3505609 0     3263609 1     35792

0       0     0       0     0      8       0     5       0     0

0       0     0       0     0      18      0     12      0     0

 

3)# netstat –n

缺省时netstat将地址解析成主机名,使用n选项,取消解析使用ip地址

 

4)# netstat –r

显示主机的路由表

# netstat -r

Routing Table: IPv4

  Destination           Gateway           Flags  Ref   Use   Interface

-------------------- -------------------- ----- ----- ------ ---------

clusternode2-priv    clusternode2-priv     UGH      1      0

172.16.194.4         clusternode1-priv     U        1      8  qfe2:2

172.16.0.128         172.16.0.129          U        1      8  qfe2

172.16.1.0           172.16.1.1            U        1      8  qfe0

162.105.183.0        sunserver1            U        1     24  eri0

162.105.183.0        sunserver             U        1      0  eri0:1

172.16.193.0         localhost             U        1      0  lo0

224.0.0.0            sunserver1            U        1      0  eri0

default              162.105.183.1         UG       1     10

localhost            localhost             UH       1      0  lo0

 

5)# netstat –s

显示各协议的统计信息。

 

6)# netstat -s -P tcp

查香tcp协议的统计量

 

7)# netstat -na -P tcp

查看哪些端口是打开的

========================================================================

4、Solaris下如何知道哪个进程使用了哪个端口

 

netstat -na -P tcp查看哪些端口是打开的,但它没有报告是哪个进程打开的。附件ps9000脚本可以列出每个打开的端口被哪个进程使用。Root身份可以查看所有进程,其他身份可以查看本用户的进程。

 

========================================================================

5、ping 诊断网络连接和阻塞问题

 

1)ping ip

示例:

# ping 162.105.183.15

162.105.183.15 is alive

 

2)ping –s [ip] 一直ping 某个地址,按ctl+c或d终止,类似于win下的-t选项

示例:

# ping –s 162.105.183.8

 

3)ping -p [port] [ip] 检查某个端口

示例:

# ping –p 7001 162.105.183.12

162.105.183.12 is alive

# ping 9001 162.105.183.12

ping: bad timeout: 162.105.183.12

 

4)ping –a ip

示例:

# ping –a 162.105.183.49

162.105.183.49 (162.105.183.49) is alive

========================================================================

6、ipcs显示与内部进程通信有关的统计信息

 

示例:

# ipcs

IPC status from <running system> as of 2003年03月10日 星期一 16时58分11秒 CST

T         ID      KEY        MODE        OWNER    GROUP

Message Queues:

q          0   0x2e781d5  --rw-r--r--     root     root

q          1   0x2e781d2  -Rr---w--w-     root     root

Shared Memory:

m          0   0x50000e7e --rw-r--r--     root     root

m        201   0x4c0002d0 --rw-rw-r--   lanman      sys

m          2   0xd961604c --rw-r-----   oracle oinstall

Semaphores:

s     196608   0xbaa9a0cc --ra-r-----   oracle oinstall

s          1   0xbaa9a0cd --ra-r-----   oracle oinstall

s          2   0xbaa9a0ce --ra-r-----   oracle oinstall

========================================================================

7、traceroute显示路由到目的地主机的报文,用于诊断网络拥堵

 

traceroute ip

示例:

# traceroute www.pku.edu.cn

traceroute to rock.pku.edu.cn (162.105.129.12), 30 hops max, 40 byte packets

 1  162.105.183.1 (162.105.183.1)  0.916 ms  0.772 ms  0.705 ms

 2  162.105.170.1 (162.105.170.1)  1.262 ms  1.144 ms  1.131 ms

 3  162.105.162.126 (162.105.162.126)  1.934 ms  1.304 ms  1.135 ms

 4  * * *

 5  * * *

========================================================================

8、route get ip获取通过的网关

 

# route get www.sina.com.cn

   route to: sina37-34.sina.com.cn

destination: default

       mask: default

    gateway: 162.105.183.1

  interface: hme0

      flags: <UP,GATEWAY,DONE,STATIC>

 recvpipe  sendpipe  ssthresh    rtt,ms rttvar,ms  hopcount      mtu     expire

       0         0         0         0         0         0      1500         0