亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1740 | 回復(fù): 0
打印 上一主題 下一主題

Sco unix 培訓(xùn)手冊(cè)7 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-04-23 16:13 |只看該作者 |倒序?yàn)g覽

第13章  系統(tǒng)級(jí)故障診斷
故障診斷是研究與解決系統(tǒng)問(wèn)題的通用術(shù)語(yǔ).在通常情況下, 故障診斷主要是指改正那些導(dǎo)致系統(tǒng)崩潰或進(jìn)程失敗的錯(cuò)誤。本章提供了分析和恢復(fù)常見(jiàn)系統(tǒng)故障的一般信息:
·其它故障診斷文檔
·為從故障恢復(fù)中作準(zhǔn)備
·恢復(fù)被破壞的根文件系統(tǒng)
·系統(tǒng)崩潰
  一從系統(tǒng)告急中恢復(fù)
  一電源故障后的銀復(fù)
  一自動(dòng)重新引導(dǎo)
·分析系統(tǒng)故障
·用crash(ADM)命令檢查內(nèi)存轉(zhuǎn)
·通常的系統(tǒng)范圍內(nèi)的問(wèn)題
·cron,at和batch故障診斷
·失控的進(jìn)程
13.1 其它故障診斷文檔
除了系統(tǒng)級(jí)故障的診斷,在獨(dú)立系統(tǒng)組件內(nèi)部也可能出現(xiàn)各種不同情況。這類(lèi)信息包含在討論該特定組件的文檔資料中。與命令有關(guān)的出錯(cuò)消息及問(wèn)題在該命令的手冊(cè)頁(yè)中討論,有關(guān)解決這些問(wèn)題的信息則在該過(guò)程或子系統(tǒng)的指南中提供?梢允褂萌置鞴δ懿檎页鲥e(cuò)消息或條件,并且找到在文檔中何處討論它。
討論故障診斷的主要章節(jié)包括:
·第3章“安裝故障診斷”包含解決 SCO軟件安裝過(guò)程中出現(xiàn)問(wèn)題的信息
·系統(tǒng)啟動(dòng)故障診斷
·網(wǎng)絡(luò)配置故障診斷
·<SCO OpenServer系統(tǒng)管理指南>(本系列叢書(shū)之三)討論與安全機(jī)制、文件系統(tǒng)、打
  印機(jī)、UUCP及虛擬盤(pán)有關(guān)的問(wèn)題
·<SCO OPenServer網(wǎng)絡(luò)指南>(本系列叢書(shū)之四)包含診斷各種網(wǎng)絡(luò)軟件包的信息
13.2 為從救障中恢復(fù)作準(zhǔn)備
9.5節(jié)“系統(tǒng)管理任務(wù)小結(jié)”敘述了許多實(shí)用方法,可以幫助你避免系統(tǒng)問(wèn)題,最大限度減少系統(tǒng)故障所產(chǎn)生的影響。其中一些要點(diǎn)概述如下:
·按第5章“創(chuàng)建應(yīng)急引導(dǎo)軟盤(pán)組”中的方法建立應(yīng)急引導(dǎo)盤(pán)組。如果由于系統(tǒng)的崩潰
  而破壞了根文件系統(tǒng)或引導(dǎo)文件,使用應(yīng)急引導(dǎo)盤(pán)組能恢復(fù)系統(tǒng);否則,就必須重新
  安裝系統(tǒng)。
·按13.2.1節(jié)“記錄根硬盤(pán)的布局”中的方法記錄根硬盤(pán)信息,這些信息對(duì)于在根硬盤(pán)
  損壞后恢復(fù)系統(tǒng)是十分有用的。
·經(jīng)常性地監(jiān)控系統(tǒng)性能、出錯(cuò)日志和系統(tǒng)日志。這樣使你能在產(chǎn)生嚴(yán)重后果之前排除
  故障。參見(jiàn)13.5.5節(jié)“檢查系統(tǒng)文件中的出錯(cuò)歷史”中有用的出錯(cuò)日志文件的清單。
·在系統(tǒng)上安裝一個(gè)不間斷電源( UPS),在電源波動(dòng)或斷電時(shí)保護(hù)系統(tǒng)不受損壞。
·定期進(jìn)行系統(tǒng)備份?紤]每一周或兩周做全面系統(tǒng)備份。因?yàn)樵隽總浞萃ǔ1热鎮(zhèn)?br />   份要快,所以一般人傾向于極少進(jìn)行全面?zhèn)浞。但是,如果你需要恢?fù)文件,那么你
  就可能需要恢復(fù)最近一次的全面?zhèn)浞,加上從那時(shí)起所有的增量備份,這可能是一個(gè)  
  冗長(zhǎng)和乏味的過(guò)程。
    ·理解 ovenride終端在與安全子系統(tǒng)打交道時(shí)的目的。override終端用于改正阻止訪問(wèn)
  其它終端的錯(cuò)誤。在默認(rèn)情況下,控制臺(tái)多屏幕(/dev / tty01)是 override終端。如需
  更多信息,請(qǐng)參見(jiàn)第10章“啟動(dòng)和停止系統(tǒng)”。
13.2.1記錄根硬盤(pán)的布局
為了防止硬盤(pán)損壞必須復(fù)制根硬盤(pán)布局信息。如果有了這些信息就可以重建系統(tǒng),而不必重新安裝。使用divvy(ADM)來(lái)復(fù)制系統(tǒng)中的 UNIX分區(qū)部分,使用如下命令:
    divvy  -P -N
   
輸出如下:
     0             0          14999        boot        EAFS
     l          15000          39574       swap        NON  FS
     2          39575         346775       root        HTFS
     3         346776        1022965        u                     HTFS
     6        1022966        1022975      recover      NON  FS
     7              0        1023983      hd0a                  WHOLE  DISK

如果在根硬盤(pán)中有多個(gè)分區(qū),那么用fdisk( ADM)命令將它們記錄下來(lái),包括起始和結(jié)束位置。使用下列命令:
  fdisk –p

輸出如下:
    1 1 63999 UNIX ACTIVE
13.3 恢復(fù)被破壞的根文件系統(tǒng)
如果根文件系統(tǒng)被嚴(yán)重破壞,以至于在引導(dǎo)系統(tǒng)時(shí)不能執(zhí)行fsck(ADM)或者系統(tǒng)顯示毫無(wú)意義的出錯(cuò)消息,那么必須從備份中恢復(fù)根文件系統(tǒng)。要做到這一點(diǎn),需要有一套應(yīng)急引導(dǎo)軟盤(pán)組,這套盤(pán)必須按照第5章“創(chuàng)建應(yīng)急引導(dǎo)軟盤(pán)組”所述創(chuàng)建。如果你沒(méi)有這套軟盤(pán),那么你必須按照17.7節(jié)“替換根硬盤(pán)”中的敘述進(jìn)行部分重裝。


注意:應(yīng)急引導(dǎo)軟盤(pán)組必須包合一個(gè)帶有已安裝了正確的磁帶驅(qū)動(dòng)程序的核心。如果在創(chuàng)建應(yīng)急引導(dǎo)軟盤(pán)組之后,改變了磁帶驅(qū)動(dòng)器的類(lèi)型,那么必須遵照14.5.2節(jié)”QIC—02”磁帶驅(qū)動(dòng)器引導(dǎo)串’’及14.5.3節(jié)“SCSI外部設(shè)備引導(dǎo)中’所述,在出現(xiàn) Boot:提示符時(shí)配置磁帶驅(qū)動(dòng)器‘


