隨著domino伺服器在生產環境中的長時間執行,使用者量增多,資料量增大後,會帶來一系列的問題;如宕機頻繁、執行效率低下、系統資源消耗大等現象。本身domino屬於文件型資料庫,在資料庫中的文件數量越多,資料庫越大;訪問效率就會越低。大多數專案初期:
程式設計師為了完成任務或趕工,編寫過程中並不會考慮程式執行效率、容錯等問題;
在佈署執行環境的時候,一般不會全面考慮伺服器的執行狀況,不會對伺服器進行相應的效能優化和調整;所以在資料量增大和使用者數增大時,出現效能低下等問題。
基於以上現象,客戶滿意度達不到,有可能造成專案失敗的可能性。
遇到這類情況後,domino管理員就有必要通過一系列手段來評估目前環境的問題在哪?效能瓶頸在哪?主要什麼原因引起的?應該如何進行調整?
在我眼中domino管理員工作是非常複雜和繁鎖的,domino管理工作可以細分從伺服器管理、資料庫管理、郵件管理、人員管理、安全管理、複製管理、策略管理等,這些工作你可以一人完成(這個人要相當牛b了,對domino執行機制,郵件路由機制,複製機制,internet協議等都要有比較深層次的了解),也可以乙個小組來完成。
如果做為乙個合格domino管理員,不懂得如何編寫程式,可以說根本算不上乙個真正的系統管理員。就像二流黑客拿一些專門的黑客工具黑**,黑qq號一樣,只知道機械化的做,並不知道為什麼要這麼做,基礎原理是什麼。
當你的domino伺服器宕機後,向ibm800**支援,他們都會要求你提供nsd日誌給他們進行分析,經他們分析後,會告訴你宕機原因,是由什麼由於引起宕機。
言歸正傳,我們先講講如何分析nsd日誌,並從中找出伺服器目前的問題所在,宕機目要是由什麼引起的。
nsd日誌存放於%dominodata%\ibm_technical_support目錄下,檔案格式:
nsd___《日誌生成日誌(yyyy_mm_dd)>@《日誌生成時間(hh_mm_ss)>.log
例: 以檔名能很快清楚伺服器的基本資訊。
nsd分析工具有兩種(目前我所知道的,也許還有其他的)laza和lotus notes diagnostic(簡稱:lnd)兩種,大致功能是相同的,laza因為有spr庫和pmr庫支援,可以快速的找出伺服器宕機的解釋和解決辦法,但是spr庫和pmr庫,ibm是不對外開放;所以我們使用的話laza或lnd是沒區別的。我推薦大家使用lnd足夠了,簡單方便,配合google查詢足夠完成nsd分析工作。
如何分析?很簡單,安裝完lnd後,啟動lotus notes客戶端,開啟lnd庫(lnd缺省會將lnd.nsf安裝在你%notesdata%\lnd目錄下),如下圖:
單擊"open & process a file",開啟乙個nsd檔案,則會將乙個nsd進行分析,並將結果儲存在notes文件中。nsd分析結果文件分為以下部分:
debug:除錯方法,當出現宕機後,可以使用這裡提供的方法對domino伺服器進行除錯。如果前面的stack related infos定位不到宕機的真正原因,才使用這裡面介紹的方法進行除錯;不過大部分錯誤能在stack related infos找得到,並配合ibm support**或官方論壇找到相應的解決辦法。
nsd分析思路
1.通過lnd解析nsd後,首先檢視stack資訊,如下圖:
通過這些關鍵字,你能在ibm support**上或官方論壇上找到相關的資訊或解決方案。找到這些答案基本上分析工作就完成了。根椐ibm support**上提供的解決方案,對伺服器做出相應的調整即可解決宕機問題。但如果spr search標籤中並未提供查詢關鍵字(有些nsd並未提供這些,這說明並不是domino本身bug所引起的,是由於你寫的程式引起了宕機),所以我們得進一步分析是哪個資料庫中哪段程式引起這個原因的,hehe。
3.開啟stack related infos標籤,展開shared os fields區段,如下圖:
從上圖我們可以看出宕機的原因和引起宕機的服務和相關執行緒。在某些宕機情況下faultrecovery中會記錄明顯的錯誤,而不是記憶體位址資訊;如:panic:******xx等,你可以以此為關鍵字去ibm support**上查詢相關資訊,幫助你分析宕機原因,也可以直接得到答案。^_*
4.從上面示例中,我們得到了引起宕機的執行緒號,展開virtual thread(s)區段,通過比較相關執行緒號,就能定位到是由哪個資料庫中哪個設計元素引起的宕機。如下圖:
通過相關執行緒號與vthread id的對應,我們找到了是由哪個使用者操作哪個資料庫引起的宕機。其中也記錄了使用者操作的文件所引起的宕機。其中noteid為domino資料庫元素(名括設計元素和文件)標識,class為元素類別。元素類別如下:
note class
描述
0x0001
文件0x0004
表單0x0008
檢視0x0040
acl0x0200
**0x0800
公式5.得到noteid後,如何定位至元素呢?nsd中noteid是以10進製方式表示的,如果要在domino環境中查詢相應的元素時,先將noteid轉成16進製制再進行查詢。
開啟domino administrator,在「file」標籤中選中相應的資料庫,在右邊工具欄選「find note」,輸入noteid,即可找到相應的元素,如下圖:
通過以上方法對nsd分析,能快速有效的找到伺服器宕機的真正原因在哪,並有針對性的提出解決方案;也能找到是由於哪段程式引起了domino伺服器宕機,為什麼會引起宕機,可快速的修正**錯誤。
以上方法主要通過lnd工具進行分析。lnd工具並不能100%從nsd中找到問題所在,這時你就得使用lnd工具分析+手工分析方式。手工分析方法請參考hands on nsd。hands on nsd介紹了nsd檔案的組成,分析方法,步驟等。
從專案角度上來說,造成大部分宕機的原因80%以上都是程式**所造成的。所以開發人員在實施專案或開發產品時應該充分關注自己編寫**的質量,容錯,效能,擴充套件等問題,不要為了完成任務而不注重質量。如果只是為了完成任務,客戶滿意度達不到,專案不能驗收,將來返工,同樣也耗費了大量的時間,也給以後的維護人員帶來了很大的維護工作量,更重要的是不利於產品構架的擴充套件和效能高的應用。這年頭客戶不是傻子,好不好用人家說了算,驗不驗收人家說了算,不要塗一時快活給整個團隊帶來麻煩。
現在大家都會說,規範能說出一整套一整套的,但真正做到的沒幾個。從點滴做起,從自己做起,規範自己就是提高自己。
HP UX系統診斷日誌
troubleshooting和error logs 1.system error logs 一般有sel,fpl,在mp卡下sl命令可以收集sel和fpl.2.init日誌在efi shell下輸入errdump init命令可以收集,mca日誌在efi shell下輸入errdump mca命令...
軟體效能分析及診斷
從使用者的角度,軟體系統的效能就是軟體對使用者操作的響應時間。從系統管理員的角度,軟體系統的效能首先表現在系統的響應時間上,這點與從使用者的角度看是相同的。其次,對於管理員來說,在關注系統穩定執行持續良好的效能外,還關心系統的狀態資訊,如併發100使用者時,cpu狀態,應用伺服器執行狀況等。另外系統...
05 資料分析 診斷性分析方法
診斷性分析 根據業務邏輯,通過資料尋找引起最終結果的原因和可以改變未來結果的方法 解決問題 壞的結果 產生問題的原因和解決的方案 發現機會 好的結果 在機會出現的時候發現機會 list item確定問題的描述指標,以及指標的統計邏輯 確定指標的類別,是基礎指標還是復合指標 對復合指標進行分解,分解到...