放大
ERDDAP™- 重载、网格、群組、聯盟和云计算
ERDDAP:
ERDDAP™一個網絡應用程式和網路服務, 此網頁討論與沉重相關的問題ERDDAP™透過網格、群組、聯盟、云计算,
原文于2009年6月编写。 尚未有重大改變。 這是最后一次更新 2019-04-15.
分局
這個網頁的內容是Bob Simons的个人意見,National Oceanic and Atmospheric Administration. 計算很簡單 但我覺得結論是對的 我在計算中是否使用了錯誤的邏輯? 如果有,那是我的錯 請發郵件與更正erd dot data at noaa dot gov.
-
- –
重載/ 限制
重用,獨立ERDDAP™將會受到限制 (從最可能到最小可能) 由:
遠端來源頻率
- 遠端資料來源的頻寬, 即使有高效率的連接 (例如,通过OPeNDAP) 除非遠端資料來源有很高的網路連接ERDDAP反應會受到多快的限制ERDDAP™可以從資料來源取得資料。 解答是將數據集複製到ERDDAP硬碟,也許有EDDGrid复制或EDD 表格.
ERDDAP伺服器頻率
- 除非ERDDAP伺服器的網路連接率很高ERDDAP反應會受到多快的限制ERDDAP™能夠從資料來源取得資料,以及多快ERDDAP™可以把資料傳回客戶端。 唯一的解決辦法就是更快的網路連接。
記憶
- 如果有很多同時的要求ERDDAP™可能內存已耗盡, 並暫時拒絕新的要求 。 (ERDDAP™也有兩種機制可以避免,) 所以伺服器內存越多越好 在32位的伺服器上, 4+ GB真的好, 2 GB是好的, 在64位的伺服器上, 你几乎可以完全避免問題, 得到很多的記憶力。 看\- Xmx 和 - Xms 設定值用于ERDDAP貓咪 安ERDDAP™用於64位伺服器、8GB內存和-Xmx設定為4000M的電腦上,
已驅動波段
- 存取儲存在伺服器硬碟上的資料比存取遠端資料快得多。 即使如此,如果ERDDAP™伺服器有非常高的頻寬網路連接, 在硬碟上的資料可能會成為瓶颈 。 部分溶液是用得更快 (例如,10 000卢比) 磁性硬碟或 SSD 硬碟 (如果成本合理) . 另一個解決方案是在不同的驅動器上儲存不同的數據集, 這樣累积的硬碟寬度就更高了 。
檔案已儲存太多
- 檔案太多快取目錄 -ERDDAP™儲存所有影像, 但只儲存某些類型的資料要求 。 數據集的缓存目錄可能會有大量的檔案 。 這會減慢檔案是否在快取內的要求 (真的!) .<快取 分鐘( gt; in)設定. xml讓您在刪除前設定檔案在快取中可以存在多久 。 設下小數目可以減少問題。
CPU
- 只有兩件事需要很多 CPU 時間:
- NetCDF4和HDF5現在支持內部壓縮資料 。 解壓大壓縮NetCDF4/HDF5 個資料檔案需要10秒或更多秒 。 (這不是執行錯誤 這是壓縮的本性) 所以,對數據集的數據集的多份同步要求 被儲存在壓縮的檔案中會對任何伺服器造成嚴重壓力. 如果有問題, 解答方式是將流行的數據集儲存在未壓縮的檔案中, 或是用更多核心的 CPU 取得伺服器 。
- 做圖 (包括地圖) :每圖約0.2 - 1秒. 所以如果有很多對 圖片的同時要求 (WMS客戶常常會提出6個同步要求!) ,可能有CPU限制。 當多個使用者在執行中WMS客戶,這就成問題了
-
- –
多重同樣ERDDAP裝填平衡?
問題常常是:"為了處理沉重的負擔,我可以設置多個相同的ERDDAP与负荷平衡?" 這是個很有趣的問題 因為它很快就會進入核心ERDDAP是設計 快速回答是"不"。 我知道這是個令人失望的答案 但有兩個直接原因 和一些更大的根本原因ERDDAP™使用不同的方法 (联邦ERDDAPs, 本文件主要描述) 我相信這是個更好的辦法
某些直接原因,你無法/不該建立多重相同的ERDDAPs 是:
- 給定ERDDAP™讀取每個資料檔, 當它第一次可用時, 以便找到檔案中的資料範圍 。 然后在索引檔案中儲存此資訊 。 之後,當用戶要求數據時,ERDDAP™用此索引來找出要搜尋的資料的檔案 。 如果有多重相同ERDDAP每個人都會做這份索引 白費力氣 根據以下描述的聯邦制,索引只有一次,由其中一位ERDDAPs.
- 某些類型的使用者要求 (例如,.nc, png, pdf 檔案) ERDDAP™必須在回覆傳送之前將整份檔案制成 。 所以ERDDAP™短暫地儲存這些檔案 。 如果有相同的要求 (尤其是網址嵌入網頁的影像) ,ERDDAP™可以重用缓存檔案 。 在多重相同的系統中ERDDAPs, 那些缓存的檔案不共享, 所以每個ERDDAP™不必要和浪費的重生.nc, png, 或 pdf 檔案 。 依據以下描述的聯盟制度,檔案只由其中一位ERDDAPs,并重新使用。
- ERDDAP訂閱系統不是被多個共享的ERDDAPs. 例如,如果載入平衡器會送一個用戶到一個ERDDAP™而使用者订阅数据集,然后是另一個ERDDAP不會知道這份訂約的 稍后, 如果載入平衡器將使用者送至不同的ERDDAP™要求他/她的訂閱清單,另一個ERDDAP™會說沒有 (導致他/她對另一個 ERED 的重复訂閱DAP) . 依據以下描述,ERDDAP.
是的,對于這些問題,我可以 (非常努力) 設計解決方案 (共享資訊ERDDAPs) 但我想联合会ERDDAPs 方法 (本文主要描述) 是更好的解決方法 部分是因為它處理了其他的問題ERDDAP數據來源分散,
最好接受我沒有設計的簡單事實ERDDAP™以相同方式部署ERDDAPs有載量平衡器。 我自覺地設計了ERDDAP™在聯合大會內好好工作ERDDAPs,我相信它有很多优点。 值得注意的是,ERDDAPs完全符合我們現實世界中 分散分布的數據中心系統 (想想不同的IOOS區域, 或不同的海岸觀察區域, 或NCEI的不同部位, 或是其他100個數據中心。NOAA或全球1000個數據中心) . 而不是告訴世界所有數據中心 他們需要放棄自己的努力 把所有的數據放進集中的「數據湖」 (這是個可怕的想法,分散式制度) ,ERDDAP它的設計和世界一樣有效 產生數據的數據中心可以繼續維持、管理及服務他們的數據 (他們應該) 然而,与ERDDAP™中,ERDDAP,不需要將數據傳送中央集團ERDDAP™或儲存重复的資料副本。 實際上,特定數據集可以同时提供 從 aERDDAP™數據的產生與儲存 (例如,戈莫斯) , 從 aERDDAP™在母組織 (例如,IOOS中心) , 從所有...NOAA ERDDAP™, 來自全美聯邦政府ERDDAP™, 從全球ERDDAP™ (海豹) , 特殊ERDDAPs (例如,ERDDAP™專門研究HAB的學院) , 基本上都是即時有效的 因為只有中繼資料會在ERDDAP不是數據 最好的是,在初次之后ERDDAP™在原組織,所有其他ERDDAPS可以快速建立 (工作幾小時) , (一個不需要任何RAID來儲存資料的伺服器, 因為它沒有在本地儲存資料) 所以成本非常低 相較於建立和维持中央數據中心與數據湖的費用, 對我來說ERDDAP分權的聯邦方式是遠遠的,遠超級的
在給定的數據中心需要多重時ERDDAP以满足高需求,ERDDAP其設計完全能匹配或超過多個同樣型的性能ERDDAPs -a -a 你總是可以設置多重复合ERDDAPs (以下讨论) ,其中每一個都從其他的ERDDAPs,不負載平衡。 這樣的話 我建議你給每個合成人一個點子ERDDAP不同名字/身份,如果可能,在世界各地建立 (例如,不同的AWS區域) 例如,ERD東方,ERD西部,ERDIE,ERD FR,ERDQQIT , 讓使用者有意识地、 反复地與特定的工作ERDDAP,加上你從一個失敗點移除了風險
-
- –
网格、群組和聯盟
在非常重的用途下,單獨使用ERDDAP™會碰到一個或一個以上的限制以上所列,甚至所提出的解决办法都不足。 在這種情況下ERDDAP™具有容易建構可縮放格子的特性 (也叫做群組或聯盟) 四,ERDDAPs 能讓系統處理非常重的用途 (例如,大数据中心) .
我用网格以表示電腦群組所有部件可能或可能不实际位于某一设施,可能或可能不集中管理。 共用、中央所有和管理的网格的优点 (群 組) 是他們從规模經濟中获益 (特别是人的工作量) 并簡化 使系統的部份 運作良好。 非中央所有和管理的网格的优势 (联合会) 也有可能提供一些额外的錯誤承受力。 下面我提出的解決方案對所有網格、群組和聯邦地貌都非常有效。
設計可伸縮系統的基本想法是找出潜在的瓶颈,然后設計系統,以便能按需要复制部分系統以缓解瓶颈. 最理想的是,每個複製部分的容量都呈線性地增加 (縮放效率) . 除非每個瓶颈都有可伸展的解決方案,可伸缩性跟效率不同 (如何快速完成工作——各部分的效率) . 伸展性可以讓系統長大來應付任何關鍵需求。 效率 (比例) 确定需要多少伺服器等才能满足特定的需求。 效率非常重要,但總是有限度的。 可伸縮性是建立能處理的系統的唯一切实可行的解決方案 非常 重用。 最理想的是,该系统是可伸展和高效的。
目標
此設計的目標是:
- 建立可伸展的建築 (很容易被複製到過重的部份) . 建立高效的系統, 盡最大可能增加數據的可用性和吞吐量, (成本幾乎總是一個問題。)
- 平衡系統各部分的能力 以免系統的某一部分覆蓋另一部分
- 做一個簡單的建築,使系統容易建立和管理.
- 造一個與所有格子地形相關的建筑
- 如果某部分變得過重, (複製大數據集所需的時間總是會限制系統處理對特定數據集突增需求的能力。)
- (如果可能) 做一個與任何特徵無關的建築云计算服務或其他外部服務 (因為它不需要它們) .
建 议
我們的建議是
- 基本上,我建議建立合成器ERDDAP™ ( D 在圖中) ,是常數ERDDAP™但是它只是提供其他的數據ERDDAPs. 網格的建築要盡量移動工作 (CPU 使用、內存使用、帶宽使用) 自复合ERDDAP™至彼ERDDAPs.
- ERDDAP™有兩種特殊的數據集類型,EDDGrid來自 Erddap和EDD 表格來自 Erddap,指 其他資料集ERDDAPs.
- 當合成ERDDAP™從這些數據集、 复合資訊中收到對數據或影像的要求ERDDAP™ 重定向其它資料要求ERDDAP™伺服器。 其结果是:
- 這很有效率 (CPU、內存和帶寬) 因為不然
- 复合材料ERDDAP™必須將資料要求傳送至另一個ERDDAP.
- 其他ERDDAP™必須取得數據, 重新格式化, 並傳送數據到合成器ERDDAP.
- 复合材料ERDDAP™必須接收資料 (使用附加帶宽) 重塑它 (使用额外的 CPU 時間與內存) ,並傳送資料到使用者 (使用附加帶宽) . 重新定向數據要求并允許其他要求ERDDAP™將回應直接傳送使用者、 复合體ERDDAP™基本上不花 CPU 時間、 內存或帶寬 。
- 重定向對使用者透明, 不管客戶端軟體如何 (瀏覽器或任何其他軟體或命令行工具) .
- 這很有效率 (CPU、內存和帶寬) 因為不然