按以下步驟恢復(fù)根文件系統(tǒng):
(l)關(guān)閉系統(tǒng)。
(2)將引導(dǎo)軟盤(pán)(或一個(gè)單一的引導(dǎo)/根軟盤(pán))插入軟盤(pán)驅(qū)動(dòng)器,然后打開(kāi)系統(tǒng)電源。
(3)出現(xiàn) Boot:提示符時(shí),按< Enter>。
(4)如果出現(xiàn)提示信息,插入根軟盤(pán),并控< Enter>。
             (5)系統(tǒng)創(chuàng)建一個(gè)RAM磁盤(pán)并且將一個(gè)基本根文件系統(tǒng)裝入內(nèi)存。當(dāng)你看到列出已配置
   到核心中的設(shè)備的啟動(dòng)消息之后,顯示根提示符(#)。鍵人命令:
    fsck / dev / hd0root
如果fsck執(zhí)行成功,那么用haltsys(ADM)命令關(guān)閉系統(tǒng),然后在出現(xiàn) Boot:提示符時(shí),按< Enter>試著再次從硬盤(pán)引導(dǎo)。如果檢查失敗,那么繼續(xù)下一個(gè)步驟。
(6)鍵入下面的命令,從頭重新配置根磁盤(pán):
mkdev hd


   注意 : 你會(huì)看到這樣一些出錯(cuò)消息:

       / usr / lib / mkdev / hd : uniq : not found
       mv: cannot access / tmp / DKINIT21 : No such file or directory ( error 2 )

   這些消息是一系列來(lái)自受限制的RAM磁盤(pán)文件系統(tǒng)的操作,可以忽略

  
      該命令遵照17.4節(jié)“安裝硬盤(pán)’’所述,執(zhí)行初始化硬盤(pán)的所有必需程序, 包括:
·用dkinit(ADM)命令設(shè)置磁盤(pán)參數(shù)(如果需要的話),如果是 SCSI盤(pán),就跳過(guò)這一步操
  作.
·用fdisk(ADM)命令對(duì)硬盤(pán)進(jìn)行分區(qū),如果具有多個(gè)分區(qū),就應(yīng)使用在13.2.1節(jié)“記錄
  根硬盤(pán)的布局”中復(fù)制的信息。除非根文件系統(tǒng)被破壞,否則不必對(duì)磁盤(pán)重新分區(qū),
  而只是簡(jiǎn)單地從fdisk命令中退出。
·用badtrk(ADM)命令映射壞塊或扇區(qū),可選擇快速、掃描中恢復(fù)或不恢復(fù)幾種方式,
  如果選擇恢復(fù)掃描磁盤(pán),將重寫(xiě)磁盤(pán)中的引導(dǎo)扇區(qū),詳見(jiàn)10.6.3節(jié)“系系引導(dǎo)失敗或顯
  示‘ NO OS’消息”。
·用divvy(ADM)命令重建文件系統(tǒng)及對(duì)換區(qū),使用在13.2.1節(jié)“記錄根硬盤(pán)的布局”   
  中復(fù)制的信息。如果希望改變大小,必須保證它們大于以前的系統(tǒng)。
  如果硬盤(pán)或文件系統(tǒng)信息仍然有效,那么不必重建。例如,如果你的硬盤(pán)仍然有有效的hadtrk
  表,那么就不必用hadtrk進(jìn)行掃描。如果可能的話,可以完整地保留文件系統(tǒng)。
(7)你看到Making filesystems消息后不久,又回到根提示符,健人:
fsck / dev / hd0root
這條命令清理硬盤(pán)驅(qū)動(dòng)器上的根文件系統(tǒng)。
(8)健人:
   mount / dev / hd0root / mnt
   這條命令安裝硬盤(pán)上的根文件系統(tǒng)。
(9)插入根文件系統(tǒng)備份的第一卷并用下列命令恢復(fù)文件系統(tǒng):
cd / mnt
cpio –ivmkBud –I / dev /xxx
   其中xxx或rct0 ( l/4英寸盒式磁帶)或?yàn)閞ctmini (小型盒式磁帶)。


注意:如果當(dāng)你試圖恢復(fù)系統(tǒng)時(shí)遇到如下出錯(cuò)消息:
NOTICE: HTFS: NO space on dev ram ( 31 / 7)
Cpio: cannot write / _ BACKUP _ CONTENTS_ : …
…No space left on device (error 28)
這表示文件采用絕對(duì)路徑而不是相對(duì)路徑寫(xiě)入磁帶驅(qū)動(dòng)器,你試圖將引導(dǎo)文件系統(tǒng)裝入ramdisk 而不是裝入硬盤(pán)驅(qū)動(dòng)器,在cpio命令行中必須加入-A參數(shù):
      cpio –ivmkBudA –I / dev /xxx


(10)完成恢復(fù)操作之后,確保在根文件系統(tǒng)的頂層上有一個(gè) stand目錄。如果沒(méi)有,就用下面的命令創(chuàng)建
mkdir satand


   注意; 如果系統(tǒng)從SCO OpenServer Release 5以前的版本升級(jí)就不必建立引導(dǎo)文件系
    統(tǒng)( /stand ), 可以跳過(guò)12 ~ 14步.


(11)用下列命令卸下并清理剛剛恢復(fù)的文件系統(tǒng):
     cd /
     umount / dev / hd0root
     fsck / dev /hd0root
   你可能會(huì)看到下面的信息,可以忽略它:
      umount : warning : / dev /filesystem was not in mount table
(12)檢查引導(dǎo)文件系統(tǒng)/stand
    fsck / dev /boot
(13)安裝文件系統(tǒng)并改變目錄:
    mount /dev /boot /mnt
    cd / mnt
(14)插入引導(dǎo)文件備份磁帶,按照對(duì)根文件系統(tǒng)的做法進(jìn)行恢復(fù)。完成恢復(fù)操作后,卸
   下并檢查該文件系統(tǒng):
    cd /
    umount / mnt
    fsck / dev /boot
(15)從根磁盤(pán)重新啟動(dòng)系統(tǒng). 打開(kāi)計(jì)算機(jī)電源并且正常引導(dǎo).
(16)用Backup Manager 恢復(fù)所有二級(jí)文件系統(tǒng). 在完成這個(gè)過(guò)程中,系統(tǒng)將可以恢復(fù)到原
    來(lái)的狀態(tài).
13.4 系統(tǒng)崩潰
系統(tǒng)崩潰是指在沒(méi)有卸下文件系統(tǒng)或未進(jìn)行其它清理操作的情況下出現(xiàn)系統(tǒng)停機(jī)。也
稱(chēng)為“非正常關(guān)機(jī)”。系統(tǒng)崩潰有三種類(lèi)型:
·告急      當(dāng)系統(tǒng)遇到硬件問(wèn)題或核心不一致,以至系統(tǒng)不能繼續(xù)起作用,系統(tǒng)出
            現(xiàn)“告急”。
·電源故障  當(dāng)系統(tǒng)的電源失效時(shí),即使很短時(shí)間系統(tǒng)也會(huì)崩潰。
·操作崩潰  如果系統(tǒng)由于操作員出錯(cuò)而“掛起”,通常需要將系統(tǒng)復(fù)位并且重新引導(dǎo)   
            來(lái)解決這種問(wèn)題。從操作員引起的崩潰中恢復(fù)與從系統(tǒng)告急中恢復(fù)類(lèi)似。
            注意,如果一個(gè)系統(tǒng)中包含有從一個(gè)已關(guān)閉的系統(tǒng)中安裝的 NFS文件,
            那么此系統(tǒng)就好像它已被掛起;在這種情況下,重新引導(dǎo)那個(gè)已關(guān)閉的
            系統(tǒng),或者在可能情況下,從你的系統(tǒng)把那個(gè)文件系統(tǒng)卸下來(lái),就能解決
            這個(gè)問(wèn)題。
