国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

RegionServer Offheap讀/寫路徑

2018-05-24 11:15 更新

RegionServer Offheap讀/寫路徑

Offheap讀取路徑

在hbase-2.0.0中,HBASE-11425更改了HBase讀取路徑,以便它可以保存讀取數(shù)據(jù),避免將緩存數(shù)據(jù)復(fù)制到j(luò)ava堆上。這減少了GC暫停,因?yàn)樯a(chǎn)的垃圾較少,所以清理的次數(shù)也較少。堆外讀取路徑的性能與堆內(nèi)LRU緩存相似/更好。該功能自HBase 2.0.0開始可用。如果BucketCache處于file模式下,則與原生堆LruBlockCache相比,抓取總是比較慢。

對于端到端的非堆積式讀取路徑,首先應(yīng)該有一個堆外備份的離堆塊緩存(BC)。在hbase-site.xml中將'hbase.bucketcache.ioengine'配置為off-heap 。還要指定使用hbase.bucketcache.size配置指定BC的總?cè)萘俊U堄涀≌{(diào)整hbase-env.sh中的'HBASE_OFFHEAPSIZE'的值。這是我們?nèi)绾螢镽egionServer java進(jìn)程指定最大可能的堆外存儲器分配。這應(yīng)該比BC的堆外尺寸大。請記住,默認(rèn)情況下沒有默認(rèn)設(shè)置,hbase.bucketcache.ioengine默認(rèn)關(guān)閉BC。

接下來要調(diào)整的是RPC服務(wù)器端的ByteBuffer(字節(jié)緩沖區(qū))池。該池中的緩沖區(qū)將用于累積單元字節(jié),并創(chuàng)建一個結(jié)果單元塊以發(fā)送回客戶端。hbase.ipc.server.reservoir.enabled可以用來打開或關(guān)閉此池。默認(rèn)情況下,此池處于可用狀態(tài)。HBase將創(chuàng)建堆外ByteBuffers并將它們合并。如果您想在讀取路徑中進(jìn)行端到端的堆積,請確保不要將其關(guān)閉。如果關(guān)閉該池,服務(wù)器將在堆上創(chuàng)建臨時緩沖區(qū)以累積單元格字節(jié)并生成結(jié)果單元格塊。這可能會影響高度讀取的加載服務(wù)器上的GC。用戶可以根據(jù)池中有多少緩沖區(qū)以及每個ByteBuffer的大小來調(diào)整該池。使用配置hbase.ipc.server.reservoir.initial.buffer.size來調(diào)整每個緩沖區(qū)大小。默認(rèn)值是64 KB。

當(dāng)讀取模式是一個隨機(jī)行讀取負(fù)載,并且每個行的大小與64 KB相比較小時,嘗試減少此數(shù)量。當(dāng)結(jié)果大小大于一個ByteBuffer大小時,服務(wù)器將嘗試抓取多個緩沖區(qū),并將結(jié)果單元格塊取出。當(dāng)池用完緩沖區(qū)時,服務(wù)器將最終創(chuàng)建臨時堆緩沖區(qū)。

可以使用配置'hbase.ipc.server.reservoir.initial.max'來調(diào)整池中的最大ByteBuffers數(shù)量。它的值默認(rèn)為配置了64 *個區(qū)域服務(wù)器處理程序。數(shù)學(xué)是這樣的,默認(rèn)情況下我們考慮2MB作為每個讀取結(jié)果的單元塊大小,每個處理程序?qū)⑻幚碜x取。對于2 MB大小,我們需要32個緩沖區(qū),每個大小為64 KB。所以每個處理程序有32個ByteBuffers(BB)。我們將這個大小分配為最大BB計(jì)數(shù)的兩倍,以便一個處理程序可以創(chuàng)建響應(yīng)并將其交給RPC響應(yīng)程序線程,然后處理新的請求,創(chuàng)建新的響應(yīng)單元塊(使用池緩沖區(qū))。即使響應(yīng)者不能立即發(fā)回第一個TCP響應(yīng),我們的計(jì)數(shù)應(yīng)該允許我們在池中仍然有足夠的緩沖區(qū),而不必在堆上做臨時緩沖區(qū)。再次對于較小尺寸的隨機(jī)行讀數(shù),調(diào)整此最大數(shù)量。有懶惰地創(chuàng)建的緩沖區(qū),計(jì)數(shù)是要匯集的最大數(shù)量。

如果在完成端到端讀取路徑堆外后仍然看到GC出現(xiàn)問題,請?jiān)谶m當(dāng)?shù)木彌_池中查找問題。使用INFO級別檢查下面的RegionServer日志:

Pool already reached its max capacity : XXX and no free buffers now. Consider increasing the value for 'hbase.ipc.server.reservoir.initial.max' ?

hbase-env.sh中HBASE_OFFHEAPSIZE的設(shè)置在RPC端也應(yīng)考慮此關(guān)閉堆緩沖池。我們需要將RegionServer的這個最大堆外大小配置為比這個最大池大小和堆外緩存大小之和高一點(diǎn)。TCP層還需要為TCP通信創(chuàng)建直接的字節(jié)緩沖區(qū)。此外,DFS客戶端將需要一些堆外工作來完成其工作,特別是如果配置了短路讀取。為最大直接內(nèi)存大小分配額外的1 - 2 GB已在測試中工作。

如果您正在使用協(xié)處理器并在讀取結(jié)果中引用單元格,請不要將對這些單元格的引用存儲在CP掛接方法的范圍之外。某些時候,CP需要關(guān)于單元的存儲信息(像它的行鍵),以考慮下一個CP掛接調(diào)用等。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號