Postgresql docker容器启动时pg_恢复缓慢

Postgresql docker容器启动时pg_恢复缓慢,postgresql,amazon-ec2,docker,pg-restore,Postgresql,Amazon Ec2,Docker,Pg Restore,我有我的PostgreSQL数据库(大约4GB的数据)。它在我的笔记本上运行良好(linux、2核心CPU、SSD、8GB RAM)。我正在尝试使用docker hub移动它以释放AWS EC2 t2.micro 在容器启动时,会执行一些脚本,这些脚本设置模式和表的结构,并使用pg_restore(自定义压缩格式)用数据填充它。在我的笔记本上大约需要20分钟。但在t2.micro上,它看起来可能需要几个小时或几天的时间(10小时后集群中有2.4GB) 问题是,为什么它这么慢,而进程(postgr

我有我的PostgreSQL数据库(大约4GB的数据)。它在我的笔记本上运行良好(linux、2核心CPU、SSD、8GB RAM)。我正在尝试使用docker hub移动它以释放AWS EC2 t2.micro

在容器启动时,会执行一些脚本,这些脚本设置模式和表的结构,并使用pg_restore(自定义压缩格式)用数据填充它。在我的笔记本上大约需要20分钟。但在t2.micro上,它看起来可能需要几个小时或几天的时间(10小时后集群中有2.4GB)

问题是,为什么它这么慢,而进程(postgres)没有占用太多的CPU(CPU积分平衡在增加!),也没有一些明显的磁盘操作。。。造成这一缓慢进展的限制是什么

还有一些日志消息:

LOG:使用过时的统计信息而不是当前的统计信息,因为统计信息收集器没有响应

我发现了,但我不知道是什么原因

我也在大约一个小时后重新启动了进程到19,因为服务器无法工作(响应太慢),但当我重新启动到0时,似乎没有任何效果

先谢谢你,J

附言:

似乎存在i/o问题。。。以下是iostat的输出:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.23    0.45    0.26   97.54    0.66    0.87

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda             90.79        33.11      1469.24    2718730  120629372

此外,在top utility中,我几乎一直可以看到该进程上的状态“D”。

这肯定是由I/o信用限制引起的。当使用小型SSD(空闲层高达30GB)时,可能会出现此问题,这会在满负荷约30分钟后导致磁盘性能非常低(不考虑CPU点数)

我能够在几个阶段执行数据库的完全恢复

  • 码头工人跑。。。(30分钟)
  • docker暂停(16小时——累积完整i/o积分)
  • docker取消暂停。。。(持续25分钟,直到DB恢复)

    • 这肯定是由i/o信用额度造成的。当使用小型SSD(空闲层高达30GB)时,可能会出现此问题,这会在满负荷约30分钟后导致磁盘性能非常低(不考虑CPU点数)

      我能够在几个阶段执行数据库的完全恢复

      • 码头工人跑。。。(30分钟)
      • docker暂停(16小时——累积完整i/o积分)
      • docker取消暂停。。。(持续25分钟,直到DB恢复)

      PS2:我可能已经花费了I/o积分,现在不容易监控。。。PS2:我可能已经花费了I/o积分,现在不容易监控。。。