當(dāng)系統(tǒng)正常關(guān)閉時(shí),shutdown (ADM)程序終止所有精靈進(jìn)程,殺死活動(dòng)進(jìn)程,卸下所有
已安裝上的文件系統(tǒng),運(yùn)行sync(ADM)命令,并且告訴init(M)使系統(tǒng)進(jìn)入相應(yīng)的狀態(tài)(或單
用戶(hù)狀態(tài)或“安全關(guān)閉電源”)。
如果系統(tǒng)在這個(gè)關(guān)閉過(guò)程完成之前關(guān)閉,那么文件系統(tǒng)就有可能被破壞,從而導(dǎo)致數(shù)據(jù)
丟失。有些數(shù)據(jù)會(huì)由于高速緩存未被刷新到磁盤(pán)而丟失。操作系統(tǒng)會(huì)十分頻繁地將緩沖區(qū)的內(nèi)容刷新到磁盤(pán)中,所以因?yàn)榉钦jP(guān)閉而造成丟失的數(shù)據(jù)量也很少。不過(guò),文件系統(tǒng)被破壞是普遍問(wèn)題。如果根文件系統(tǒng)被破壞了,那么系統(tǒng)便不能正常工作。
當(dāng)系統(tǒng)出于某種原因崩潰時(shí),在系統(tǒng)日志本中記錄一些數(shù)據(jù)并重新引導(dǎo)系統(tǒng)。
13.4.1 從系統(tǒng)告急中恢復(fù)
要從系統(tǒng)告急狀態(tài)中恢復(fù):
(l)從控制臺(tái)屏幕上將完整的 PANIC消息和 EIP值(正在執(zhí)行的指令地址)抄錄到系統(tǒng)日
  志本中。關(guān)于確定EIP數(shù)值的操作,參見(jiàn)13.5.3節(jié)“獲取EIP值”。
(2)復(fù)位或重新開(kāi)機(jī),在Boot:提示符下按< Enter>重新引導(dǎo)系統(tǒng)。
(3)當(dāng)出現(xiàn)系統(tǒng)提示時(shí),回答 yes保存PANIC時(shí)的內(nèi)存副本。

   
   注意: 我們建議將這些信息轉(zhuǎn)儲(chǔ)到磁帶中,這樣你就對(duì)這次告急有一個(gè)記錄,以備需要時(shí)將
   它與以后再次發(fā)生PANIC是的信息進(jìn)行比較. 還可以把轉(zhuǎn)儲(chǔ)的數(shù)據(jù)送到SCO支持部門(mén),如在13.6.2節(jié)”從SCO獲得更多幫助”中所討論的那樣.


下面說(shuō)明了如何將數(shù)據(jù)轉(zhuǎn)儲(chǔ)到磁帶上。這個(gè)例子用的是/dev/rct0,但是如果系統(tǒng)上有
/dev/rctmini這樣的設(shè)備,使用它也能工作。
      
          There may be a system dump memory image in the swap device.
          Do you want to save it ? (y /n) y
         
          Use Floppy Drive 0 (/ dev /rfd0 ) by default
          Press ENTER to use default device.
          Enter valid Floppy Drive number to use if different
          Enter “t” to use tape
          >t

          Enter choice of tape drive:
          1 - / dev / rct0
          2 - / dev / rctmini
          n – no , QUIT
          >1
   
          Insert tape cartridge and press return ,or enter q to quit >
                  
          Wait
          Dd if = / dev / swap of = dev / rct0 / bs /=120b count =751 skip = 0
      
          Done . Use / etc /ldsysdump to copy dump from tape of diskettes
          Press return to sontinue>
         
  我們強(qiáng)烈推薦你使用磁帶而不是軟盤(pán)來(lái)保存系統(tǒng)轉(zhuǎn)儲(chǔ)映像。典型的 SCO系統(tǒng)有很多兆
  內(nèi)存,所以要好幾張軟盤(pán)才能保存一個(gè)內(nèi)存映像。如果沒(méi)有足夠的軟盤(pán),或者你插盤(pán)的
  順序弄錯(cuò)了就會(huì)出問(wèn)題?梢栽赿umpdev設(shè)備轉(zhuǎn)儲(chǔ)出的數(shù)據(jù)上執(zhí)行crash(ADM)命令,
  或者重新引導(dǎo)系統(tǒng)并且將這些數(shù)據(jù)復(fù)制到磁盤(pán)上進(jìn)行研究。參見(jiàn)“13.6節(jié)“用 CRASH
  命令(ADM)檢查內(nèi)存轉(zhuǎn)儲(chǔ)”。
  當(dāng)系統(tǒng)告急時(shí),系統(tǒng)將核心映像寫(xiě)到dumpdev設(shè)備上,它通常和swap設(shè)備一樣。一旦
  系統(tǒng)出現(xiàn)分頁(yè),數(shù)據(jù)就會(huì)馬上被重寫(xiě)。詳見(jiàn)(SCO OpenServer系統(tǒng)管理指南>(本系列叢
  書(shū)之三)中“定義默認(rèn)轉(zhuǎn)儲(chǔ)設(shè)備”)一節(jié)。
(4)如果你想用crash(ADM)命令研究轉(zhuǎn)儲(chǔ)映像,那么就要用ldsysdump (ADM)命令將映像復(fù)
   制到磁盤(pán)。在下面的對(duì)話樣本中,06May94就是將要復(fù)制的內(nèi)存轉(zhuǎn)儲(chǔ)映像的文件名,不
   過(guò)你可以使用任何具有某種含義的名字:

     #  cd / tmp
     #  ldsysdump 06May 94
   
     Use Floppy Drive 0( / dev /rfd0) by default
     Press ENTER to use the default
     Enter valid Floppy Drive number to use if different than default
     Enter “t”to use  tape drive
     >t

         Enter  choice of tape drive
1-      / dev /rct0
2-      /dev /rctmini
n –no,QUIT
>1

Insert tape cartridge and press return ,or enter q to quit . >

Wait.
Dd if =/dev / rct0 bs = 120b count = 751

System dump copied into image,Use crash(ADM)to analyze the dump
(5)在提示檢查根文件系統(tǒng)時(shí),回答”y”. 這樣就能檢查出, 并且在大多數(shù)情況下修復(fù)根文
件系統(tǒng)所遭受的破壞. 在極少數(shù)的情況下, 操作系統(tǒng)完全損壞了, 必須進(jìn)行恢復(fù)或重
裝. 詳見(jiàn)10.1.3節(jié)”清理文件系統(tǒng)”.
(6)對(duì)那些系統(tǒng)出現(xiàn)告急時(shí)已安裝上的文件系統(tǒng),執(zhí)行fsck(ADM)命令. 系統(tǒng)在進(jìn)入多用
   戶(hù)時(shí),將自動(dòng)對(duì)所有標(biāo)記為有問(wèn)題的文件系統(tǒng)執(zhí)行這個(gè)過(guò)程, 但是通過(guò)人工執(zhí)行fsck   
   命令,可以控制對(duì)所發(fā)現(xiàn)問(wèn)題的回答. 詳見(jiàn)fsck (ADM)手冊(cè)頁(yè).
(7)確證安全系統(tǒng)的完整性. 進(jìn)一步信息參見(jiàn)系統(tǒng)管理指南>(本系列叢  
   書(shū)之三)中”系統(tǒng)文件完整性檢查: 完整性(ADM)”.
13.4.2 掉電后的恢復(fù)
       如果沒(méi)有配置不間斷電源 UPS,那么在掉電時(shí)要關(guān)閉機(jī)器. 這樣在電源波動(dòng)時(shí)減少對(duì)系統(tǒng)可能的損壞。
一旦重新通電,如10.1.3節(jié)“清理文件系統(tǒng)”所述, 必須清理文件系統(tǒng).
13.4.3 自動(dòng)重新引導(dǎo)
可以把 SCO OPenServer系統(tǒng)配置成在告急或掉電后自動(dòng)重新引導(dǎo),有關(guān)內(nèi)容在10.5.1節(jié)“改變系統(tǒng)重新啟動(dòng)選項(xiàng)”中敘述。


   注意: 如果把系統(tǒng)設(shè)置成出現(xiàn)告急后自動(dòng)重新引導(dǎo),那么就會(huì)失去可以幫助你分析故障原   
   因的內(nèi)存轉(zhuǎn)儲(chǔ)數(shù)據(jù)

