Итак, первое, что вам нужно сделать, это «предварительно разделить» ваши куски.
Предположим, что вы уже закрыли коллекцию, в которую импортируете. Когда вы начнете «с нуля», все данные начнут поступать на один узел. Когда этот узел заполняется, MongoDB начнет «разбивать» этот узел на куски. Как только он достигнет примерно 8 фрагментов (это примерно 8x64 МБ пространства индекса), он начнет мигрировать фрагменты.
Так что, по сути, вы эффективно записываете данные в один узел, а затем этот узел замедляется, потому что он должен читать и записывать свои данные в другие узлы.
Вот почему вы не видите никакого ускорения с 3 mongoimport
. Все данные все еще отправляются на один узел, и вы максимизируете пропускную способность этого узла.
Хитрость здесь в том, чтобы «предварительно разделить» данные. В вашем случае вы, вероятно, настроите его так, чтобы на каждом компьютере вы получали данные о 70 файлах. Затем вы можете импортировать эти файлы в разные потоки и повысить пропускную способность.
Джереми Заводни из Craigslist имеет разумное описание этого здесь . На сайте MongoDB есть несколько документов здесь .