Что быстрее для доступа для чтения в экземпляре EC2; "локальный" диск или подключенный том EBS?
У меня есть некоторые данные, которые необходимо сохранить, поэтому я поместил их на том EBS. Я использую OpenSolaris, поэтому этот том был подключен как пул ZFS. Однако у меня есть большой кусок дискового пространства EC2, который не будет использоваться, поэтому я подумываю о том, чтобы использовать его как том кеша ZFS, но я не хочу этого делать, если доступ к диску будет медленнее, чем объем EBS, поскольку он потенциально может иметь пагубный эффект.
Просто чтобы добавить немного к консенсусу, что EBS быстрее ...
Здесь важно понимать, что скорость хранения инстанса непредсказуемый - Amazon не дает никаких гарантий по этому поводу.
Эта информация взята из книги Архитектуры облачных приложений Джорджа Риза (что кажется неплохим, судя по тому, что я бегло просмотрел). Он включает в себя таблицу с названием Сравнение вариантов хранения данных EC2 (стр. 41); вот фрагмент этой таблицы (в книге сравниваются еще несколько характеристик):
S3 Instance EBS
Speed Low Unpredictable High
Reliability Medium High High
Durability Super high Super low High
Итак, хранилище экземпляров мощь иногда превосходят EBS в доступе для чтения, но если хотите постоянный высокая скорость, вам действительно нужно использовать EBS. Как пишет Риз в своей книге:
Еще одна проблема - непредсказуемость производительности в хранилище экземпляров. На самом деле вы можете подумать, что это должно быть быстрее, чем другие варианты, и иногда это так. Однако иногда это происходит невероятно медленно - медленнее, чем монтирование NFS через соединение Ethernet 10bT. EBS, с другой стороны, неизменно обеспечивает производительность SAN через соединение GB Ethernet.
Мы потратили примерно 1000 долларов на оплату AWS в ходе систематического изучения этого и связанных с ним вопросов и опубликовали обширный анализ.
Для случайных (небольших) чтений мы обнаружили, что «локальное» (экземпляр EC2) хранилище и EBS имеют одинаковую производительность, но локальное хранилище имеет лучший хвост задержки.
Для последовательного (массового) чтения EBS быстрее на m1.small, но локальное быстрее на m1.large. Мы не сравнивали напрямую локальный и EBS для других типов инстансов, но мы обнаружили, что увеличение размера инстанса гораздо больше влияет на производительность локального хранилища, чем на производительность EBS.
Есть еще вопрос о стоимости. Перенеся операции ввода-вывода с EBS на локальный диск, вы снизите плату за использование AWS.
Если вам нужна производительность базы данных в Amazon, эта статья может оказаться полезной: http://www.mysqlperformanceblog.com/2009/08/06/ec2ebs-single-and-raid-volumes-io-bencmark/
Общее впечатление от моего собственного исследования (я читал об этом несколько недель) заключается в том, что EBS - более быстрый вариант.
Я запускал экземпляры MySQL на томах EBS и остался доволен их производительностью. У меня тоже нет точных данных, но он работал нормально.
Amazon сделал расплывчатые заявления о том, что EBS обычно превосходит «локальный» рабочий раздел на инстансе EC2. Я знаю, что я испытал более высокую пропускную способность на томе EBS в моем собственном использовании, но я не потрудился измерить задержку.
Если вам интересно узнать о производительности при конкретном использовании, лучше всего настроить тестовый экземпляр. Я знаю, что буду.