Вопрос

Предположим, я хотел разработать веб -сайт переполнения стека. Как оценить сумму товарного оборудования, необходимого для поддержки этого веб -сайта, предполагая 1 миллион запросов в день. Существуют ли какие -либо тематические исследования, которые объясняют возможные улучшения производительности в этой ситуации?

Я знаю, что узкое место ввода/вывода является основным узким местом в большинстве систем. Каковы возможные варианты повышения производительности ввода/вывода? Немногие из них я знаю

  1. кэширование
  2. репликация
Это было полезно?

Решение

Вы можете повысить производительность ввода/вывода несколькими способами в зависимости от того, что вы используете для настройки хранилища:

  1. Увеличьте размер блока файловой системы, если ваше приложение отображает хорошую пространственную локальность в своем I/OS или использует большие файлы.
  2. Использовать Рейд 10 (Полосы + зеркалирование) для производительности + избыточность (защита отказа диска).
  3. Используйте быстрые диски (производительность: SSD> FC> SATA).
  4. Отдельные рабочие нагрузки в разное время дня. Например, резервное копирование ночью, нормальное приложение ввода/вывод днем.
  5. Выключить Atime Updates в вашей файловой системе.
  6. Кэш -файл NFS обрабатывает AKA Сетей (Facebook), если хранение данных на NFS -сервере.
  7. Объедините небольшие файлы в большие куски, aka Большой стол, Hbase.
  8. Избегайте очень больших каталогов, т. Е. Много файлов в одном и том же каталоге (вместо этого разделите файлы между различными каталогами в иерархии).
  9. Использовать кластер система хранения (Да, не совсем товарное оборудование).
  10. Оптимизируйте/разработайте свое приложение для получения последовательных дисков, когда это возможно.
  11. Использовать мемкахед. :)

Вы можете захотеть посмотреть на раздел «уроки, изученные» Архитектура Stackoverflow.

Другие советы

Проверьте этот удобный инструмент:

http://www.sizinglounge.com/

и еще один гид от Dell:

http://www.dell.com/content/topics/global.aspx/power/en/ps3q01_graham?c=us&l=en&cs=555

Если вы хотите свое собственное сообщество, похожее на Stackoverflow, вы можете зарегистрироваться с Stackexchange.

Вы можете прочитать некоторые тематические исследования здесь:

Высокая масштабируемость - как Rackspace теперь использует MapReduce и Hadoop для запроса терабайт данныхhttp://highscalability.com/how-rackspace-now-uses-mapreduce-and-hadoop-query-terabytes-data

http://www.gear6.com/gear6-vloads?fid=56&dlt=case-study&ls=veoh-case-study

1 миллион запросов в день - 12/секунд. Переполнение стека достаточно мало, чтобы вы могли (с интересными трюками по нормализации и сжатию) полностью соответствовать его в оперативной памяти 64 Gbyte Dell PowerEdge 2970. Я не уверен, где кэширование и репликация должны играть роль.

Если у вас есть проблема, думая достаточно о нормализации, доступен PowerEdge R900 с 256 ГБ.

Если вам не нравится ни одна точка сбоя, вы можете подключить несколько из них и просто протолкнуть обновления через розетку (предпочтительно на отдельной сетевой карте). Даже пиковая нагрузка в 12 тысяч/секунду не должна быть проблемой для системы главной памяти.

Лучший способ избежать узкого места ввода/вывода - не делать ввод/вывода (как можно больше). Это означает, что Arevayler-подобная архитектура с пакетными записями (без проблем потерять несколько секунд данных), в основном файл журнала, а для репликации также записывают их в розетку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top