2008年6月5日 星期四

系統校時

玩LINUX這麼久,NTP校時,都一直不是我關心的重點。
因為我大部分的SERVER,只要能提供像LAMP和NAT這樣的服務。
時間的差異,只要不要太離譜,幾乎不影響我提供的daemon的!

不過,當我有管理到database的服務時,情形就不一樣了。
因為資料在寫進寫出的時候,時間的誤差,可能會造成和AP應用軟體間的錯誤。
嚴重一點的話,也許DB和AP都跑不了。這可不能等閒視之!

趕緊來把DB和AP之間的時間差調整好!
要如何修改 UNIX 系統的時間呢?

<方法1>
STEP 1:
先用 date "+%Y%m%d%H%M.%S" 查出現在時間(年月日時分.秒)。
ex: 出現 200806060755.47

STEP 2:接著下指令
date 200806060855.47 就可以修改了.

這是一個誤差只有一小時的範例!哈哈,還好還好。

<方法2>
在STEP 2時,再分兩步驟進行。
1. date -s 2008/06/06 改日期
2. date -s 08:55:30 改時間
先改日期,再改時分秒。

喂喂!不是要講NTP校時的嗎?怎麼好像都没提!
其實能連上網際網路的話,應該是用NTP校時比較好,這也是我原本的意圖。
但在DB不隨便對外連線的情狀下,我的DB只能用比較原始的方式處理了。

不然...
用 ntpdate 就好了,最準:
SHELL> /usr/sbin/ntpdate ntp.ucsd.edu

據說...
ntpdate stdtime.sinica.edu.tw 最準了!
但應該都一樣啦。差在穩定度高不高而已。

把DMA關閉?

如果有玩OS系統的朋友,會知道DMA的作用,是在減少傳輸資料時,耗用到CPU的資源。
像是硬碟和光碟機都有這樣的設計,因為大部分的資料傳輸,可能是不需要用到CPU運算。
只是把資料區塊搬來搬去而已!(個人理解,有誤請告知補正!)

目前的LINUX系統,預設應該是支援DMA enable的。
當我看到我的OS螢幕出現了:
ide-cd: cmd 0x1e timed out
hda: irq timeout: status=0xd0 { Busy }
hda: irq timeout: error=0x00
hda: ATAPI reset complete
ide-cd: cmd 0x1e timed out
hda: irq timeout: status=0xd0 { Busy }
hda: irq timeout: error=0x00
hda: ATAPI reset complete
ide-cd: cmd 0x1e timed out
hda: irq timeout: status=0xd0 { Busy }
hda: irq timeout: error=0x00
hda: ATAPI reset complete
ide-cd: cmd 0x1e timed out
hda: irq timeout: status=0xd0 { Busy }
hda: irq timeout: error=0x00
hda: ATAPI reset complete

那個hda設備一直出現 irq 錯誤和 ATAPI reset !
我查了一下可能原因,好判斷這個錯誤對我的SERVER有没有嚴重的影響。
原來就是hda光碟機,它的DMA打開了,但OS卻不支援!才有這樣的錯誤發生。

機器:HP ProLiant DL580 G5
作業系統:Oracle Enterprise Linux 4.0 Update 6
光碟機hda是8X的DVD。

HP的官網有這類問題的Q&A。
http://h50069.www5.hp.com/e-Delivery3/Forum/WebUI/Messages/ShowTopic.aspx?RID=7fdf53c6-d5ed-4e6d-904c-ffb4e11c671e

不過官網給的solution只是在開機設定中把DMA關閉。
我要的是能够把DMA即時開關的指令和KNOW-HOW。

OK,往下看吧!

一、檢查系統中的DMA選項是否已被啓動
Linux中的hdparm命令是用來進行操控硬碟、光碟機之類設備的,
hdparm -i /dev/hda可以列出IDE可能支持的DMA模式,如:

DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4

二、啓動DMA支援
方法1:
在lilo.conf中加入:idex=dma,其中x代表硬碟序號,其取值範圍0-3,
分别代表系統中的四個IDE硬碟設備。

方法2:
使用hdparm命令,hdparm d1 /dev/hda 其中d1表示開啓DMA模式,
可以利用加到rc.locl中以便每次啓動OS時能使用DMA模式傳輸資料。


三、關閉DMA
命令格式:
hdparm d0 /dev/hda
就把DMA傳輸模式關閉了,但能用DMA,為什麼要關閉呢?

還有,對於支持UDMA傳輸模式硬碟,也可以參考以述方法進行配置,
但要確保硬碟控制器及硬碟都支持UDMA,最後你必須要有一根能支持UDMA傳輸的線路,
不然即使你啓動了UDMA,它也不會運作的。

以上!

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!