Как стать автором
Обновить
89
0
alex14n @alex14n

Пользователь

Отправить сообщение

Тюнинг nginx

Время на прочтение8 мин
Количество просмотров97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

Читать дальше →
Всего голосов 102: ↑100 и ↓2+98
Комментарии69

Amazon открывает новый сервис в облаках «Elastic MapReduce»

Время на прочтение2 мин
Количество просмотров4.3K
В дополнение к сервисам Amazon Elastic Compute Cloud (EC2) и Amazon Simple Storage Service (Amazon S3) компания Amazon сообщила об открытии нового сервиса Amazon Elastic MapReduce, который на данный момент пребывает в статусе беты.

Elastic MapReduce — вебсервис, который позволят с легкостью обрабатывать огромные количества разнообразных данных. Сервис основан на совместном использовании EC2 и S3, а также фреймворка Hadoop.

Подробности под катом
Всего голосов 27: ↑27 и ↓0+27
Комментарии13

Ускоряем выборку произвольных записей MySQL

Время на прочтение3 мин
Количество просмотров33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

Читать дальше →
Всего голосов 59: ↑50 и ↓9+41
Комментарии22

Жизнь во фрилансе глазами программиста

Время на прочтение3 мин
Количество просмотров57K
Вот уже два с половиной месяца как я занимаюсь фрилансом, за это время накопился опыт, которым хочу поделиться с общественностью.

Вход


Вначале нужно как можно большими способами давать знать о том, что вы ищете заказы: говорить знакомым, родственникам, бывшим коллегам, заказчикам бывших коллег, публиковать в социальных сетях, специализированных веб-сайтах. Я подал более двадцати заявок на таких сайтах, прежде чем сработала хотя бы одна. Пару недель это у вас займёт.

Трудности


Читать дальше →
Всего голосов 163: ↑138 и ↓25+113
Комментарии155

Хитрости с логированием в однопоточных неблокирующих серверах.

Время на прочтение6 мин
Количество просмотров2.8K
Хочу рассказать об очередном результате моих изысканий в области оптимизации производительности Web-серверов.
На этот раз речь пойдет об оптимизации сложного логирования в однопоточном неблокирующем вэб-сервере.
Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии105

Реальны ли высокопроизводительные Web-приложения на C++?

Время на прочтение1 мин
Количество просмотров4.4K
В данный момент стоит вопрос о разработке высокопроизводительного веб-приложения, которое могло бы выдерживать миллионы хитов в день.
Целевая нагрузка от 1000 хитов в секунду и выше (вплоть до заполнения гигабитного канала).

Имел ли кто-либо из читателей опыт разработки веб-приложений на С++? Предлагаю обсудить сложности и ограничения.
Подразумевается что приложение не будет иметь утечек памяти(и соответственно проблем со стабильностью), и 2-3-х кратное увеличение цены разработки по сравнению с PHP приемлимо.

Какие варианты вижу я:
Читать дальше →
Всего голосов 63: ↑51 и ↓12+39
Комментарии264

IPv6 для P2P

Время на прочтение7 мин
Количество просмотров59K
IPv6 обычно ассоциируется с проблемой нехватки IPv4 адресов, о которой любит писать «желтая» пресса. Что со дня на день свободных адресов не останется и переход на IPv6 будет неизбежен. Скептики считают что проблема настолько же раздута, как в своё время «ошибка 2000», когда все боялись что после 1999 года наступит 1900 и случится техногенная катастрофа.

Для большинства пользователей, действительно, пользы от IPv6 никакой. Какая разница, например, что заголовки пакетов более удобны для маршрутизатора? Но для P2P проблема NAT (за счёт чего IPv4-адреса так ещё и не закончились) реальна, т.к. для связи peer-to-peer (даже чтобы переслать файл через Jabber или ICQ) нужно чтобы хотя бы один из участников был доступен снаружи, т.е. имел реальный IP-адрес или хотя бы пробросил себе порт. Некоторые провайдеры предоставляют внешний адрес за отдельную плату, у некоторых такой возможности нет, и именно для NAT-страдальцев будет больше всего полезно использование IPv6.