13.5 分析系統(tǒng)故障
    除了恢復(fù)系統(tǒng),分析系統(tǒng)故障的原因是十分重要的,這樣你可以在發(fā)生另一次系統(tǒng)故障前排除這些故障。 SCO系統(tǒng)提供許多工具幫助進(jìn)行這種分析。
13.5.1 自陷、故障及異常
    自陷、故障和異常是 CPU在為某個(gè)用戶(hù)進(jìn)程(在用戶(hù)態(tài)或系統(tǒng)態(tài)執(zhí)行)、在系統(tǒng)態(tài)執(zhí)行的系統(tǒng)進(jìn)程(例如,sched , vhand或bdflush之類(lèi)系統(tǒng)精靈進(jìn)程)或者中斷例程執(zhí)行指令時(shí)檢
測(cè)到的特殊條件。這些特殊條件使 CPU切換到系統(tǒng)態(tài),并且執(zhí)行核心的的自陷處理程序。
    如果自陷發(fā)生在用戶(hù)態(tài)(換句話說(shuō),如果自陷由用戶(hù)進(jìn)程造成),核心通常向該進(jìn)程發(fā)一
個(gè)信號(hào)。例如,如果一個(gè)進(jìn)程執(zhí)行了一條引起被零除錯(cuò)誤的指令, CPU就產(chǎn)生一個(gè)被零除異常,自陷處理程序最終要向該進(jìn)程發(fā)出一個(gè)SIGFPE(浮點(diǎn)出錯(cuò))信號(hào)(參見(jiàn)signal ( S)手冊(cè)貝
可得到所支持的信號(hào)的完整清單)。某些用戶(hù)異常是合法的,不產(chǎn)生信號(hào)。例如,一個(gè)進(jìn)程
可能要重新引用一個(gè)有效的指針,而該指針標(biāo)識(shí)的是該進(jìn)程數(shù)據(jù)段中一片已調(diào)出了主存儲(chǔ)
器的數(shù)據(jù)。CPU則產(chǎn)生一個(gè)頁(yè)故障,自陷處理程序就將此頁(yè)數(shù)據(jù)從對(duì)換區(qū)裝人內(nèi)存,并且重新開(kāi)始執(zhí)行引起出錯(cuò)的指令。在這種情況下,自陷處理程序就不向進(jìn)程發(fā)出信號(hào)。
然而,如果一個(gè)進(jìn)程引用一個(gè)無(wú)效的指針(該指針可能已被破壞或未初始化),自陷處理
程序?qū)⒋_定不能從文件系統(tǒng)或?qū)Q區(qū)中裝人相應(yīng)的分頁(yè),并且向該進(jìn)程發(fā)出一個(gè)SIGSEGV
(段損壞)信號(hào)。
除了在少數(shù)特殊場(chǎng)合下,不允許核心(換句話說(shuō),在執(zhí)行系統(tǒng)調(diào)用、系統(tǒng)進(jìn)程和中斷例程時(shí))“自已”產(chǎn)生自陷、故障和異常。如果核心不產(chǎn)生出錯(cuò)消息,那么情況就很?chē)?yán)重,系統(tǒng)不能繼續(xù)運(yùn)行。自陷處理程序調(diào)用核心內(nèi)部的一個(gè)特殊panic ( )例程,此例程中止系統(tǒng)執(zhí)行。
當(dāng)系統(tǒng)由于尋址錯(cuò)誤而產(chǎn)生告急時(shí), CUP寄存器的當(dāng)前內(nèi)容將顯示在控制臺(tái)上,該機(jī)器存儲(chǔ)器的內(nèi)容寫(xiě)到dumpdev設(shè)備(通常是對(duì)換設(shè)備)中,并且系統(tǒng)產(chǎn)生一個(gè)對(duì)核心 haltsys( )
函數(shù)的內(nèi)部調(diào)用.
13.5.2控制臺(tái)告急信急
寫(xiě)到控制臺(tái)上的信息通常包括CPU寄存器的當(dāng)前內(nèi)容,以及核心出錯(cuò)消息和自陷號(hào),為分析告急情況提供了有價(jià)值的信息。同樣的顯示信息也可以通過(guò)在已轉(zhuǎn)儲(chǔ)的設(shè)備上執(zhí)行
crash(ADM)命令的panic功能得到。注意某些系統(tǒng)崩潰并不產(chǎn)生寄存器的轉(zhuǎn)儲(chǔ)。
系統(tǒng)出現(xiàn)告急時(shí)控制臺(tái)的顯示和下面的內(nèi)容相似。行號(hào)僅作參考,并不出現(xiàn)在實(shí)際的顯示內(nèi)容中。

1  PANIC:                NEED NEW DISPLAY
2  cr0 0x FFFFFFEB cr2    0x0 0FFFFFF  cr3 0x00002000  tlb   0x00500E80
3  ss  0x00000038  uesp   0xD0119554  ef1 0x00010282   ipl  0x00000000
.......

8 PANIC : Kernel mode trap . Type ox0000000E
9 Trying to dump NNNN pages
10 &..........................................................
11&.............................................................
12 NNNN pages dumped
13 * * safe to power off
14      - or -
15 * * press Any key to reboot
NNNN的值取決于系統(tǒng)所配置的內(nèi)存總量,在屏幕上顯示的每個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)64K
的內(nèi)存塊(或者16個(gè)4K的頁(yè))。因此,內(nèi)存配置較多的系統(tǒng)就比內(nèi)存配置較少的系統(tǒng)有更
多的點(diǎn)。
13.5.3獲取EIP值
    EIP(指令指針)值可以通過(guò)系統(tǒng)告急時(shí)顯示在控制臺(tái)上的 CPU寄存器的內(nèi)容計(jì)算得出。EIP值是核心在出現(xiàn)告急時(shí)正在執(zhí)行的指令的地址。
要計(jì)算EIP值,將代碼段(寄存器)和指令指針(eip寄存器)的寄存器值聯(lián)起來(lái)成為一對(duì)數(shù)值,該值用逗號(hào)分隔,去掉前面的零。在上面的樣本中,這兩個(gè)值在第4行。cs的值為0xc00000158,eip的值為0xD007448, 因此,EIP值為158: D 0070488。
可以比較幾次告急的值來(lái)確定該告急是由軟件還是硬件原因造成的。三次或更多次同樣的EIP值通常表示一個(gè)軟件上的問(wèn)題;連續(xù)幾次告急具有不同的EIP值,表示硬件上的問(wèn)
題,如內(nèi)存板損壞。這并沒(méi)有固定的規(guī)則,例如,有缺陷的RAM能產(chǎn)生多次具有相同的EIP
值的告急。
13.5.4檢查出錯(cuò)消息
在大多數(shù)情況下,PANIC出錯(cuò)消息顯示在控制臺(tái)上(例子中的第8行)?梢栽冢痷sr/adm/ messages文件中查找告急之前的其它消息,其中可能包含有價(jià)值的關(guān)于什么地方出錯(cuò)的信息。
核心出錯(cuò)消息報(bào)告驅(qū)動(dòng)程序出錯(cuò)及核心其它部分出現(xiàn)的錯(cuò)誤,例如,進(jìn)程調(diào)度子系統(tǒng)和
文件子系統(tǒng)。經(jīng)常監(jiān)控這些消息是防止出現(xiàn)嚴(yán)重系統(tǒng)問(wèn)題的一個(gè)重要步驟;在系統(tǒng)錯(cuò)誤出
現(xiàn)之后研究這些消息是檢修系統(tǒng)的一個(gè)重要組成部分。閱讀PANIC出錯(cuò)消息能得到有關(guān)該系統(tǒng)故障原因的有價(jià)值的信息。
核心出錯(cuò)消息通常有以下格式:
      class : [ ddname :] [ routine] message
