日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unix平台下的常用命令技巧之五 资源与性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unix平臺下的常用命令技巧之五??? 資源與性能

李守亮 slli@founder.com.cn

LastVersion 2003-03-10

?

簡述

本節介紹了一些查看系統信息和監測系統資源與性能的工具,使用性能監測工具對當前系統有一個基本的了解,并根據收集到的信息選擇其他相應的工具,進一步分離出性能瓶頸和尋找解決辦法。本節根據查看系統信息、磁盤使用和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命中和失效的信息??梢耘袛嗍欠袷荖FS造成網絡性能下降。

示例:

# 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

?

?

?

?

?

?

?

李守亮 slli@founder.com.cn

2003-03-10

總結

以上是生活随笔為你收集整理的Unix平台下的常用命令技巧之五 资源与性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。