PostgreSQL Aurora数据库freeable_memory

问题描述 投票:0回答:1

我对AWS Aurora Postgres的可用内存有疑问。

我们最近想在我们的一个数据库上创建一个索引,并且该数据库死了,并故障转移到了从属服务器,所有这些都工作正常。看起来,可释放的内存由配置的500mb的maintenance_work_mem丢弃,然后下降到大约800mb的内存-紧接着32gig实例死亡之后。

1)我想知道可释放的内存是否是整个系统内存,并且这里的低内存是否可以调用AWS Aurora实例上的系统oom Killer?因此,我们可能希望为操作任务和自动真空作业的运行留出更多的余地,以免再次遇到此问题?

2)据我所知,索引创建的实际工作应该使用了免费的本地存储,因此索引的大小应该没有关系,对吧?

谢谢,克里斯

postgresql amazon-rds-aurora aws-aurora
1个回答
0
投票

关于1)

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

可用内存包括未使用的物理内存量由系统加上缓冲区或页面高速缓存存储器的总量免费且可用。

因此,它是整个系统的可释放内存。虽然MySQL是主机上主要的内存使用者,我们确实在除了占用少量额外内存的OS。

如果您看到可用内存接近于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使用本地存储来完成操作。

© www.soinside.com 2019 - 2024. All rights reserved.