class是以下之一:CONFIG,NOTICE,WARNING ,FATAL或PANIC。許多這樣的消息都?xì)w檔在messages(M)手冊(cè)頁(yè)中。
class類(lèi)型為INIT的消息由 init(M)進(jìn)程產(chǎn)生,并歸檔在 init(M)手冊(cè)頁(yè)中。這些消息通常在系統(tǒng)初始化過(guò)程中產(chǎn)生。有少數(shù)init消息指出了出錯(cuò)條件,但更多的只是通告性的消息。
ddname指出有問(wèn)題的驅(qū)動(dòng)程序或子系統(tǒng)的名字。實(shí)際的外部設(shè)備通常由一對(duì)數(shù)字表示,形式為major /minor。它標(biāo)識(shí)錯(cuò)誤發(fā)生的外部設(shè)備號(hào)。 routine選項(xiàng)指出檢測(cè)到該條件的子系統(tǒng);出錯(cuò)消息的這些部分主要用來(lái)幫助技術(shù)人員追蹤困難的系統(tǒng)問(wèn)題。
PANIC消息通常不記人/usr/adm/messages文件,但是告急出現(xiàn)之前所產(chǎn)生的其它消息通常都被記人日志,以提供關(guān)于該告急原因的有價(jià)值信息。PANIC消息通常顯示在系統(tǒng)控
制臺(tái)上或者可以用crash(ADM)命令的panic功能查看。
    在13.5.2節(jié)“控制臺(tái)告急信息”中的控制臺(tái)轉(zhuǎn)儲(chǔ)示例中,PANIC消息沒(méi)有遵循標(biāo)準(zhǔn)格式。這通常意味著錯(cuò)誤是由主核心代碼而非驅(qū)動(dòng)程序引起。在這種情況下,該消息包含有引起該告急的自陷類(lèi)型的定義。這些自陷號(hào)的意義在/usr/include/sys/trap.h 文件中定義
并且歸檔到messages(M)手冊(cè)頁(yè)。在這種情況下,出現(xiàn)的是調(diào)頁(yè)違例,這通常發(fā)生在驅(qū)動(dòng)程
序或其它核心代碼引用游離指針的時(shí)候。
13.5.5 檢查系統(tǒng)文件中的出錯(cuò)歷史
系統(tǒng)管理許多包含歷史信息的文件,可以提供查找出問(wèn)題原因的線索。最有用的幾個(gè)文件是:
/usr/adm/messages   由核心記錄的所有控制臺(tái)信息的日志,包括出錯(cuò)消息及系   
                       統(tǒng)啟動(dòng)信息。
/etc/conf/cf.d /config.h/  核心參數(shù)及其當(dāng)前值的清單。同樣的信息也可以用
                              configure(ADM)命令查看。當(dāng)系統(tǒng)繪出CONFIG出錯(cuò)
                              消息時(shí),這種信息是很有用的。
   /dew/srting/cfg     己安裝的驅(qū)動(dòng)程序清單。同樣的信息也可以用hwconfig(C)命令
                         查看。
13.5.6 檢查系統(tǒng)配置
系統(tǒng)配置故障可以造成許多問(wèn)題,系統(tǒng)可能沒(méi)有正確鏈接,進(jìn)程可能失敗,或者只是系統(tǒng)以某種奇特方式運(yùn)行。
如果在調(diào)整核心參數(shù)或者增加新的軟件包或硬件設(shè)備后遇到系統(tǒng)問(wèn)題,請(qǐng)檢查系統(tǒng)配
置。所有這些活動(dòng)都記錄在系統(tǒng)日志本中。你也可以研究記錄在/usr/adm/messages文件
中的啟動(dòng)統(tǒng)計(jì)數(shù)據(jù);如果核心的大小在兩次引導(dǎo)之間有改變,就說(shuō)明配置已被修改。操作系
統(tǒng)包括許多命令,幫助你檢查系統(tǒng)配置的方方面面。其中較為重要的一些命令如下:

/etc/conf/cf.d/configure  — x |more
核心參數(shù)的值。也可以直接查看/etc/conf/cf.d/config.h文件中的信息。
可以用 sar(ADM)命令獲得關(guān)于可調(diào)整資源是如何作用的性能統(tǒng)計(jì)數(shù)據(jù)。crash
(ADM)命令的strstat功能或 netstat  -m命令顯示所配置的STREAMS資源的統(tǒng)計(jì)數(shù)
據(jù),包括自最近一次系統(tǒng)引導(dǎo)起已溢出的結(jié)構(gòu)的信息。

/etc/sysdef
某些影響核心數(shù)據(jù)結(jié)構(gòu)的可調(diào)參數(shù)的當(dāng)前值。

/usr/bin/swconfig -p
已安裝或已從系統(tǒng)中刪除的軟件包的歷史和確認(rèn)。

/usr/bin/hwconfig -h
已安裝的驅(qū)動(dòng)程序。某些在/etc/rc.d腳本中安裝的內(nèi)存映像及被排除在外的驅(qū)
動(dòng)程序。這個(gè)信息也可以在/dev/string/cfg中看到。

/etc/custom
軟件包是否已全部或部分安裝。

/etc/custom  –v   quick SCO :unix RTS –x
確認(rèn)運(yùn)行系統(tǒng)文件的存在、權(quán)限及屬主特性。-x標(biāo)志說(shuō)明要進(jìn)行錯(cuò)誤修復(fù)(在可
能存在的地方)。最重要的是,這條命令修復(fù)任何已損壞從而導(dǎo)致不能訪問(wèn)這些
文件的符號(hào)鏈接。上面的命令僅檢查操作系統(tǒng)運(yùn)行軟件包。要檢查整個(gè)系統(tǒng),使
用命令:
/etc/custom  - V quick  -x
custom 將檢查操作輸出的副本保留在 custom.VerifyReport中。還有其它檢查操作
選項(xiàng),以完成不同級(jí)別的檢查。

/usr/bin/displaypkg
顯示用installpkg( ADM)實(shí)用程序安裝的軟件的有關(guān)信息。這類(lèi)軟件包不在
custom(ADM)或swconfig(ADM)報(bào)告中出現(xiàn)。

/tcb/bin/fixmog  -v
糾正系統(tǒng)文件權(quán)限,以匹配授權(quán)數(shù)據(jù)庫(kù)。使用-i選項(xiàng)可以在交互方式下執(zhí)行,因?yàn)?br /> 系統(tǒng)在改正任何不一致情況之前都會(huì)提示你。

/tcb/bin/cps pathname
與fixmog類(lèi)似,但僅檢查指定的文件,而不是所有的系統(tǒng)文件。
13.6 使用 crash( ADM)命令檢查內(nèi)存轉(zhuǎn)儲(chǔ)
crash(ADM)命令提供大量有用信息,特別是在安裝驅(qū)動(dòng)程序或進(jìn)行其它核心開(kāi)發(fā)工作
時(shí)要對(duì) UNIX系統(tǒng)內(nèi)部構(gòu)造有很好的理解,才能充分利用所提供的信息。本節(jié)中的注釋使你
能夠從crash輸出中獲得關(guān)于系統(tǒng)告急的一些基本信息。
要在/dev/swap設(shè)備的內(nèi)存轉(zhuǎn)儲(chǔ)上運(yùn)行crash (在系統(tǒng)重新引導(dǎo)進(jìn)入單用戶(hù)態(tài)之后,但
在進(jìn)入多用戶(hù)態(tài)之前)須發(fā)出一個(gè)類(lèi)似下面的命令。該命令假定系統(tǒng)在發(fā)生告急時(shí)引導(dǎo)的是
/unix.test 核心映像,并且將所有輸出保存到/tmp/crash.out 文件中:

