2013-08-14 18 views
8

Ho preso un dump di un db con solo 1 collezione e due indici. La collezione contava circa 6,5 ​​milioni di documenti. Quando ho provato a ripristinarlo, con mia grande sorpresa, il processo è stato faticosamente lento. Alcuni previsti come come seguendo:Perché il mongorestore rallenta dolorosamente?

Wed Aug 14 12:34:08.346   Progress: 333818/1378309050 0% (bytes) 
Wed Aug 14 12:34:11.077   Progress: 1530246/1378309050 0% (bytes) 
Wed Aug 14 12:34:26.177   Progress: 2714544/1378309050 0% (bytes) 
Wed Aug 14 12:34:30.145   Progress: 3355627/1378309050 0% (bytes) 
Wed Aug 14 12:34:34.504   Progress: 3895668/1378309050 0% (bytes) 
Wed Aug 14 12:34:53.246   Progress: 4334159/1378309050 0% (bytes) 
Wed Aug 14 12:34:56.318   Progress: 4963878/1378309050 0% (bytes) 
Wed Aug 14 12:34:59.545   Progress: 5617794/1378309050 0% (bytes) 
Wed Aug 14 12:35:08.042   Progress: 6923804/1378309050 0% (bytes) 
Wed Aug 14 12:35:16.424   Progress: 7342576/1378309050 0% (bytes) 
Wed Aug 14 12:35:23.168   Progress: 7987560/1378309050 0% (bytes) 
Wed Aug 14 12:35:29.703   Progress: 9295140/1378309050 0% (bytes) 
Wed Aug 14 12:35:38.582   Progress: 9943758/1378309050 0% (bytes) 
Wed Aug 14 12:35:43.574   Progress: 11128693/1378309050 0% (bytes) 
Wed Aug 14 12:35:46.008   Progress: 11982044/1378309050 0% (bytes) 
Wed Aug 14 12:35:50.134   Progress: 12421241/1378309050 0% (bytes) 
Wed Aug 14 12:35:54.548   Progress: 13166696/1378309050 0% (bytes) 
Wed Aug 14 12:35:58.152   Progress: 13837935/1378309050 1% (bytes) 

Come si evince dai dati precedenti, la discarica totale (in BSON) è di circa 1.3 concerti. E sta prendendo mongorestore 110 secondi deludenti per ripristinare l'1% di esso, che è 13 MB.

Se qualcuno ha una spiegazione per questo, per favore fatemelo sapere. Vorrei fare qualcosa di sbagliato inavvertitamente, dal momento che queste cifre sono troppo lente rispetto agli standard di calcolo in questo secolo.

EDIT


ho fatto funzionare di nuovo il comando con le seguenti due opzioni, sperando che accelerare il processo:

--noobjcheck --noIndexRestore 

Ma con mia grande sorpresa, il processo è ora più lento !. Ecco alcune delle statistiche.

Wed Aug 14 13:13:53.750  going into namespace [temp_raw_tweet_db.tweets] 
Wed Aug 14 13:14:00.258   Progress: 871186/1378309050 0% (bytes) 
Wed Aug 14 13:14:04.424   Progress: 2070390/1378309050 0% (bytes) 
Wed Aug 14 13:14:07.482   Progress: 2921304/1378309050 0% (bytes) 
Wed Aug 14 13:14:11.895   Progress: 3647526/1378309050 0% (bytes) 
Wed Aug 14 13:14:57.028   Progress: 4984815/1378309050 0% (bytes) 
Wed Aug 14 13:15:01.015   Progress: 6202286/1378309050 0% (bytes) 
Wed Aug 14 13:15:05.051   Progress: 6797800/1378309050 0% (bytes) 
Wed Aug 14 13:15:08.402   Progress: 8133842/1378309050 0% (bytes) 
Wed Aug 14 13:15:12.712   Progress: 8872607/1378309050 0% (bytes) 
Wed Aug 14 13:15:15.259   Progress: 9964997/1378309050 0% (bytes) 
Wed Aug 14 13:15:19.266   Progress: 14684145/1378309050 1% (bytes) 
Wed Aug 14 13:15:22.364   Progress: 16154567/1378309050 1% (bytes) 
Wed Aug 14 13:15:29.627   Progress: 16754495/1378309050 1% (bytes) 
Wed Aug 14 13:15:35.225   Progress: 17726291/1378309050 1% (bytes) 
Wed Aug 14 13:15:39.447   Progress: 18333902/1378309050 1% (bytes) 
Wed Aug 14 13:15:43.717   Progress: 19055308/1378309050 1% (bytes) 
Wed Aug 14 13:15:46.481   Progress: 19305912/1378309050 1% (bytes) 
Wed Aug 14 13:15:49.902   Progress: 20038391/1378309050 1% (bytes) 
Wed Aug 14 13:15:53.868   Progress: 20389108/1378309050 1% (bytes) 
Wed Aug 14 13:15:58.578   Progress: 21127296/1378309050 1% (bytes) 
Wed Aug 14 13:16:03.706   Progress: 21837923/1378309050 1% (bytes) 
Wed Aug 14 13:16:56.512   Progress: 22092536/1378309050 1% (bytes) 
Wed Aug 14 13:16:59.035   Progress: 22583057/1378309050 1% (bytes) 
Wed Aug 14 13:17:02.313   Progress: 22817464/1378309050 1% (bytes) 
Wed Aug 14 13:17:05.044   Progress: 23178521/1378309050 1% (bytes) 
Wed Aug 14 13:17:26.023   Progress: 23434010/1378309050 1% (bytes) 
Wed Aug 14 13:17:39.161   Progress: 23670222/1378309050 1% (bytes) 
Wed Aug 14 13:17:42.846   Progress: 24049639/1378309050 1% (bytes) 
Wed Aug 14 13:17:59.125   Progress: 24284177/1378309050 1% (bytes) 
Wed Aug 14 13:18:02.722   Progress: 24515270/1378309050 1% (bytes) 
Wed Aug 14 13:18:06.827   Progress: 25018013/1378309050 1% (bytes) 
Wed Aug 14 13:18:09.234   Progress: 25253850/1378309050 1% (bytes) 
Wed Aug 14 13:18:14.282   Progress: 25617812/1378309050 1% (bytes) 
Wed Aug 14 13:18:46.296   Progress: 25983107/1378309050 1% (bytes) 
Wed Aug 14 13:18:51.303   Progress: 26604320/1378309050 1% (bytes) 
Wed Aug 14 13:18:55.500   Progress: 26971559/1378309050 1% (bytes) 
Wed Aug 14 13:19:00.656   Progress: 27444735/1378309050 1% (bytes) 
Wed Aug 14 13:19:04.100   Progress: 28064675/1378309050 2% (bytes) 

Sta prendendo circa quattro minuti per andare da 1% al 2%. Sicuramente qui c'è qualcosa di drasticamente sbagliato.

+3

Ci sono 1378 milioni di record, ma si sostiene che siano 6,5 milioni. Puoi provare l'opzione --dbpath di mongorestore, ma devi fermare il mongod per questo. –

+2

Il numero elencato è byte, non record – Zags

risposta

4

Sfortunatamente, questi numeri non sono insoliti. mongorestore su una raccolta di 300 milioni richiede giorni.

In pratica hai due opzioni.

In primo luogo, basta prendere il lungo corso di ripristino ed eseguirlo durante la notte:

nohup mongoresotre [args] & 

In secondo luogo, copiare i file nella directory del database stesso (default/dati/db) piuttosto che utilizzare mongodump/mongoresotre. Se è possibile chiudere il database per periodi di tempo, questo è il migliore. Altrimenti, è necessario utilizzare le istantanee del file system o simili. Vedi questo per ulteriori informazioni sulla canzone ufficiale: http://docs.mongodb.org/manual/core/backups/

9

Questo thread è molto vecchio, ma stavo riscontrando un problema simile di recente, forse per ragioni diverse, e ho trovato questa domanda.

Se si esegue mongo su AWS, assicurarsi di utilizzare i tipi di istanza e volume corretti.

Le istanze di tipo T hanno crediti CPU, che eseguiranno durante l'esecuzione del processo big mongorestore. Il tuo ripristino inizierà velocemente, quindi rallenterà la scansione ... Non si arresta mai veramente, ma ci vorranno giorni per finire.

Se si sta tentando di risparmiare denaro utilizzando il volume EBS magnetico, è una cattiva idea. SC1 è particolarmente sbagliato, dal momento che ha crediti simili per operazioni al secondo ... mongorestore brucerà tutti i crediti IOPs, non importa quanti ne hai in pochi minuti, dopo di che la velocità diminuirà a 3 operazioni al secondo e il ripristino può richiedere SETTIMANE per finire.

Spero che questo aiuti qualcuno.

Problemi correlati