С 20 дисками у Вас есть много опций. Я предполагаю, что у Вас уже есть диски для ОС, таким образом, эти 20 дисков были бы выделенными дисками данных. В моем Пожаре в Sun x4540 (48 дисков), я выделил 20 дисков в зеркальной установке и 24 в чередуемой конфигурации raidz1 (6 дисков на набеги, и 4 чередовал vdevs). Два диска для ОС, и остаток запчасти.
Какой контроллер Вы используете? Можно хотеть обратиться к: ZFS рекомендации контроллера SAS/SATA
Не используйте аппаратный набег, если Вы можете. ZFS процветает, когда диски представлены как неструктурированные диски к ОС.
Ваша raidz1 производительность увеличивается с количеством дорожек через raidz1 группы. С 20 дисками Вы могли использовать 4 raidz1 группы, состоящие из 5 дисков каждый или 5 групп из 4 дисков. Производительность на последнем будет лучше. Ваша отказоустойчивость в той установке выдержала бы отказ 1 диска на группу (например, потенциально 4 или 5 дисков могли перестать работать при правильных условиях).
Скорость чтения от raidz1 или raidz2 группы эквивалентна скорости чтения одного диска. С вышеупомянутой установкой Ваши теоретические макс. скорости чтения были бы эквивалентны что 4 или 5 дисков (для каждого vdev/group raidz1 дисков).
Движение с зеркальной установкой максимизировало бы скорость, но Вы столкнетесь с ограничениями пропускной способности своего контроллера в той точке. Вам, возможно, не понадобится тот тип скорости, таким образом, я предложил бы комбинацию raidz1 и дорожек. В этом случае Вы могли выдержать один неисправный диск на зеркальную пару (например, 10 дисков могли возможно перестать работать, если они - правильные).
Так или иначе необходимо рассмотреть расположение горячего резервирования, неважно, с каким решением Вы идете. Возможно, 18 дисков в зеркальном расположении с 2 горячими резервированиями или raidz1 с 6 дисками с 3 дорожками с 2 горячими резервированиями...
Когда я создал свою первую установку ZFS, я использовал это примечание от Sun, чтобы помочь понять производительность уровня RAID...
http://blogs.oracle.com/relling/entry/zfs_raid_recommendations_space_performance
Примеры с 20 дисками:
Зеркальные пары с 20 дисками.
pool: vol1
state: ONLINE
scrub: scrub completed after 3h16m with 0 errors on Fri Nov 26 09:45:54 2010
config:
NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t1d0 ONLINE 0 0 0
c5t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t1d0 ONLINE 0 0 0
c7t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t1d0 ONLINE 0 0 0
c9t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t2d0 ONLINE 0 0 0
c5t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t2d0 ONLINE 0 0 0
c7t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t2d0 ONLINE 0 0 0
c9t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t3d0 ONLINE 0 0 0
c5t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t3d0 ONLINE 0 0 0
c7t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t3d0 ONLINE 0 0 0
c9t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t4d0 ONLINE 0 0 0
c5t4d0 ONLINE 0 0 0
С 20 дисками чередовал raidz1, состоящий из 4 дорожек raidz1 vdevs с 5 дисками.
pool: vol1
state: ONLINE
scrub: scrub completed after 14h38m with 0 errors on Fri Nov 26 21:07:53 2010
config:
NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t4d0 ONLINE 0 0 0
c7t4d0 ONLINE 0 0 0
c8t4d0 ONLINE 0 0 0
c9t4d0 ONLINE 0 0 0
c4t5d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t5d0 ONLINE 0 0 0
c7t5d0 ONLINE 0 0 0
c8t5d0 ONLINE 0 0 0
c9t5d0 ONLINE 0 0 0
c4t6d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t6d0 ONLINE 0 0 0
c7t6d0 ONLINE 0 0 0
c8t6d0 ONLINE 0 0 0
c9t6d0 ONLINE 0 0 0
c4t7d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t7d0 ONLINE 0 0 0
c7t7d0 ONLINE 0 0 0
c8t7d0 ONLINE 0 0 0
c9t7d0 ONLINE 0 0 0
c6t0d0 ONLINE 0 0 0
Править: Или если Вы хотите два пула устройства хранения данных, Вы могли бы повредить свои 20 дисков в две группы:
10 disks in mirrored pairs (5 per controller).
AND
3 stripes of 3-disk raidz1 groups
AND
1 global spare...
Это дает Вам обоим типы устройства хранения данных, хорошего дублирования, резервного диска, и можно проверить производительность каждого пула спина к спине.
Вы выполняете задание Map Reduce в момент его завершения, всегда ли это так?
Я спрашиваю, потому что это похоже на поведение, которое вы получаете, когда процесс типа сторожевого пса решает, что вы используете слишком много памяти, и завершает процесс. Задания Map Reduce (встроенные или те, которые работают с большими наборами данных, в частности), как правило, быстро увеличивают использование ОЗУ.
SIGKILL - это не то, что вы получили бы, если бы это ядро решило, что у вас недостаточно памяти, и вызвало OOM-убийцу (это выглядит как тихий сбой и регистрируется в dmesg). Следовательно, это заставило бы меня поверить, что есть что-то еще, что убивает использование памяти сверх определенного порога.
Если вы хотите проверить, запустите db.collection.find (). Объяснять ()
на большом наборе данных и посмотрите, вызывает ли это также SIGKILL. Если да, то я не