/etc/crash  -d  /dev/swap  -n /unix.test  -w /tmp/crash..out

例如,為了在已由ldsysydump(ADM)命令根據(jù)/unix核心映像寫(xiě)到/tmp/06may94文
件的內(nèi)存轉(zhuǎn)儲(chǔ)副本上運(yùn)行crash,使用下面的命令
   /etc/crash  -d  /tmp/06may94  -w  /tmp/crash.out
13.6.1 研究告急
下面的清單勾畫(huà)出確定引起系統(tǒng)告急的核心成分的過(guò)程。
( l) 必須在/etc/default/boot 文件中設(shè)置PANICBOOT:No,才能進(jìn)行這個(gè)工作。
(2) 當(dāng)系統(tǒng)出現(xiàn)告急時(shí),從控制臺(tái)顯示中記下告急的類(lèi)型、EIP值以及按頁(yè)計(jì)算的內(nèi)存轉(zhuǎn)儲(chǔ)
    大小。
(3) 當(dāng)機(jī)器重新引導(dǎo)時(shí),保存dump設(shè)備上 的核心轉(zhuǎn)儲(chǔ)映像。
(4) 使機(jī)器進(jìn)人單用戶(hù)態(tài)。
(5) 在映像上運(yùn)行crash (ADM)。
(6) 在crash 中使用panic命令,找到發(fā)生告急的例程。要確保自陷類(lèi)型和 EIP與告急
發(fā)生后從控制臺(tái)屏幕抄錄的自陷類(lèi)型和 EIP相匹配。
(7) 注意系統(tǒng)發(fā)生告急時(shí)正在執(zhí)行的例程名字(符號(hào)名),這是 Kernel Stack before
Trap行下第一個(gè)列出的函數(shù)。
(8) 退出crash命令。
(9) 用strings(C)或nm(CP)來(lái)確定該例程所在的驅(qū)動(dòng)程序。你可以執(zhí)行如下腳本,此
腳本使用strings命令。

for FILE in ‘find /etc/conf/pack.d –name ‘*.[oa]’  - print’
do
   strings $ FILE|grep $1 && echo $FILE
done

如果此腳本作為findpanic安裝,你可以帶一個(gè)給出核心例程名字的參數(shù)運(yùn)行該命令。
findpanic  symbol_name
該腳本輸出如下:
routine_name
/etc/conf/pack.d/foo/Driver.o
這說(shuō)明 fm驅(qū)動(dòng)程序可能造成了系統(tǒng)告急。
13.6.3  從 SCO獲得更多幫助
如果你不能確定系統(tǒng)告急的起因,你可能需要向 SCO技術(shù)支持部門(mén)尋求幫助。除了安
裝檢查清單和在“求助之前”中要求你提供的其它配置信息外,還應(yīng)準(zhǔn)備一份內(nèi)存轉(zhuǎn)儲(chǔ)清單,
這對(duì)于分析故障原因是很有用的。為了提供這些資料:
(1)將內(nèi)存轉(zhuǎn)儲(chǔ)保存到磁帶上,并且按照“從系統(tǒng)告急中恢復(fù)”中的討論用 ldsysdump(ADM)
    命令將它恢復(fù)到磁盤(pán)上。
   (2) 用與下面類(lèi)似的命令序列從轉(zhuǎn)儲(chǔ)中抽出關(guān)鍵的故障診斷報(bào)告:
        #crash –d /tmp/06may94 –w /tmp/crash.out
    > panic
    > tracre
    > user
    > quit
記住,“>”提示符是由 crash命令產(chǎn)生的,所以不用錄入。這個(gè)命令序列將創(chuàng)建一
個(gè)包含crash命令的panic,trace和user功能輸出的/tmp/crash.out文件。
(3) 打印出/tmp/crash.out 文件,傳真或用電子郵件把該文件傳送給技術(shù)支持人員。
13.7 通常的系統(tǒng)范圍內(nèi)的問(wèn)題
下面清單總結(jié)了一些較為普遍的系統(tǒng)范圍內(nèi)可能產(chǎn)生的問(wèn)題:
· 運(yùn)行圖形終端或許多不同的網(wǎng)絡(luò)協(xié)議的系統(tǒng)經(jīng)常需要調(diào)整STREAMS可調(diào)參數(shù)的
值。過(guò)多的STREAMS資源會(huì)在控制臺(tái)上及/usr/adm/messagee文件產(chǎn)生出錯(cuò)消息,
并且可能引起圖形屏幕破壞或?qū)е戮W(wǎng)絡(luò)操作失敗。這種情況可能產(chǎn)生許多奇怪情
況,譬如圖形顯示器中隨機(jī)出現(xiàn)的豎線。如果系統(tǒng)時(shí)常出現(xiàn)奇異情況,使用 netstat
(TC) -m命令或者crash(ADM)中的strstat函數(shù)查看STREAMS資源是否有溢出。
· 如果來(lái)自系統(tǒng) A的文件是以 NFS安裝到系統(tǒng) B上,而系統(tǒng) A已被中止,系統(tǒng) B可
    能看上去不起作用了。假如有好幾個(gè)系統(tǒng) B上的進(jìn)程試圖訪問(wèn)以 NFS安裝的文件,情