Также это будет полезно тем, у кого провайдер режет p2p-трафик. В России это (пока?) не так распространено, а за рубежом — далеко не редкость. IPv6 трафик (точнее, обёрнутый в обычные UDP пакеты) ими не режется. Еще это может помочь в ситуации, когда p2p-трафик блокируется корпоративным фаерволом, но настроить IPv6 через туннель можно.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии51

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Время на прочтение5 мин
Количество просмотров8K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии41

Прогрессивные технологии, как способ выжать из сервера максимум

Время на прочтение5 мин
Количество просмотров12K

Вступление


Просто красивый rrdtool =)
Забавно, но когда программист разрабатывает какой-либо продукт, он редко задумывается над вопросом могут ли на одну кнопку в один момент времени нажать одновременно 2000 человек. А зря. Оказывается могут. Как ни странно но большинство движков, написанных такими программистами, очень плохо ведут себя под большими нагрузками. Кто бы подумал, а всего один лишний INSERT, не проставленный index, или кривая рекурсивная функция могут поднять load averages чуть ли не на порядок.

В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
читать дальше
Всего голосов 318: ↑314 и ↓4+310
Комментарии184

Аренда сервера для стартапа

Время на прочтение2 мин
Количество просмотров26K
Недавно озадачился вопросом поиска выделенного сервера для своего стартапа. После просмотра российского рынка пришел в ужас и перевел взгляд на зарубежный, парой интересных предложений которого и хочу поделиться.

К примеру аренда четырехядерного AMD Opteron 2344 HE (1.7 GHz), 4Gb RAM, 2x250GB HDD обойдется в $100, что сравнимо с арендой порта и места в стойке под сервер у нас в стране.
Читать дальше →
Всего голосов 86: ↑80 и ↓6+74
Комментарии166

Семантический веб как операционная система: с пользователями и правами доступа!

Время на прочтение8 мин
Количество просмотров2.6K
Очень скоро семантические сетевые данные будут точно размечены, так что искать их станет существенно легче. Это еще сильнее ускорит развитие тренда, когда Интернет и глобальное сообщество превратятся в две тесно связанных друг с другом сети, которые будут постоянно увеличивать взаимосвязи и прозрачность друг для друга. Обязаны ли мы жертвовать анонимностью для того, чтобы сохранить доверие для такого сотрудничества? Или мы увидим возникающую «новую сеть», которая будет функционировать как в своем роде операционная система с различными пользователями и правами, — и будет запущена на этой глобальной машине, которую мы и называем Интернетом.
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии29

Знакомство с jabber ботами

Время на прочтение4 мин
Количество просмотров11K
imageДлительное время я использовал джаббер только в роли меседжера, однако несколько недель назад мне попался адрес джаббер бота, который был словарем, что представилось мне крайне удобным в использовании. В скором времени мой ростер пополнился десятком удобных ботов, и в поиске новых я, в том числе, исследовал хабр, но не нашел ничего. Я решил заполнить эту нишу и создать сводный список ботов, известных мне, которые, по-моему мнению, могут заинтересовать.
Читать дальше →
Всего голосов 217: ↑208 и ↓9+199
Комментарии56

TwitterFox — твиттер для рыжей лисы

Время на прочтение1 мин
Количество просмотров761
В связи с некоторыми обстоятельствами пришлось искать замену своему постоянному браузеру. А поскольку FireFox совсем недавно обновился до 3 версии, то решил я попробовать подстроить его под себя. Спустя полчаса я крепко подсел и продолжалось это копание до глубокой ночи. Поразило количество и качество расширений для браузера! Об одном из них я бы и хотел упомянуть. Знакомтесь, TwitterFox



Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии14

Огнелис в роли сервера разработки

Время на прочтение2 мин
Количество просмотров672
Прочитал только что статью про пример использования telnet-сервера в firefox и наткнулся на комментарий пользователя @merlin_rterm, который упомянул про расширение POW, или Plain Old Webserver. Данное расширение позволяет запускать серверные скрипты средствами огнелиса. Далее опишу как настроить огнелис для работы с PHP и SQLite под Ubuntu. Думаю, что под Mac и Windows инструкция не будет сильно отличаться.
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии29

