我有我的PostgreSQL DB(約4GB的數據)dockerized。它在我的筆記本上運行良好(linux,2core CPU,SSD,8GB RAM)。我正在嘗試使用Docker集線器來移動它以釋放AWS EC2 t2.micro。docker容器啓動緩慢pg_restore
容器啓動時,會執行一些腳本,這些腳本會設置架構和表格的結構,並使用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
我發現here,但我不知道是什麼原因導致這種...
我也reniced過程中的一些一小時後到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」。
PS2: 我已經大概花了I/O學分,這是不容易的,現在監控... https://forums.aws.amazon.com/thread.jspa?threadID=164462&start=0&tstart = 0 – jurafejfar