我想,比較好的作法,是在問題發生時、甚至發生前,相關人員就能掌握相關證據。在現今各式各樣的系統裡,其實己經具備這樣的功能。系統管理員可以針對各種不同的可能發生事件,指派負責人員,並透過系統設定的方式,當特定事件發生時,系統就會以E-Mail、甚至是簡訊,在第一時間內馬上通知。
如此一樣,管理人員將可在系統問題繼續惡化前,有較充裕時間來採取必要解決行動。這類的系統事件通知,好一點的通常都會伴隨著系統在事件發生的當下、自行蒐集到的一些相關資訊,所以,管理人員可以馬上縮小所以調查的範圍, 縮短問題解決的時間。像這樣內建的系統功能,應該多加利用才是。
事件發生時馬上被通知,還比不上另一個更好的做法,就是防範未然。
「預防重於治療」,這是每個人保健身體的老生長談,其實這樣的原則,也可適用於管理的電腦系統上。
因為,在系統發生問題前,一定都會有些跡象發生,若是能在跡象發生時就掌握住,那就可以在問題還沒發生前先採取補救措施,而不用等到問題發生時才手忙腳亂。
例如,每個資料庫系統都會利用Logical Log的機制來減少對實體資料表的存取。若Logical Log不是設成動態分配空間(就是空間不夠時,系統自己會再分配空間出來)的話,那麼一旦Logical Log空間被用光,整個資料庫系統就會停擺。
因此,比較積極的做法是,當Logical Log使用率達到某個水準,像是60%時,就要發出警訊。這時候,系統管理員就可以先採取必要措施,看看是不是有某個交易(Transaction)太長, 遲遲未Commit、或是因系統過於忙碌,之前Logical Log分配的空間不夠用等。
無論是那個原因,系統管理員都可以選擇合適的作法(像是強迫中止有問題的交易,或是手動加大Logicl Log的空間),讓問題發生的機會都沒有。
像這類的預警程式,其實都很簡單。若是在Unix系統上,可以利用作業系統本身己有的 Utility程式,透過Shell Script來撰寫,然後排入Cron Job裡,定期執行。初期預警的對象,可以針對資料庫系統會用到的系統資源,像是作業系統的CPU,Memory以及Disk I/O,資料庫系統本身的Virtual Process、DB Space I/O與Virtual Memory,進行監控。
再加上這類的系統資源,都有一個絕對數值可做為比較的基準,您可以任意指定警戒水準。利用這樣簡便的作法,您不僅可以更稱心愉快的管理軟硬體系統,在發生問題時,系統管理人員也能「有憑有據」的解決問題、排除不必要的紛爭。


8.gill 於 2008/10/07 16:07 回應
因為,在系統發生問題前,一定都會有些跡象發生,若是能在跡象發生時就掌握住,那就可以在問題還沒發生前先採取補救措施,而不用等到問題發生時才手忙腳亂。如作者上述所言,但如果沒有經驗,怎能看出所謂的跡象。若能將前輩的經驗傳承下來,或許能讓證據更具體呈現…
7.匿名 於 2008/10/06 20:56 回應
沒經驗,如何找證據?6.leolarrel 於 2008/10/03 02:16 回應
找到了.前輩屬於加力優車隊.我是跑4TN的新手喔.前輩你好(鞠躬)!!5.leolarrel 於 2008/10/03 02:06 回應
耶! 作者也是機車賽車手? 是跑中華賽車會的還是TSR的呢?4.Fantasy 於 2008/10/02 21:50 回應
如果沒經驗,有證據應該也沒啥用途吧^_^
3.匿名 於 2008/10/02 16:44 回應
除非證據是 100% 完整, 否則還是會回歸經驗.問題是, 你能拿出 100% 完整的證據嗎?
2.天光仔 於 2008/10/02 10:57 回應
所以應該是[經驗不是絕對,證據也不是一切,只有兩者平衡,才是一切]~1.晴樹 於 2008/10/02 09:32 回應
證據並不是全然有幫助一事,在未經深思謀慮的分析下、亂採信眼前的證據,反而會採取錯誤的做法,無益於解決問題