Оценка товарного оборудования для приложения
-
20-09-2019 - |
Вопрос
Предположим, я хотел разработать веб -сайт переполнения стека. Как оценить сумму товарного оборудования, необходимого для поддержки этого веб -сайта, предполагая 1 миллион запросов в день. Существуют ли какие -либо тематические исследования, которые объясняют возможные улучшения производительности в этой ситуации?
Я знаю, что узкое место ввода/вывода является основным узким местом в большинстве систем. Каковы возможные варианты повышения производительности ввода/вывода? Немногие из них я знаю
- кэширование
- репликация
Решение
Вы можете повысить производительность ввода/вывода несколькими способами в зависимости от того, что вы используете для настройки хранилища:
- Увеличьте размер блока файловой системы, если ваше приложение отображает хорошую пространственную локальность в своем I/OS или использует большие файлы.
- Использовать Рейд 10 (Полосы + зеркалирование) для производительности + избыточность (защита отказа диска).
- Используйте быстрые диски (производительность: SSD> FC> SATA).
- Отдельные рабочие нагрузки в разное время дня. Например, резервное копирование ночью, нормальное приложение ввода/вывод днем.
- Выключить Atime Updates в вашей файловой системе.
- Кэш -файл NFS обрабатывает AKA Сетей (Facebook), если хранение данных на NFS -сервере.
- Объедините небольшие файлы в большие куски, aka Большой стол, Hbase.
- Избегайте очень больших каталогов, т. Е. Много файлов в одном и том же каталоге (вместо этого разделите файлы между различными каталогами в иерархии).
- Использовать кластер система хранения (Да, не совсем товарное оборудование).
- Оптимизируйте/разработайте свое приложение для получения последовательных дисков, когда это возможно.
- Использовать мемкахед. :)
Вы можете захотеть посмотреть на раздел «уроки, изученные» Архитектура Stackoverflow.
Другие советы
Проверьте этот удобный инструмент:
и еще один гид от 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-подобная архитектура с пакетными записями (без проблем потерять несколько секунд данных), в основном файл журнала, а для репликации также записывают их в розетку.