2013-12-03 2 views
1

Я новичок в Couchbase. Я был в процессе проверки сырой производительности INSERT с различными настройками Couchbase (один узел, 2-узел, 5-узел и т. Д.). Я использую виртуальные машины в Windows Azure для выполнения моего тестирования, так как у меня недостаточно оборудования для его проверки на моих серверах. Я использую клиентскую библиотеку .NET, предоставленную Couchbase, чтобы написать мое тестовое приложение на C#, которое записывает ввод в цикл. Кроме того, я не использую никаких вариантов насыпной вставки (если таковые имеются!)Производительность медленной вставки в кластере Couchbase

Вот результаты вкладышами до сих пор:

  • Время, затраченное на 10 миллионов записей на физическом сервере - примерно 10 минут
  • Время, затраченное на 10 миллионов записей на сервере VM на Azuere - примерно 21 минут
  • Время, затраченное на 10 миллионов записей на 2-узловой кластер VM на Azure 63 минут

Так вот м y вопросы:

  • Есть ли визуализация, приводящая к тому, что вставка опускается до половины аппаратного сервера?
  • Это нормально для кластера узлов Couchbase 2, чтобы получить в 3 раза больше, чем 1 узел Couchbase?

Я следовал this статью о создании Couchbase кластера в Windows Azure: Couchbase на Azure

+0

Можете ли вы поделиться некоторым кодом вашего тестового приложения? Какие методы вы использовали для вставки? Где находится ваш клиент? Может быть замедление также на стороне клиента? – m03geek

+0

Привет, спасибо за ответ. Одно и то же клиентское приложение используется в обоих случаях, поэтому код клиента не должен быть проблемой. Если VM1, VM2 являются узлами моего кластера, клиентское приложение запускается на VM1. – Vinod

+0

У меня даже «лучшее» распределение в связанном вопросе: - 1000% латентность для запросов на N запросов, где N - максимум.75% от общего количества запросов. –

ответ

2

Couchbase Usally intensivly использует жесткий диск и процессор для процесса индексации. Таким образом, ухудшение производительности в облаке является нормальным. Вы можете попробовать использовать диски с большим количеством IOPS или даже SSD для уменьшения латентности.

Пока ваше приложение генерирует данные, оно также использует cpu, поэтому производительность couchbase (на той же виртуальной машине) может ухудшиться. Для более ясного теста, я думаю, вы должны запустить приложение на отдельной (выделенной) VM (то есть VM3). Кроме того, производительность отличается из-за задержки между виртуальными машинами. Чтобы уменьшить его, попробуйте найти виртуальные машины в одной зоне, центре данных. Я думаю, что если вы используете отдельную виртуальную машину для разницы между клиентом между кластерами узлов 1 и 2, это будет не так велико.

В вашем случае производительность на кластере из 1 узла зависит в основном от латентности между VM и жестким диском, подключенным к этой виртуальной машине. В производительности двух узлов кластера в основном зависит от латентности между VM1 и VM2, которая может быть в 2-4 раза больше задержки между VM и жестким диском. Таким образом, производительность в ваших случаях будет обратно пропорциональна латам.

performance_1 ~ 1/HDD_latency_VM1 
performance_2 ~ 1/(HDD_latency_VM1 + Network_latency_2_VM2 + HDD_latency_VM2) 
+0

Спасибо за ответ. Виртуальные машины расположены совместно. Они находятся в одном и том же DataCenter, в той же подсети и в той же группе сродства. Я попытался снова с 3-х кластерами узлов (VM1, VM2 и VM3 с клиентом, запущенным на VM1), производительность была хуже, чем 2 узла кластера! Я попробую запустить клиент на отдельной виртуальной машине и сообщить вам результаты. – Vinod

+0

@Vinod Было бы здорово, если бы вы также измеряли задержки между виртуальными машинами (вы можете просто использовать утилиту oing), чтобы узнать, какое влияние это имеет. – m03geek

Смежные вопросы