我已经对我的 PostgreSQL 数据库(大约 4GB 的数据)进行了docker化。它在我的笔记本电脑(linux、2core CPU、SSD、8GB RAM)上运行良好。我正在尝试使用 docker hub 移动它以释放 AWS EC2 t2.micro。
在容器启动时,会执行一些脚本,这些脚本设置模式和表的结构,并使用 pg_restore(自定义、压缩格式)填充数据。在我的笔记本上大约需要 20 分钟。但在 t2.micro 上,它看起来可能需要数小时或数天(10 小时后集群中有 2.4GB)。
问题是,为什么它这么慢,而进程(postgres)没有使用太多 CPU(CPU 积分余额正在增加!)也没有一些明显的磁盘操作......导致这种缓慢进展的限制是什么?
还有日志消息:
LOG: using stale statistics instead of current ones because stats collector is not responding
我在这里找到的,但我不知道是什么原因造成的......
在大约一小时到 19 后,我也重新调整了进程,因为服务器无法使用(响应太慢),但是当我重新调整到 0 时,它似乎没有任何效果。
在此先感谢,J。
PS:
似乎存在 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
同样在顶级实用程序中,我几乎一直都可以在该过程中看到状态“D”。