База данных
Использование API и его влияние на мощности
В наше время все больше веб-сайтов используют открытые АРI, предоставляющие доступ к их сервису внешним разработчикам. Появление открытых API должно сопровождаться планированием мощностей для использования этого сервиса. (далее…)
Особые случаи и многофункциональные серверы
В примере с веб-сервером определяющей метрикой была загрузка процессора. Стоит признать, что это допущение — наличие фиксированного объема процессорных ресурсов для выполнения работы облегчает задачу. Кроме того, задача упрощалась и тем фактом, что Apache был единственным приложением, существенно использовавшим процессор. Однако довольно часто специализация каждого сервера на выполнении единственной задачи оказывается слишком большой роскошью. Выполнение сервером нескольких функций электронная почта, веб-сервер, прием загружаемых данных — повышает эффективность использования оборудования, но усложняет сбор метрических данных. (далее…)
Реальный пример: сбор метрических данных для кэша
Как упоминалось ранее, в Flickr принимаются во внимание все метрики, упоминавшиеся в предыдущем разделе. Кэши постоянно заполнены, а вытеснение идет непрерывно при отправке пользователями новых фотографий. Используется кэширование Squid на диске и в памяти, поэтому по обоим ресурсам тоже необходимо собирать данные. (далее…)
Установление потолков системы кэширования
Мощность систем кэширования определяется по-разному в зависимости от их использования. Если кэш способен вместить весь рабочий набор, потолок может определяться частотой запросов и временем отклика. (далее…)
Эффективность кэширования: рабочие наборы и динамические данные
Мощности кэширования определяются двумя основными факторами: размером рабочего набора и степенью динамизма (изменчивости) данных.
От частоты изменения данных зависит принятие решения об их кэшировании. На одном конце оси находятся данные, которые почти никогда не изменяются. Например, к данным такого рода относятся имена пользователей и информация учетных записей. На другом конце оси находится часто изменяющаяся информация: последний комментарий пользователя или последняя отправленная фотография, На рисунке представлена зависимость эффективности кэширования от типа данных. (далее…)
Системы кэширования
Ранее уже говорилось о том, что диски являются самыми медленными компонентами инфраструктуры, что делает обращения к ним затратными по времени. Большинство крупномасштабных сайтов избегают лишних затратных операций, организуя кэширование данных на разных уровнях. (далее…)
Определение потолков базы данных
Более целенаправленный и агрессивный метод определения потолков базы данных заключается в медленном (и, более того, осторожном!) повышении нагрузки на «живой» сервер. Если в вашем ведении находится всего одна база данных, сделать это без ущерба для безопасности будет непросто. С единичной точкой отказа вы рискуете полностью вывести сайт из строя. Задача существенно упрощается при использовании любой разновидности распределения нагрузки (аппаратного или прикладного уровня). На рисунке снова представлена диаграмма типичной архитектуры базы данных с добавлением некоторых реалистичных подробностей. (далее…)
Анализ метрик баз данных
Возможно, при виде графиков реального примера сбора метрик для базы данных у вас возник вопрос: если пик обусловлен не аппаратным дефектом, а произошел вследствие «законного» события базы данных, что же стало его причиной? Вопрос уместный, но ответ на него совершенно не поможет вам определить, сколько серверов баз данных потребуется для обработки вашего трафика. (далее…)
Реальный пример: сбор метрик для базы данных
Базы данных весьма сложны, и выявление их ограничений может потребовать много времени, но оно того стоит. Как и в случае с веб-серверами, ограничения баз данных обычно определяются тем, как они работают в пиковые периоды максимальной активности пользователей. Соответственно, начинать следует с пристального изучения периодов пикового трафика и анализа состояния системных ресурсов. (далее…)
База данных
Практически каждый динамический веб-сайт хранит информацию в какой-либо базе данных. А это означает, что мощности базы данных тоже необходимо планировать. В мире LAMP наибольшей популярностью обладают базы данных MySQL и Postgres; впрочем, Oracle, Microsoft SQL Server и множество других баз данных используются в bаск-еnd-подсистеме многих успешных сайтов. (далее…)