欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

solaris迅速查找手冊

  發(fā)布時間:2008-09-08 19:11:19   作者:佚名   我要評論
硬件系統(tǒng): 1、如何查看cup的狀態(tài)? 作者:南非蜘蛛? # psrinfo -v # mpstat 可以列出多cpu負載的狀態(tài) 2、如何查看內(nèi)存? 作者:南非蜘蛛? # prtconf | grep 'Memory' 可以查看內(nèi)存的多少. # /usr/platform/sun4u/sbin/prtdiag 3、

  系統(tǒng)管理員是工具的使用者。通過實踐經(jīng)驗,我們掌握了更多工具,并且增強了診斷問題以及實施解決方案的能力。本次專欄中包含的命令是通過經(jīng)驗、朋友、熟人以及出席 9 月舉行的 SunNetwork 2002 大會收集到的。Solaris 內(nèi)核的開發(fā)人員 Brian Cantrill 和 Mike Shapiro 所講的"The /procodile Hunter"讓人很有啟發(fā)并令人感到驚恐,因為 Cantrill 編寫代碼來說明一個觀點的速度比 Shapiro 能夠講解該觀點的速度還要快!

有用的 Solaris 命令

truss -c (Solaris >= 8):這是個令人震驚的 truss 選項,它提供了被追蹤命令的全面概要信息:


$ truss -c grep asdf work.doc
syscall               seconds   calls  errors
_exit                   .00       1
read                    .01      24
open                   .00       8      4
close                   .00       5
brk                     .00      15
stat                     .00       1
fstat                    .00       4
execve                  .00       1
mmap                   .00      10
munmap                 .01       3
memcntl                 .00       2
llseek                   .00       1
open64                  .00       1
                         ----     ---    ---
sys totals:               .02      76      4
usr time:                .00
elapsed:                 .05

它還能顯示正在運行的進程的概要數(shù)據(jù)。在本例中,數(shù)據(jù)表明了從啟動 truss 命令到用 control-c 來終止 truss 執(zhí)行的期間,進程到底做了些什么。這對于判斷進程為何被掛起是很理想的,因為您無須費力瀏覽整個 truss 的輸出。

truss -d 和 truss -D (Solaris >= 8):這兩個選項表明與truss顯示的每個系統(tǒng)調(diào)用相關的時間信息。這對于找出定制代碼或商業(yè)代碼中的問題很有幫助。例如:


$ truss -d who
Base time stamp:  1035385727.3460  [ Wed Oct 23 11:08:47 EDT 2002 ]
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0032 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0037 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0042 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0047 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0051 fstat(3, 0xFFBEF42C)                            = 0
. . .
truss -D 對于顯示系統(tǒng)調(diào)用間的延遲時間更加有用:


Dilbert> truss -D who
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0028 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0005 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0006 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0005 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0004 fstat(3, 0xFFBEF42C)                            = 0

這個例子中,stat 這個系統(tǒng)調(diào)用要比其他系統(tǒng)調(diào)用占用更長的時間。

truss -T:這是個很棒的調(diào)式幫助選項。在執(zhí)行指定的系統(tǒng)調(diào)用時,它可以終止進程("-U"也執(zhí)行同樣的操作,不過是在進行用戶級的函數(shù)調(diào)用時)。此時,將會獲取用于進一步分析的 core 文件,或者使用一些 /proc 工具來確定進程各個方面的狀態(tài)。

truss -l(在 Solaris 9 中已改進):顯示多線程進程中每個調(diào)用的線程號。Solaris 9 中的 truss -l 經(jīng)過了改進,最后還可以監(jiān)視多線程的應用程序的執(zhí)行。

Truss 的確是個功能強大的工具。例如,可在 core 文件中用于分析問題產(chǎn)生的原因。還可以通過"-u"選項來顯示用戶級的庫(既可以為系統(tǒng)庫,也可為程序員庫)調(diào)用的詳細信息。

pkg-ge:這是個用于自動獲取免費軟件包的好工具(http://www.bolthole.com/solaris)。它通過 /etc/pkg-get.conf 來配置。一旦配置好并運行后,就運行 pkg-get -a 來獲取可用包的列表以及運行 pkg-get -I 來獲取并安裝給定的包。

Plimit (Solaris >= 8):這個命令用于顯示并設置正在運行的進程中的每個進程的限制。如果一個長時間運行的進程超過了某個限制(如打開的文件數(shù)目),使用該命令就十分方便。因為無須使用 limit 命令后重新運行該進程,plimit 就可以修改正在運行的進程。

coreadm (Solaris >= 8):在以前沒有 coreadm 命令時,core dumps 被置于進程的工作目錄下。并且 core 文件將會互相覆蓋。而這個問題和其他更多問題都可以由 coreadm 來處理,它是一個管理 core 文件生成的工具。您可以通過該工具指定是否保存 core、core存儲的位置和應保留的版本數(shù)目,等等。所有這些設置信息都是在重啟前通過 coreadm 修改 /etc/coreadm.conf 來保存的。

pgrep (Solaris >= 8):pgrep 在 /proc 中搜索符合給定規(guī)則的進程,并返回進程的 ID。其中一個很棒的選項是"-n",它返回的是最新的滿足條件的進程號。

preap (Solaris >= 9):除去僵尸進程。任何困于"z"狀態(tài)(由 ps 命令顯示)的進程,該命令都可將之從系統(tǒng)中清除。

pargs (Solaris >= 9):顯示進程的參數(shù)及環(huán)境變量。

nohup -p (Solaris >= 9):nohup 命令可以用于啟動一個進程,因此即使用于啟動進程的 shell 被關閉(即進程獲得"SIGHUP"信號),該進程仍然可以繼續(xù)運行。這對于讓一個后臺任務不管碰到何種情況仍然可以繼續(xù)運行是很有用的。但是如果您已經(jīng)啟動了一個進程,但稍后希望使它免受 HUP 信號的影響,該怎么辦呢?在Solaris 9中, nohup -p 可以獲取進程 ID 并使之忽略 SIGHUP 信號。

prstat (Solaris >= 8):prstat 也是 top 命令,但擁有更多功能。這兩個命令都可以提供一個屏幕的關于進程的有用信息以及其他的相關信息,并且能頻繁地更新,總之是個很棒的顯示系統(tǒng)性能的窗口。但 prstat 要比 top 更加精確。它還提供了一些很好的選項。"-a"可以同時顯示進程與用戶的信息(默認由 CPU hog 排序)。"-c"使其執(zhí)行很像 vmstat(在前一個報告下面接著顯示新的報告)。"-C"顯示在處理器集中的進程。"-j"顯示一個"工程"中的進程。"-L"顯示每個線程和每個進程的信息。"-m"和"-v"顯示每個進程的很多詳細的性能信息(包括 pages、traps、lock wait 和 CPU wait)。所有輸出數(shù)據(jù)都可以按照在內(nèi)存中設置的大小、虛擬內(nèi)存大小、運行時間等等條件來排列。prstat 在沒有 top 的系統(tǒng)中是個十分有用的工具,并且由于它的精確性,所以很可能取代 top(有些地方考慮到它是個被支持的程序而使用它)。

trapstat (Solaris >= 9):trapstat 以及 lockstat 和 kstat 是 Solaris 中最難以理解的命令。它們顯示一個運行的操作系統(tǒng)內(nèi)部中最具體的細節(jié)信息。每個命令對于解決 Solaris 系統(tǒng)中發(fā)生的古怪問題都是必不可少的。最好是將它們的輸出隨錯誤報告一起提交,但進一步的研究揭示,它們也能為一般應用提供有用信息。

vmstat -p (Solaris >= 8):在這個選項可以使用之前,要確定是哪種類型的內(nèi)存命令導致系統(tǒng)頁面調(diào)度幾乎是不可能的(請查閱"se toolkit")。vmstat -p 可以解決此問題,因為它不但顯示您的系統(tǒng)是否處于內(nèi)存緊缺的情況(通過"sr"欄),而且還顯示是否是由以下內(nèi)容導致的:應用程序的代碼,應用程序的數(shù)據(jù)或 I/O 。"-p"能夠真正幫助找出 Solaris 中導致神秘的內(nèi)存問題的原因。

pmap -x (Solaris >= 8,Solaris >= 9中進行了錯誤修復):如果已經(jīng)得知進程中有內(nèi)存問題,并且需要獲得更多內(nèi)存使用的詳細信息,就可以使用 pmap -x。該命令將解釋指定 ID 的目標進程的整個內(nèi)存映射信息,如下:


# pmap -x 1779
1779:   -ksh
Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
00010000     192     192       -       - r-x--  ksh
00040000       8       8       8       - rwx--  ksh
00042000      32      32       8       - rwx--    [ heap ]
FF180000     680     664       -       - r-x--  libc.so.1
FF23A000      24      24       -       - rwx--  libc.so.1
FF240000       8       8       -       - rwx--  libc.so.1
FF280000     568     472       -       - r-x--  libnsl.so.1
FF31E000      32      32       -       - rwx--  libnsl.so.1
FF326000      32      24       -       - rwx--  libnsl.so.1
FF340000      16      16       -       - r-x--  libc_psr.so.1
FF350000      16      16       -       - r-x--  libmp.so.2
FF364000       8       8       -       - rwx--  libmp.so.2
FF380000      40      40       -       - r-x--  libsocket.so.1
FF39A000       8       8       -       - rwx--  libsocket.so.1
FF3A0000       8       8       -       - r-x--  libdl.so.1
FF3B0000       8       8       8       - rwx--    [ anon ]
FF3C0000     152     152       -       - r-x--  ld.so.1
FF3F6000       8       8       8       - rwx--  ld.so.1
FFBFE000       8       8       8       - rw---    [ stack ]
-------- ------- ------- ------- -------
total Kb    1848    1728      40       -

這里,我們可以看到每一塊內(nèi)存,它們被用于做什么,占用了多大的(虛擬的和真實的)空間以及其模式信息。

df -h (Solaris >= 9):這個命令在 Linux 上已經(jīng)應用十分普遍,剛剛轉(zhuǎn)移到了 Solaris 平臺。df -h 以一種方便閱讀的形式顯示文件系統(tǒng)的概要信息:


$ df -h
Filesystem             size   used  a vail capacity  Mounted on
/dev/dsk/c0t0d0s0      4.8G   1.7G   3.0G    37%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   848M    40K   848M     1%    /var/run
swap                   849M   1.0M   848M     1%    /tmp
/dev/dsk/c0t0d0s7       13G    78K    13G     1%    /export/home

結(jié)束語

    每個管理員都有一套日常使用的工具,以及另外一套在緊急情況下幫助解決問題的工具。本文介紹了各種各樣的的命令及選項,它們不廣為人知但卻十分有用。您是否也保存了這樣一些偏愛的工具呢?如果有,請也發(fā)送給我,讓我可以擴展自己的工具集。另外,可以發(fā)送一些您不喜歡或是感覺有危險的工具,它們或許也可以變成有用的呢!
 

相關文章

最新評論