簡體   English   中英

Postgresql Aurora 數據庫 freeable_memory

[英]Postgresql Aurora DB freeable_memory

我對 AWS Aurora Postgres 的可用內存有疑問。

我們最近想在我們的一個數據庫上創建一個索引,數據庫死了,並對所有工作正常的奴隸進行了故障轉移。 看起來可用內存減少了配置的 500mb maintenance_work_mem,然后變成了大約 800mb 的內存——緊接着 32gig 實例就死了。

1) 我想知道可釋放的內存是否是整個系統內存,這里的低內存是否可以調用 AWS Aurora 實例上的系統 oom 殺手? 因此,我們可能希望為操作任務和 autovacuum 作業的運行預留更多空間,以免再次遇到此問題?

2)據我所知,索引創建的實際工作應該使用了可用的本地存儲,所以索引的大小應該無關緊要,對吧?

提前致謝, 克里斯

關於 1)

來自 ( https://forums.aws.amazon.com/thread.jspa?threadID=209720 ) 的可用內存

可用內存包括系統未使用的物理內存量加上空閑和可用的緩沖區或頁面緩存內存總量。

所以它是整個系統的可釋放內存。 雖然 MySQL 是主機上內存的主要消耗者,但除了操作系統之外,我們確實有內部進程會占用少量額外內存。

如果您看到可用內存接近 0 或者也開始看到交換使用情況,那么您可能需要擴展到更大的實例類或調整 MySQL 內存設置。 例如,減少 innodb_buffer_pool_size(默認設置為物理內存的 75%)是調整 MySQL 內存設置的一種方式示例。

這也意味着如果內存變低,它可能會以某種形式影響進程。 在這個線程 ( https://forums.aws.amazon.com/thread.jspa?messageID=881320&#881320 ) 例如提到它導致 mysql 服務器重新啟動。

關於 2)

這就像文檔 ( https://aws.amazon.com/premiumsupport/knowledge-center/postgresql-aurora-storage-issue/ ) 中描述的那樣,所以我猜它是正確的,大小應該無關緊要。

用於臨時數據和日志的存儲(本地存儲)。 所有的數據庫臨時文件(例如日志和臨時表)都存儲在實例本地存儲中。 這包括查詢所需的排序操作、哈希表和分組操作。

每個 Aurora 實例都包含由實例類確定的有限數量的本地存儲。 通常,本地存儲量是實例內存量的兩倍。 如果您執行的排序或索引創建操作需要的內存多於實例上的可用內存,Aurora 會使用本地存儲來完成該操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM