我是不是忘記了什麼?
你已明明花了一些錢用于硬體配置,購買了另外那8gb的記憶體,可為什麼安裝的發行版運作起來速度還是那麼慢?想确信你的系統看到已安裝的所有記憶體, 最快捷的辦法就是使用'free'這個指令。預設情況下,這個指令會列出它"看到"的你系統上安裝的所有記憶體(包括實體記憶體和交換記憶體)。下面是檢視你所 尋找的記憶體的最簡便方法:
free -h --si
會顯示類似這樣的結果:

https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193206mgtgp43lc7dbzgcp.jpg
我們這個指令後面的兩個參數'-h -si'告訴它以"人可讀"的格式來顯示輸出(自動選擇最合适的類型:兆位元組、吉位元組和太位元組),并使用兆位元組/吉位元組/太位元組的十進制與二進制定義。如 果你在這裡看到的内容與你知道電腦上實際安裝的情況不一緻,那麼有幾個辦法可以嘗試一下。首先,如果你安裝了4gb以上的記憶體,确信已安裝了64位版本的 發行版,不然你最多隻能看到4gb的存儲空間。(如果你安裝了32位版本,又需要4gb以上的記憶體,可以安裝一個名為"pae"的特殊核心,pae代表" 實體位址擴充"--它讓你的系統可以在32位作業系統上看到4gb以上的記憶體。)
如果你将核心更新到pae(32位)或者重新安裝了發行版(64位)後,你的系統還是看不到全部數量的記憶體,那麼你就應該關閉系統,重新插拔一下記憶體。你也可以撥出所有記憶體,就隻剩一條記憶體晶片,通過逐個排除的方法,确定是否存在記憶體晶片硬體問題。
到底是怎麼個狀況?
想确定新安裝的系統上到底是怎麼個狀況,一種功能更強大的工具是'atsar'(注意:另外大多數發行版有同樣的工具,但是名為'sar',就像原 始的伯克利unix工具)。該應用程式可以為你提供諸多方面的統計數字,包括記憶體、處理器、負載、網絡、線程、插座、錯誤和交換等方面。想了解"全面"的 狀況,最快捷的辦法就是使用下列指令:
atsar -a
https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193206bvnb7zghughhbz4g.jpg
這會給出你系統上幾乎任何方面的随意讀出結果,就像這樣(上面的螢幕截圖隻是一部分,完整的讀出結果要長得多)。
'-a'參數意味着"給我顯示可能顯示的一切資訊",是獲得簡要的完整系統視圖的好方法,以便檢視哪裡出了異常(即你是否看到頻繁地交換?為何 mysql占用該處理器的全部資源?為何有那麼多的程序用于apache?我的系統負載有多大?)這可以幫助你重點關注需要更多一點資訊的某個方面。
問題來自裡面還是外面?
我們現在通過上面的'atsar'報告表明了目前狀況。系統上有許多的輸入輸出等待(iowait),那麼它們又都來自哪裡呢?嗯,輸入輸出可能與磁盤有關(讀取/寫入),或者與網絡有關(發送/接收)。我們可以使用'iostat',深入分析統計數字,如下所示:
iostat -h -p all
顯示下列長長的輸出
https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/1932063legtpl5laa55lcn.jpg
https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193207dsqmseeqmsmmsb9x.jpg
這會以人可讀的格式(再次使用了'-h'參數)顯示所有的網絡、記憶體和磁盤裝置(包括挂載的samba或nfs裝置,如果你有這些裝置)及其事務、 每秒讀取/寫入。如果你想看到在一段時間内不斷提供的這種資訊(或者更實用的是,把這些資訊輸出到某個檔案),不妨在末尾添加一個整數(比如說,那樣 'iostat -h -t -p all 5 > results.txt'就會每隔5秒生成這份報告,每個段落有一個起始時間,并儲存到檔案--注意這個操作會不斷持續,直到你摁住 ctrl-c組合鍵中斷這個過程,或者如果你在背景運作,直到你終止該過程)。
眼下有了記憶體、處理器、記憶體、網絡、磁盤和輸入輸出方面的統計數字,你對系統目前的狀況多少應該有所了解。别忘了使用我們的老朋友:'top'指令,看看到底哪些程序在運作,這會幫助你把目前運作的程序與你在我們的演練期間發現的那種類型的性能度量标準關聯起來。
輕松搞定鎖定問題
有時候,尤其是在排查故障時,你會發現自己采取的某個操作使得情況反而更糟糕了(比如終止了不該終止的程序,結果鎖定了xwindows,等等)。 你似乎根本什麼都幹不了。如果是這樣,你總是可以摁住ctrl-alt-f1組合鍵,看看是否能得到明文外殼。如果能,你隻要重新開機系統,再試一下 ('sudo reboot')。有時候,連這一招都不管用。
這裡有一招可以讓你無須關閉系統電源、希望ext3/4中的檔案系統日志可以避免檔案受損:reisub。這是冷啟動之外最安全的辦法,而且幾乎總是屢試不爽,不管你的系統怎樣被"鎖定"了。你可以執行這個神奇的操作,如下所示:
摁住alt和sysreq(print sc)鍵的同時,輸入r e i s u b
現在,有幾個方面需要考慮。首先,你的鍵盤得有sysreq(print sc)這個鍵,一些比較現代或比較緊湊的鍵盤沒有這個鍵。要是你的鍵盤沒有這個鍵,這一招顯然不管用。其次,那些字母輸入時不要太快。因為它們各自執行一 個操作,每個字母之間最好間隔五秒左右,那樣它們就能完成各自的工作。具體來說,這幾個字母分别代表:
r = 切換到xlate
e= 終止向所有運作中的程序(init除外)發信号
i= 終止init除外的所有程序(針對沒有響應終止指令的程序)
s= 同步所有檔案系統
u= 重新挂載檔案系統,隻讀格式
b= 重新開機系統
結束語
與網際網路時代的許多方面一樣,排查問題的能力俨然成了一門失傳的技藝。就像本文中一樣,有好多地方可以查詢你所要找的答案。不過,僅僅知道幾個基本的指令和高效排查故障的順序,就可以替你節省時間,完全可能讓你邁上一個台階。
<b> 原文釋出時間為:2013-03-16</b>
<b>本文來自雲栖社群合作夥伴“linux中國”</b>