войти зарегистрироваться

GitПроблемы с производительностью Git на большом репозитории

Джошуа Редстоун (Joshua Redstone) пожаловался в листе рассылки Git на некоторые проблемы с производительностью, которые возникли у Facebook на большом репозитории. Они создали синтетический репозиторий и провели тесты.

Тестовый репозиторий
4 млн коммитов, линейная история и около 1,3 млн файлов. Размер папки .git — около 15 ГБ, её упаковали командой repack:

git repack -a -d -f --max-pack-size=10g --depth=100 --window=250

Процесс занял около двух суток на хорошей машине (много памяти, SSD). Размер индексного файла составил 191 МБ.

Высокая производительностьАнализ использования циклов процессоров Intel Core 2

При анализе производительности приложений с целью ее повышения, наиболее мощной из доступных является методика детального анализа циклов центрального процессора. Традиционный анализ завершения инструкций вряд ли поможет, когда мы говорим об архитектуре, применяющей переупорядочивание инструкций (Out of Order, OOO), чья основная задача и состоит в том, что бы продолжать исполнять инструкции, пока их завершение невозможно.

Высокая производительностьПоиск и решение проблем масштабируемости на примере многоядерных процессоров Intel Core 2 (часть 1)

Адаптация программного обеспечения для эффективного использования всех доступных процессоров наиболее критична в свете намечающегося многоядерного будущего современной вычислительной техники. Кроме всех прочих препятствий, которые могут быть встречены на этом пути, существуют проблемы, связанные с совместным использованием конечной пропускной способности существующих платформ и процессоров. Правильное использование событий производительности процессора Intel Core2 позволит определить точную причину, останавливающую приложение на пути к полноценному использованию всех доступных в системе ядер.

Серверная оптимизация6 способов убить Ваши сервера — познаем масштабируемость трудным путем

Узнать, как отмасштабировать Ваше приложение, не имея при этом никакого опыта, — это очень нелегко. Сейчас есть много сайтов, посвященных этим вопросам, но, к сожалению, не существует решения, которое подходит для всех случаев. Вам по-прежнему необходимо самому находить решения, которые подойдут под Ваши требования. Так же, как и мне.

Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.

Высокая производительностьСогласованные в конечном счете (Eventually Consistent)

В последнее время на хабре чаще стали встречаться обсуждения масштабируемых систем и NoSQL решений. Эта статья, написанная техническим директором Amazon — одна из лучших вводных, на мой взгляд, показывающая, какие проблемы возникают при построении масштабируемых систем, что нужно учесть при выборе инструментария, что имеют ввиду авторы кассандры, говоря про обеспечение AP в кассандре и CP в HBase и многое другое.

Высокая производительностьРезультаты тестирования масштабируемости облачных сервисов

Сайт High Scalability провел тестирование облачных сервисов хранения данных на масштабируемость в зависимости от нагрузки. В качестве тестирования применили распространенный тест TPC-W. Для тестирования нагрузку постепенно увеличивали от 1 пользователя до 9000 одновременно работающих пользователей. В тестировании принимали участие следующие сервисы: полноценная реляционная СУБД SQL Azure, Amazon S3, Amazon RDS, Amazon SimpleDB, Google AppEngine.

Результаты тестирования:

image

Очевидно, что SQL Azure, представляя собой полноценную реляционную БД, показывает отличные результаты. По возможностям+масштабируемости — это однозначно лидер тестирования. Сервис от Google оказался аутсайдером проведенного тестирования.

Первоисточник: highscalability.com/blog/2010/5/26/end-to-end-performance-study-of-cloud-services.html

Google App EngineGoogle App Engine – масштабируемые приложения

Google App Engine позволяет легко создавать приложения, надежно работающие даже при большой нагрузке и с большими объемами данных. Но ещё проще создать программного монстра, который будет работать очень медленно или вовсе не работать, постоянно возвращая ошибку HTTP 500.

Как писать быстрые и хорошо масштабируемые приложения – об этом пойдет речь в этой статье.

Все ниже изложенное прежде всего касается приложений, написанных на Java, но большей частью должно быть справедливо и для приложений написанных на языке Python.