況尤其是如此;大部分系統(tǒng)資源將花費(fèi)在企圖訪問(wèn)已丟失的文件并記錄失敗信息的操作
上。卸下 NFS文件或重新引導(dǎo)系統(tǒng) A都能解決這個(gè)問(wèn)題;在大多數(shù)情況下,不必重新
引導(dǎo)系統(tǒng) B。
· 除非你正在測(cè)試系統(tǒng)上的新驅(qū)動(dòng)程序,否則控制臺(tái)上和/usr/adm/messages文件中許
多看起來(lái)與正在執(zhí)行的進(jìn)程無(wú)關(guān)的模糊的核心消息,可說(shuō)明一個(gè)關(guān)鍵系統(tǒng)構(gòu)件比如內(nèi)存
板或根文件系統(tǒng)所在的磁盤(pán)上的硬件出現(xiàn)故障。
· 如果在 DOS下內(nèi)存映像的外設(shè)工作狀況良好,而在 UNIX(系統(tǒng)下出現(xiàn)錯(cuò)誤,那么試
一下按最一般要求重裝設(shè)備及驅(qū)動(dòng)程序。換句話說(shuō),將 VGA卡放進(jìn)一個(gè)8位插槽
中;關(guān)閉RAM緩存、磁盤(pán)緩存及影子RAM,使用 l等待狀態(tài),在卡總線上用 ATCLK
(* Mhz)。任何需要用軟配置的卡(如, wd8003e或3c503)都必須在 DOS下進(jìn)行檢
查。把所有共享 IRQ移到非共享位置,如果可以避免的話,不要使用 IRQ。檢查端
口地址重疊,并且牢記智能的內(nèi)存映像的串行卡不能緩存它們自己的內(nèi)存映像。
當(dāng)設(shè)備按一般要求安裝,就應(yīng)該能夠正常工作,然后就可以恢復(fù)特殊功能,一次一
項(xiàng),直到你確定哪項(xiàng)功能造成故障。
13.8 cron,at和 batch的故障診斷
    cron( C)是用來(lái)調(diào)度作業(yè)的鬧鐘精靈進(jìn)程,使其在設(shè)定時(shí)間自動(dòng)運(yùn)行。At和batch 命令可以由用戶(hù)用來(lái)運(yùn)行一次非交互式作業(yè)。其它信息參見(jiàn) at(C)手冊(cè)頁(yè)。
13.8.1 cron精靈進(jìn)程不運(yùn)行
cron精靈進(jìn)程在指定的日期和時(shí)間執(zhí)行由 at( C),babch( C)和crontab( C)提交的命令。
(cron精靈進(jìn)程是在系統(tǒng)開(kāi)始進(jìn)行多用戶(hù)狀態(tài)時(shí)由/etc/rc2. d目錄下的一個(gè)腳本自動(dòng)啟動(dòng)
的)。如果cron目前沒(méi)有運(yùn)行,而你試圖由這些程序之一提交一項(xiàng)作業(yè),系統(tǒng)顯示下列
消息:
cron  may  not  be  running — call your system  administrator
    cron停止運(yùn)行的另一個(gè)標(biāo)志就是先前安排好的作業(yè)沒(méi)有執(zhí)行。使用下面命令查看
cron精靈進(jìn)程是否正在運(yùn)行:
ps  -ef  grep| crnn
如果沒(méi)有 cron進(jìn)程,該精靈進(jìn)程就不在運(yùn)行。要啟動(dòng)cron ,以root 注冊(cè)并輸入下面命令
sd  cron
    如果這樣還不能啟動(dòng)cron進(jìn)程,干脆重新引導(dǎo)系統(tǒng)。在初啟過(guò)程中,系統(tǒng)顯示如下消息:
  ! ***  cron started *** pid =140 wed aug 31 14:02:27 PDT 1999
  用 at,banch和cronntab調(diào)度的作業(yè)此時(shí)應(yīng)該可以正常執(zhí)行。如果 at和 batch繼續(xù)報(bào)告出錯(cuò)消息,參閱 “at命令失。翰荒芨淖冏鳂I(yè)方式”以便獲取更多信息。


注意:如果持續(xù)出現(xiàn)這個(gè)問(wèn)題,可以在/etc/default/cron 文件中輸入CRONLOG=YES,
      啟動(dòng)cron 日志。Cron 啟動(dòng)之后/usr/spool/cron/log 文件將保留所有cron 事務(wù)的記錄。
      這些信息可能幫助確定cron終止的原因。
13.8.2 at命令失敗:不能改變作業(yè)方式
如果你沒(méi)有核心特權(quán),chmodsugid,在用戶(hù)試圖調(diào)at( C)和batch( C)命令時(shí)系統(tǒng)顯示
下面消息:
    Can’t  change  mode of job
要授予chmodsugid 特權(quán),使得該用戶(hù)可以使用 at命令.
要使所作的改變發(fā)生作用,用戶(hù)必須注銷(xiāo),然后再注冊(cè)。
這種情況和用戶(hù)未被授權(quán)使用 at的情況不同。如果未經(jīng)授權(quán)的用戶(hù)試圖使用 at,系統(tǒng)
顯示如下:
    at: you are not authorized to use at. Sorry .
   要允許用戶(hù)使用 at.
13.9失控的進(jìn)程
失控的進(jìn)程”是指進(jìn)入無(wú)限循環(huán)并且不斷創(chuàng)建新進(jìn)程的進(jìn)程。這樣造成 proc進(jìn)程表
溢出,引起其它進(jìn)程失敗并產(chǎn)生 No more processes:出消信息。
失控的進(jìn)程可以造成鍵盤(pán)死鎖,阻止系統(tǒng)接受用戶(hù)鍵人的任何信息。因此,失控進(jìn)程不
能從調(diào)用終端上終止。
要想繼續(xù)工作,你必須確定并停止失控的進(jìn)程:
( l)在一個(gè)未死鎖終端(或控制臺(tái)屏幕)上以 root注冊(cè)。
(2)鍵入ps -ef命令并按<Enter>。系統(tǒng)顯示當(dāng)前所有進(jìn)程的全部信息及其進(jìn)程標(biāo)識(shí)
  號(hào)(PIDs)PID。找出失控進(jìn)程的PID。你可以看到程序花費(fèi)的 CPU時(shí)間超出了合理
  范圍,或者發(fā)現(xiàn)許多具有同一父進(jìn)程的進(jìn)程正在執(zhí)行同一個(gè)程序。
(3)鍵人 kill PID 命令。該程序應(yīng)在數(shù)秒內(nèi)停止。如果該進(jìn)程仍不停止,輸入 kill  -9
   PID 命令。
    最后那個(gè)命令可能留下臨時(shí)文件,它們通常在程序正常終止時(shí)被刪除;或者留下沒(méi)有回
顯的終端。
如果在你輸入帶有—9選項(xiàng)的 kill命令之后,失控進(jìn)程仍不停止,那么該進(jìn)程就是不可殺死的。如果不可殺死進(jìn)程是一個(gè)用戶(hù)的 shell程序,你必須停止該進(jìn)程,該用戶(hù)才能繼續(xù)工作 .要停止不可殺死進(jìn)程,必須引導(dǎo)系統(tǒng),使用如下步驟:
( l)以root注冊(cè),并且用wallADM)向其它系統(tǒng)用戶(hù)發(fā)消息,通知他們將要關(guān)機(jī)。
(2)當(dāng)所有用戶(hù)都退出注冊(cè),鍵人 init  6關(guān)機(jī)。接著返回到根提示符(#),但是關(guān)機(jī)過(guò)
        程馬上就開(kāi)始了。
  (3)在 Boot:提示處按< Enter>,重新引導(dǎo)系統(tǒng)。
  當(dāng)你再執(zhí)行 ps時(shí),就不會(huì)再顯示不可殺死進(jìn)程了。















第14章 系統(tǒng)性能與核心參數(shù)
在Unix運(yùn)行過(guò)程中,對(duì)系統(tǒng)性能進(jìn)行監(jiān)護(hù)和管理是系統(tǒng)管理員的主要職責(zé)。系統(tǒng)性能管理主要是指對(duì)系統(tǒng)資源進(jìn)行合理安排與分配。在系統(tǒng)負(fù)載較重的情況下,充分發(fā)揮系統(tǒng)的效率是非常重要的。
14.1系統(tǒng)性能監(jiān)護(hù)
sar命令,sar是unix系統(tǒng)中,進(jìn)行系統(tǒng)維護(hù)的重要工具之一。報(bào)告系統(tǒng)的活動(dòng)情況:
文件的讀寫(xiě).系統(tǒng)調(diào)用的使用.串口.CPU利用.內(nèi)存使用狀況.進(jìn)程活動(dòng)以及IPC有關(guān)活動(dòng)等。
如核心表中沒(méi)有sar ,則執(zhí)行 # /usr/lib/sa/sar_enable –y   重連核心
  sar [選項(xiàng)] [-A] [ -o file] t [n]
其中n與t組合,t為采樣間隔,n為采樣次數(shù) ,-ofile將執(zhí)行結(jié)果以二進(jìn)制存放在文件file中         
  sar [選項(xiàng)] [-A] [-s time] [-e time] [-i sec] [ -f fiel]
其中 –s為起始時(shí)間 –e為終止時(shí)間,-I表示在多少秒的間隔選擇記錄
選項(xiàng)
作用
選項(xiàng)
作用
-A
所有的報(bào)告總和
-O
異步AIO
-a
文件讀寫(xiě)報(bào)告
-p
調(diào)頁(yè)活動(dòng)
-B
附加的buffer cache使用情況
-q
運(yùn)行隊(duì)列和交換隊(duì)列的平均長(zhǎng)度
-b
Buffer cache使用情況
-R
報(bào)告進(jìn)程的活動(dòng)
-c
系統(tǒng)調(diào)用使用報(bào)告
-r
沒(méi)有使用的內(nèi)存頁(yè)面和硬盤(pán)塊
-d
硬盤(pán)使用報(bào)告
-u
CPU利用
-g
有關(guān)串口I/O情況
-v
進(jìn)程.i節(jié)點(diǎn).文件和鎖表狀態(tài)
-h
關(guān)于buffer使用統(tǒng)計(jì)數(shù)字
-w
系統(tǒng)交換活動(dòng)
-m
IPC消息和信號(hào)燈活動(dòng)
-y
TTY設(shè)備活動(dòng)
-n
命名cache



1.超常的頁(yè)面活動(dòng)
用戶(hù)進(jìn)程在運(yùn)行過(guò)程中,占用內(nèi)存的部分空間和硬盤(pán)上的交換區(qū)。如果用戶(hù)進(jìn)程要求使用的內(nèi)存空間數(shù)量得不到滿(mǎn)足,則進(jìn)程的頁(yè)面將被寫(xiě)到交換區(qū)中。在內(nèi)存與硬盤(pán)之間傳送頁(yè)面,既要花費(fèi)硬盤(pán)時(shí)間,也要花費(fèi)CPU時(shí)間。
    sar –p  頁(yè)面故障vflt/s > 100
sar –q  %swpocc > 20交換活動(dòng)頻繁
sar –r  自由內(nèi)存freemem
sar –u  %sys > 60
sar –w  Swpin/s > 1
swap –l  
方法:減少系統(tǒng)buffer cache/stream buffer (流緩沖區(qū))
在unix核心表產(chǎn)生溢出現(xiàn)象時(shí),都會(huì)出現(xiàn)類(lèi)似的顯示內(nèi)容,其普通格式如:
CONFIG :錯(cuò)誤描述信息(可調(diào)核心參數(shù)=n execeeded)      
如 CONFIG :timeout – Timeout table overflow(NCALL=n execeeded)      
這表名,呼出(call-out)核心表出現(xiàn)溢出。
14.2 系統(tǒng)核心參數(shù)
1.可調(diào)核心資源
  unix的核心參數(shù)用來(lái)管理和控制資源的分配。共同點(diǎn)是經(jīng)常被使用.釋放并循環(huán)往復(fù)。
在系統(tǒng)安裝后,核心參數(shù)初始為系統(tǒng)默認(rèn)值。這些默認(rèn)值對(duì)一般應(yīng)用環(huán)境是適合的。因此,不是特殊要求,不必調(diào)整核心參數(shù)!
2 . 核心參數(shù)文件
a.     /etc/conf/cf.d/mtune
  包含的是在系統(tǒng)初次安裝時(shí)系統(tǒng)全部可調(diào)參數(shù)的值,它門(mén)可以作為可調(diào)參數(shù)的
          參考值。
          格式:參數(shù)名   默認(rèn)值  最小值  最大值
b.     /etc/conf/cf.d/stune
    包含的是那些經(jīng)過(guò)調(diào)整指定的參數(shù)及它們的值
      格式:參數(shù)名   值

注:可通過(guò)編輯文件mtune,stune的方式來(lái)修改核心參數(shù), 但必須使用重新
連接核心


3 . 核心資源配置命令
unix系統(tǒng)提供了專(zhuān)門(mén)調(diào)整核心參數(shù)的命令(configure)與系統(tǒng)管理員shell修改核心的命令行:
1./etc/conf/cf.d/configure
顯示系統(tǒng)中全部可配置的資源/etc/conf/cf.d/configure –f,
/etc/conf/cf.d/mtune顯示文件 /etc/conf/cf.d/mtune   
2. /etc/conf/bin/idtune參數(shù)  值   
菜單方式:
        從root注冊(cè),進(jìn)入scoadmin—Kernel/Hardware—Tune Parameter,選擇修改項(xiàng)
        重新連接核心的方法:  /etc/conf/bin/idbuild 或 /etc/conf/cf.d/link_unix
3.  可調(diào)核心參數(shù)
        1).buffers management   緩存區(qū)管理
        2).Processes and paging    進(jìn)程與頁(yè)面  
        3).TTYS
        4).name  
        5).AIO       異步輸入/輸出參數(shù) 
        8).security    與安全有關(guān)的參數(shù) 
        12).streams    流是unix系統(tǒng)中為處理通訊協(xié)議而提供的一個(gè)標(biāo)準(zhǔn)化的接口
        13).message queues 包含了一組與進(jìn)程間通訊消息相關(guān)的可調(diào)核心參數(shù)。
        15).semaphores 包含的是與進(jìn)程間通訊消息信號(hào)相關(guān)聯(lián)的可調(diào)核心參數(shù)。
        16).shared data包含一組與進(jìn)程間通訊共享內(nèi)存相關(guān)聯(lián)的可調(diào)核心參數(shù)。
        18).    Miscellaneous(混合的) device drivers and hardware parameters
