2012-05-01 122 views
2

我有一個報表生成的xquery,有時會在地圖上保存500K左右的uris,並在數據庫中檢查它們的存在(cts:searchcts:document-query),並返回差異。但是,如果我們在併發請求中碰到同一個E節點,響應時間會減慢。正在消耗多少內存映射?

地圖可以消耗的內存大小是否有任何上限? 在任何情況下,地圖可以交換到磁盤?

回答

0

您可以看到每個森林在管理服務器上使用了多少內存。去森林,點擊狀態標籤,然後向下滾動到底部。 「內存大小」是映射文件大小的總和。您也可以使用xdmp:forest-status在XQuery程序中收集這些信息。

內存消耗受OS的地址空間和虛擬內存限制(可用交換空間)的限制。如果服務器內存消耗增長超出可用物理內存,操作系統會將頁面交換到磁盤。這可能會對性能產生嚴重影響。因此,監視操作系統交換使用情況,看看是否可能導致放緩。

2

您可以將地圖作爲xml存儲在數據庫本身中,但您仍然需要將它加載到內存中才能使用它。您也可以將它們存儲爲服務器字段,但仍然需要將其加載到內存中。雖然,如果用500k條目構建地圖需要相當長的時間,這可能是值得的。另一方面,你如何跟蹤地圖是最新的?