問題分析報告 讀取ORC檔案報seek錯誤

2021-07-24 13:31:43 字數 2443 閱讀 7991

問題分析報告--讀取orc檔案報seek錯誤

1.分析job效能變慢,主要體現為container localized執行變慢

通過分析日誌發現, container 執行變慢主要卡在resourcelocalizationservice鎖的競爭上:

下圖為隨機挑選出來的乙個container執行慢的時候的jstack列印資訊,發現這個container等待這個鎖等待了22s之久:

2.分析鎖內**執行慢的原因:

通過獲取作業系統的統計資料osinfo,發現在container localized過程中會呼叫ls命令獲取本地目錄的檔案基本資訊出現了x狀態(linux process state: x (task_dead - exit_dead), the exit status, the process is about to be destroyed.),該狀態**捉多次,說明這個命令執行在os層占用時間較長。

3.排查ls變慢的原因,發現nm的堆外記憶體持續增長

1)nm的記憶體使用持續增長:

2)通過列印nm的堆外記憶體使用,發現大部分堆外記憶體使用均來自leveldb,記憶體分析截圖如下:

利用pmap命令將nm使用的記憶體資訊dump下來,然後用gdb將指定定址空間的堆外記憶體dump到本地:

通過將二進位制記憶體檔案轉化為可見字元,可知,當前的堆外記憶體主要來自leveldb。

4.nm堆外記憶體的持續**到一定程度後,會導致nm內部呼叫os的命令執行變慢,從而導致yarn的nm的container本地化鎖競爭加劇,最終導致業務效能下降。最後,通過在生產環境上將nm的recovery特性關閉,消除了leveldb導致堆外記憶體持續**的問題,從而解決了業務執行48小時後會出現效能下降的問題。

分析為yarn的recovery特性會依賴leveldb,而leveldb的資料儲存會占用堆外記憶體,從而導致堆外記憶體**,當堆外記憶體的堆積會導致os占用記憶體無法及時的釋放,而在大量任務併發時,業務也需要占用大量記憶體,記憶體的緊張會導致任務在資源本地化的過程中執行os的「ls  -ld」 命令變慢;同時每個contaienr的localized地方存在鎖的競爭,命令執行變慢,會使該鎖的競爭惡化,從而表現在業務執行一段時間後,效能逐漸變慢。

通過關閉yarn的nodemanager的recovery特性,即配置yarn.nodemanager.recovery.enabled引數為:false

解決leveldb堆外記憶體**(c60u10spc003補丁)

優化container 本地化鎖(c60u10spc003補丁)

將leveldb的資料目錄規劃到資料盤,不掛載到系統盤上(磁碟規劃)

1.觀察系統記憶體占用情況,檢查是否存在記憶體使用異常

2.通過如下手段排查,確定是否是同一問題:

1)確認是否開啟nm的recovery特性(yarn.nodemanager.recovery.enabled:true);

2)通過top -p pid檢視nm程序的記憶體res使用是否超過jvm堆記憶體的2倍以上;

3)檢視/yarn-nm-state目錄下的xx.sst檔案數目是否超過2000+;

注:在nm的後台配置檔案中檢視:

/opt/huawei/bigdata/fusioninsight/etc/x_x_nodemanager/yarn-site.xml(其中x表示某一數字)

yarn.nodemanager.recovery.dir

/srv/bigdata/tmp/yarn-nm-recovery

4) nm日誌中排查是否有大量的「localizer failed」、「interruptedexception」;

3.如確認是同一問題,請參照5.1臨時規避。

讀取分析RGB檔案

作業3 讀入乙個24bitrgb檔案 以down.rgb為例,其解析度為256 256 輸出該資料檔案中r g b三個分量 各8bit表示 的概率分布示意圖 類似下圖 和熵。開闢3個width height的unsigned char型陣列 開啟要讀出的rgb檔案 以 rb 方式開啟 開啟3個要輸出...

分析Python讀取檔案時的路徑問題

python在讀取檔案內容時的路徑問題,xrsfq值得深究一下.我想討論的重點還是在絕對路徑上面.在這之前我們先看一下 1 相對路徑 這張圖演示了在相對路徑下尋找查詢指定檔案.open 相對路徑演示 相對路徑示例 txt 開啟的是相對當前執行的程式所在目錄。而我當前執行的程式相對位置在桌面.所以直接...

POI讀取檔案問題

依賴版本 org.apache.poigroupid poiartifactid 3.16version dependency org.apache.poigroupid poi ooxmlartifactid 3.16version dependency org.apache.poigroupid...