不同硬件設(shè)備,其中包含DMA .VGA .顯示.鍵盤(pán).協(xié)處理器和硬盤(pán)控制卡等 

14.3 交換區(qū)的管理
傳統(tǒng)上, unix 的交換區(qū)是在安裝系統(tǒng)過(guò)程中確定的。它的大小一經(jīng)指定則不能在改變,除非重新安裝系統(tǒng)。在Release 5中,swap命令可以把用作第一個(gè)或附加的系統(tǒng)交換空間配置作為一個(gè)文件,稱(chēng)為交換文件。這樣就可以在系統(tǒng)運(yùn)行中增加交換空間。系統(tǒng)中,新增加的驅(qū)動(dòng)程序marry被用來(lái)把交換文件與塊設(shè)備結(jié)合起來(lái),這個(gè)塊設(shè)備就是核心所需的交換區(qū)。  
swap命令可對(duì)交換區(qū)進(jìn)行增加.刪除.監(jiān)控。
語(yǔ)法結(jié)構(gòu):
1.增加交換區(qū)
      #swap  -a swapdev  swaplow swaplen
      其中:
      swapdev特殊設(shè)備的名字,如/dev/dsk/0s1
      swaplow交換區(qū)的起始偏移塊號(hào)
      swaplen交換區(qū)的長(zhǎng)度(以塊為單位,塊長(zhǎng)為512B)
    2.刪除交換區(qū)
      #swap  -d swapdev  swaplow
3.顯示交換區(qū)的信息
#swap  -l
注: 使用swap命令增加交換區(qū)空間時(shí),不要與其它子區(qū)產(chǎn)生重迭現(xiàn)象。因?yàn)槭褂眠@個(gè)命令時(shí),系統(tǒng)不對(duì)是重迭進(jìn)行檢查,也沒(méi)有提示信息。即增加交換區(qū)可能破壞其它系統(tǒng)文件
14.4.動(dòng)態(tài)核心表
可動(dòng)態(tài)調(diào)整的核心參數(shù)主要有:
     MAX_PROC     進(jìn)程表              
     MAX_REGION   區(qū)表(region)   
     MAX_FILE     打開(kāi)文件表      
     MAX_INODE    I節(jié)點(diǎn)表         
     MAX_DISK     硬盤(pán)驅(qū)動(dòng)器表     
     MAX_MOUNT    文件系統(tǒng)安裝表   
MAX_FLCKREC  文件記錄加鎖表     
     TBLPAGES     定義用于動(dòng)態(tài)表的最大內(nèi)存頁(yè)面數(shù)   
     TBLDMAPAGES  定義用于動(dòng)態(tài)表的最大可直接訪問(wèn)的內(nèi)存頁(yè)面數(shù)
     TBLLIMIT     任意一張動(dòng)態(tài)表可能達(dá)到TBLPAGES值或TBLDMAPAGES
                  值的百分比
     TBLSYSLIMIT  如果TBLPAGES的值是0,這個(gè)參數(shù)定義所有的動(dòng)態(tài)表合在
                  一起使用的最大內(nèi)存數(shù)量
     TBLMAP       虛擬內(nèi)存變換空間地址單元的數(shù)量   

當(dāng)設(shè)置的動(dòng)態(tài)核心表長(zhǎng)度不夠時(shí),可以在系統(tǒng)運(yùn)行狀態(tài)下動(dòng)態(tài)增加它的長(zhǎng)度。
    命令:getconf和setconf
    用來(lái)查尋和動(dòng)態(tài)增加表的長(zhǎng)度。


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/17749/showart_103821.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP