⑴ NCQ TCQ 什麼是NCQ 什麼是TCQ 區別
一、TCQ:Tagged Command Queuing,標記命令隊列,首先是用在SCSI介面的硬碟上面,不過傳統的P-ATA或者新興的S-ATA也可以實現TCQ功能。SCSI的TCQ要強大
得多,這主要表現在隊列類型及深度。SCSI TCQ支持三種隊列類型,分別是簡單隊列(Simple Queue)、有序隊列(Ordered Queue)和隊列頭(Head of Queue)。而ATA命令排隊(TCQ和NCQ)只是簡單隊列,即硬碟享有以任意順序排列和優化命令的完全自主權。
TCQ的優點主要表現在:
1. 提高隨機讀取速度
2. 在多執行序( Multi-Threaded )環境及高隨機讀取負荷 (High Ranm I/O
Workloadings) 下,仍能維持高性能表現。
3. 將重復性及相沖突之指令予以重新排序,提高硬碟效能
至於隊列深度的規定,ATA命令排隊最大為32級,SCSI TCQ為256級,對PC和入門級伺服器、網路存儲設備來說, ATA的32級深度已經足夠,而SCSI面向的多主機/多設備應用環境則要求更深的隊列深度。不過,由於隊列越深(實現)成本也就越高,並且滿深度利用隊列時大量的待處理命令反倒可能成為性能瓶頸,因此並行SCSI硬碟通常只用到64級深度,256級的隊列深度往往在磁碟陣列子系統中實現。
此外,ATA命令排隊還有一些局限性,譬如排隊命令與非排隊命令不能混合使用、發生錯誤將導致硬碟放棄隊列中的全部命令(主機必須管理恢復過程)。而我們需要記住的就是,ATA TCQ的概念要小於TCQ(NCQ也一樣,因為它本身也是一種TCQ,只芹大咐是稱呼不同而已),兩者間不能劃等號。
二、什麼是NCQ呢?
NCQ被稱為「全速命令隊列(Native Command Queuing,NCQ)」。全速命令隊列是SATA II最先進和最令人期待的特性,是SATAⅡ規范中的重要組成部分,也是SATAⅡ規范唯一與硬碟性能相關的技術。NCQ是一項強大的介面/硬碟技術,它通過在硬碟內部優化作業的執行順序來提升硬碟性能和使用壽命。
首先讓我們來看一下硬碟是怎樣讀寫信息的。硬碟通過將信息寫入磁碟磁軌上的特定位置進行信息存儲,硬碟訪問磁碟上信息的過程如下:
● 尋找存儲數據的目標磁碟(platter),訪問該磁碟。
● 尋找磁碟上存儲數據的目標磁軌(track),訪問磁軌。
● 尋找磁軌上存儲數據的目標簇(cluster),訪問簇。
● 尋找簇上存書數據的目標扇區(sector),訪問扇區。
● 尋找目標數據,讀取數據。
通過上面的步驟,硬碟即可獲取所需要的數據信息仿仔。硬碟寫入數據的步驟也是如此,區別僅僅在於讀操作嫌純變為寫操作。大多數情況下數據存入硬碟並非是順序存入,而是隨機存入,甚至有可能一個文件被分配在不同碟片上。對於不支持NCQ的硬碟來說,大量的數據讀寫需要反復重復上面的步驟,而對於不同位置的數據存取,磁頭需要更多的操作,降低了存取效率。支持NCQ技術的硬碟對接收到的指令按照他們訪問的地址的距離進行了重排列,這樣對硬碟機械動作的執行過程實施智能化的內部管理,大大地提高整個工作流程的效率:即取出隊列中的命令,然後重新排序,以便有效地獲取和發送主機請求的數據,在硬碟執行某一命令的同時,隊列中可以加入新的命令並排在等待執行的作業中。顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。
如果新的命令恰好是處理起來機械效率最高的,那麼它就是隊列中要處理的下一個命令。舉個例子:比如向硬碟下達一組數據傳送指令,由於數據在磁碟上分布位不同,磁頭可能會先讀取260扇區,再讀取7660扇區,然後又讀取261扇區……如果我們對指令進行優化排列,可以先讀260扇區,接著依次讀261扇區,最後讀取7660扇區……顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。並且有效的排序演算法除了考慮目標數據的線性位置,也會考慮其角度位置,並且還要對線性位置和角度位置進行優化,以使匯流排的服務時間最小,這個過程也稱做「基於尋道和旋轉優化的命令重新排序」。
不過,要充分享用NCQ技術,光硬碟支持是不行的,還要對應的硬碟控制器(如南橋晶元中的磁碟控制器)支持才行。例如Intel從945晶元組的ICH7南橋開始支持NCQ技術,nVidia從nForce4 SLI晶元組開始支持NCQ技術。
下面是seagate官方關於支持NCQ硬碟的數據。
從seagate推出高端NCQ硬碟以來,一直深受廣大用戶擁戴,這次NCQ硬碟向低端
發展,體現了seagate對用戶的全方位考慮。據相關媒體報道,擁有NCQ技術的新款硬碟相對沒有NCQ技術的舊版硬碟產品。整體性能可以提升5%~20%,而擁有NCQ技術的這款低端產品的上市無疑是普及硬碟領域最新技術的最好途徑。
⑵ NCQ TCQ 什麼是NCQ 什麼是TCQ 區別
TCQ:Tagged Command Queuing,標記命令隊列,首先是用在SCSI介面的硬碟上面,不過傳統的P-ATA或者新興的S-ATA也可以實現TCQ功能。SCSI的TCQ要強大
得多,這主要表現在隊列類型及深度。SCSI TCQ支持三種隊列類型,分別是簡單隊列(Simple Queue)、有序隊列(Ordered Queue)和隊列頭(Head of Queue)。而ATA命令排隊(TCQ和NCQ)只是簡單隊列,即硬碟享有以任意順序配察啟排列和優化命令的完全自主權。
NCQ被稱為「全速命令隊列(Native Command Queuing,NCQ)」。全速命令隊列是SATA II最先進和最令人期待的特性,是SATAⅡ培如規范中的重要組成部分,也是SATAⅡ規范唯一與硬碟性能相關的技術。NCQ是一項強大的介面/硬碟技術,它通過在硬碟內部優化作業的執行順序來提升硬碟性能和使用壽命。
此外,ATA命令排隊還有一些局限性,譬如排隊命令與非排隊命令不能混合使用沒此、發生錯誤將導致硬碟放棄隊列中的全部命令(主機必須管理恢復過程)。而我們需要記住的就是,ATA TCQ的概念要小於TCQ(NCQ也一樣,因為它本身也是一種TCQ,只是稱呼不同而已),兩者間不能劃等號。
⑶ 怎麼讓資料庫存放命令隊列
入隊:首先將值寫入rear指向的地方,然後rear加1
出隊:首先將front指向的元素取出,然後front加1
當front == rear時 隊列為空
需要掌握隊列的那些知識才算掌握了 隊列的運算啊。 順便留個Q行嗎,謝了 回答: 。。沒考過二級,不太清賀春斗楚。
隊列的操作無非就是入隊列和出隊列 判斷隊列是否為空 判斷隊列是否為滿。。
當然,隊列又禪磨會分為線性隊列和循森兆環隊列。
對於這兩種隊列,出隊列和入隊列操作都是相同的。只是循環隊列在判斷隊列的空與滿上面有些差別
⑷ NCQ是什麼
在SATA2硬碟中所特有的一種功能,(一下是復制的資料請參考)
確實,這是機械硬碟,也成為溫徹斯特硬碟的一大缺點,由於硬碟是機械式讀取,所以導致磁頭需要在碟片氏畝上不停跳動來讀取數據。這種不規律的跳動,直接影響的是硬碟讀取零散文件的速度。這一方面大家也許有所感觸:復制一個巨大的ISO文件也許有120M/秒,但是復制一個120M的零散文件夾,兩三分鍾都有可能。雖然,巨大ISO文件也不是按順序排列,但是其規整程度還是比較高的。
只要是機械硬碟,這種問題都是無法解決的,因此固態硬碟成為追求性能的更新選擇。不過固態硬碟容量不高,價格也相當誇張,因此無法普及。在這種情況下,SATA II規范中提供了一種補償機制,或者說叫做先進特性:NCQ。而這項NCQ技術需要開啟AHCI進行支持。
隨著硬碟技殲燃森術的發展,硬碟涌現出不少新的技術。在單碟160G向320G邁進時,垂直記錄的應用提高了單位體積下硬碟的容量。更早時期出現的SATA介面硬碟在不斷升級中,新的技術對硬碟有了更強大的支持,新的功能不斷涌現,也帶來了NCQ和熱插拔這兩種較為實用的功能。
NCQ被稱為「全速命令隊列(Native Command Queuing,NCQ)」。全速命令隊列是SATA II最先進和最令人期待的特性,是SATA II規范中的重要組成部分,也是SATA II規范唯一與硬碟性能相關的技術。NCQ是一項強大的介面/硬碟技術,它通過在硬碟內部優化作業的執行順序來提升硬碟性能和使用壽命。
支持NCQ技術的硬碟對接收到的指令按照他們訪問的地址的距離進行了重排列,這樣對硬碟機械動作的執行過程實施智能化的內部管理,大大地提高整個工作流程的效率:即取出隊列中的命令,然後重新
排序,以便有效地獲取和發送主機請求的數據,在硬碟執行某一命令的同時,隊列中可以加入新的命令並排在等待執行的作業中。顯然,指令排列後減少了磁頭臂來回移動的時間,使數據讀取更有效。
如果對硬碟進行一系列的讀取,由於數據在磁碟上分布位不同,在沒開啟NCQ技術的時候,磁頭可能會先讀取碟片1的78扇區,再讀取碟片2 的760扇區,然後又讀取碟片1的261扇區,再讀取碟片2的43扇區。但如果開啟了NCQ後,就會優先按照順序讀取碟片1的數據,例如78-261扇區,然後在跳轉到碟片2進行43-760扇區的讀取。這樣一來段鍵,就有效降低了磁碟跳轉的頻率,也就提高了小文件的讀取速度。
⑸ dota2命令隊列已滿怎麼辦
可能是輸入法基型的問題。洞源通過查詢dota2資料了解顯示得知,dota2命令隊列已滿可能是輸入法的問題,DOTA2是由DotA之納鋒態父Icefrog主創打造的唯一正統續作,其完整繼承了原作DotA超過一百位的英雄。
⑹ WebSphere MQ中的隊列有幾種啊
可以簡單的把隊列看作一個容器,用來存放消息。隊列按其定義來分,可以分成本地隊列、遠程隊列、別名隊列和模型隊列。其中本地隊列是真正意義上的隊列實體,可以用來存放消息。而遠程隊列和別名隊列只是一種隊列的定義,指向另一個隊列實體。其中遠程隊列指向的是其他隊列管理器中的隊列,而別名隊列指向的是本地隊列管理器中的隊列。模型隊列有一點特殊,它雖然本身只是一個隊列的定義,描述了模型的屬性,但是當打開模型隊列的時候,隊列管理其就會以這個定義為模型,創建一個本地隊列,被成為動態隊列。
一個隊列管理器可以管轄多個隊列。但對於一個隊列只能隸屬於其中的一個隊列管理器。所以隊列在其所隸屬於的隊列管理器只能有唯一的名字,不能於同一個管理器中的其他的隊列重名。當消息添加到隊列中是,其預設被添加到最後。刪除消息時從頭開始。
(1)本地隊列:本地隊列按照功能又可以分為初始化隊列、傳輸隊列、目標隊列和死信隊列。其中初始化隊列用作消息觸發。傳輸隊列只是暫存待傳的消息,在條件許可的情況下,通過管道將消息傳送其他的隊列管理器。目標隊列是消息的目的地,可以長期存放信息。如果消息不能送達目標隊列,也不能路由出去,則被自動放入死信隊列。命令隊列指的是WebSphere MQ隊列管理器預定義的SYSTEM.ADMIN.COMMAND.QUEUE,任何的MQSC命令都可以發往改隊列,並被隊列管理器的命令伺服器(Command Server)接受處理。
MQXQH(傳輸信息頭,其中的RemoteQName和RemoteQMgrName兩個域指名了目標隊列和目標隊列管理器)
MQDLH(死信信息頭,其中DestQName和DestQMgrName兩個域指名了原消息的目標隊列和目標隊列管理器,Reason域指名了消息無法投遞的原因)。
MQMD(應答消息頭,其中ReplyToQ和ReplyToMgr分別表示應答隊列和應答隊列管理器)
(2)別名隊列:別名隊列的TARGQ屬性指名了其代表的目標隊列名稱,目標隊列通常是本地隊列。可以將別名隊列理解為指針。
(3) 遠程隊列:遠程隊列也是一個定義,使用了遠程隊列,你就可以不用知道目標隊列所在的隊列管理器了。
(4) 模型隊列:模型隊列定義了一套本地隊列的屬性集合。一旦打開模型隊列,隊列管理器就會按照這些屬性動態創建處一個本地隊列。模型隊列的DEFTYPE屬性可以取值為PERMDYN和TEMPDYN分別代表永久動態度列和臨時動態隊列。