2013-08-14 26 views
8

Tôi lấy một bãi chứa một db chỉ có 1 bộ sưu tập và hai chỉ số. Bộ sưu tập có khoảng 6,5 triệu tài liệu. Khi tôi cố gắng khôi phục nó, tôi ngạc nhiên, quá trình này rất chậm chạp. Một số số liệu thống kê như sau:Tại sao mongorestore đau đớn chậm?

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) 

Vì nó có thể được suy ra từ các dữ liệu trên, tổng bãi (trong bson) là khoảng 1,3 Gigs. Và nó đang lấy mongorestore một 110 giây đáng thất vọng để khôi phục 1% của nó, đó là 13 MB.

Nếu có ai giải thích về điều này, vui lòng cho tôi biết. Tôi ước rằng tôi đang làm điều gì đó sai trái một cách vô tình, vì những con số này quá chậm so với các tiêu chuẩn về tính toán trong thế kỷ này.

EDIT


Tôi chạy lệnh một lần nữa với sau hai lựa chọn, hy vọng họ sẽ tiến hành xử lý:

--noobjcheck --noIndexRestore 

Nhưng trước sự ngạc nhiên của tôi, quá trình hiện nay là chậm hơn ! Dưới đây là một số số liệu thống kê.

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) 

Nó được dùng khoảng 4 phút để đi từ 1% đến 2%. Chắc chắn có điều gì đó không ổn ở đây.

+3

Có 1378 triệu bản ghi, nhưng bạn tuyên bố là 6,5 triệu. Bạn có thể thử tùy chọn --dbpath của mongorestore, nhưng bạn phải dừng lại mongod cho việc này. –

+2

Số được liệt kê là byte, không phải là bản ghi – Zags

Trả lời

4

Thật không may, những con số này không phải là bất thường. mongorestore trên một bộ sưu tập 300 triệu mất vài ngày.

Về cơ bản, bạn có hai tùy chọn.

Thứ nhất, chỉ cần đi dài chạy phục hồi và chạy nó qua đêm:

nohup mongoresotre [args] & 

Thứ hai, sao chép các tập tin trong thư mục cơ sở dữ liệu của bạn thân (default/data/db) thay vì sử dụng mongodump/mongoresotre. Nếu bạn có thể tắt cơ sở dữ liệu của bạn trong một khoảng thời gian, điều này là tốt nhất. Nếu không, bạn phải sử dụng ảnh chụp nhanh hệ thống tập tin hoặc tương tự. Xem thêm để biết thêm thông tin chính thức về mongo blurb: http://docs.mongodb.org/manual/core/backups/

9

Đây là chủ đề rất cũ, nhưng gần đây tôi gặp sự cố tương tự, có thể vì lý do khác và xuất hiện câu hỏi này.

Nếu bạn tình cờ chạy mongo trên AWS, hãy đảm bảo sử dụng đúng loại và loại khối lượng.

Trường hợp loại T có tín dụng CPU, trong đó sẽ chạy hết trong khi chạy quá trình mongorestore lớn. Quá trình khôi phục của bạn sẽ bắt đầu nhanh, sau đó giảm tốc độ thu thập dữ liệu ... Nó không bao giờ thực sự dừng lại, nhưng sẽ mất vài ngày để hoàn thành.

Nếu bạn đang cố gắng tiết kiệm một số tiền bằng cách sử dụng khối lượng EBS từ, đó cũng là một ý tưởng tồi. SC1 đặc biệt sai, vì nó có tín dụng tương tự cho hoạt động mỗi giây ... mongorestore sẽ ghi tất cả các khoản tín dụng IOP của bạn bất kể bạn có bao nhiêu phút, sau đó tốc độ sẽ giảm xuống còn 3 hoạt động mỗi giây và khôi phục có thể mất WEEKS để kết thúc.

Tôi hy vọng rằng sẽ giúp ai đó.