Ja.NET — Java для .NET

Время на прочтение1 мин
Количество просмотров7.2K
image Как скрестить ужа с ежом? Эту, казалось бы, анекдотичную задачу довольно неплохо решили разработчики проекта Ja.NET. В результате их кропотливого труда на свет появилось уникальное творение — JVM, работающая под Microsoft .NET Framework. Разработчики заявляют о частичной совместимости с Java SE 1.5.

На этом месте разработчики со стажем, поморщившись, вспомнят про полумертвенький J#, впоследствии практически заброшенный «родителями». Но Жанетт — в отличие от той поделки — девушка серьезная, и подход демонстрирует более вдумчивый. В ее родителях числятся именитые проекты: Eclipse JDT compiler, Mono's Cecil, и Apache Harmony. В отличие от своих аналогов, Ja.NET представляет из себя полноценную виртуальную ява-машину, работающую на основе .NET. Кроме того, компилятор генерирует родной код MSIL, что положительно сказалось на производительности.

Пример кода
Всего голосов 43: ↑36 и ↓7+29
Комментарии55

Безбраузерные приложения на Javascript (HTA)

Время на прочтение3 мин
Количество просмотров39K
Одна из мощнейших средств Ослика (начиная с пятой (!) версии) — HTA или HTML Application (безбраузерные приложения), позволяет создавать Windows-приложения используя HTML, CSS и Javascript/VBscript. Сразу хочу заметить, что в этой статье используется исключительно Javascript.

С точки зрения пользователя, созданная «программа» ничем, кроме расширения (*.hta), не отличается от любой другой программы: заголовок окна, иконка, отображение на панели задач, а самое главное никаких предупреждений при доступе к файлам компьютера. При всем этом вам не придется устанавливать никаких отдельных приложений или плагинов, достаточно Internet Explorer-а!

Мусолить не буду, сразу приступим к делу
Всего голосов 79: ↑72 и ↓7+65
Комментарии69

Алгоритмы организации тэгов

Время на прочтение3 мин
Количество просмотров27K
Тэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.

В статье я хочу рассказать об способах и алгоритмах тегирования информации.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии48

Greasemetal — аналог Greasemonkey для Google Chrome

Время на прочтение1 мин
Количество просмотров2.4K
Японский разработчик Kazuho Oku предложил инструмент, позволяющий в Google Chrome использовать пользовательские скрипты.

Пока что (текущая версия — 0.1) Greasemetal может быть интересен только продвинутым пользователям, поскольку не содержит UI для управления скриптами (необходимо вручную копировать нужные скрипты в соответствующую папку).

Также не поддерживаются Greasemonkey-функции, поэтому рекомендуется использовать скрипты, работающие не только в FF, но и в Опере, и в Safari.
Всего голосов 17: ↑12 и ↓5+7
Комментарии2

Объединение тегов на Хабре

Время на прочтение1 мин
Количество просмотров1.1K
На Хабрахабре и других проектах ТМ внедрена долгожданная технология объединения тегов.
Один «тег-оригинал» теперь может иметь несколько «синонимов».
Например: Веб 2.0 и Web 2.0, Yandex и Яндекс или Хабр, Habrahabr и Хабрахабр.
Читать дальше →
Всего голосов 125: ↑119 и ↓6+113
Комментарии55

Панацея ли Scrum? Давайте рассуждать вместе, где он нам полезен

Время на прочтение4 мин
Количество просмотров8.8K
Начну я просто — поясню, что такое Scrum и зачем он нужен, что бы те люди, кто с ним пока не сталкивался, могли с интересом прочесть данную заметку и понять о чём собственно идёт речь.

Итак, Scrum, это популярная (модная, если хотите) сегодня методология ведения программных проектов. Другими словами, как управлять командой разработчиков, что бы программный проект завершился успешно. Что и как документировать, как, с кем и как часто обсуждать детали проекта, как ставить задачи людям и как контролировать результат. Всё это попадает под термин “методология управления программным проектом”.

Вам понятно? Отлично! А теперь…
Читать дальше →
Всего голосов 102: ↑81 и ↓21+60
Комментарии62

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность